Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.

aalmada's Content

There have been 26 items by aalmada (Search limited from 26-April 23)


By content type

See this member's


Sort by                Order  

#35701 My Netduino refuses to reset ...

Posted by aalmada on 21 September 2012 - 10:56 AM in Netduino 2 (and Netduino 1)

I use a commercial version of VS2010 (Visual Studio 2010 Professionnal) and not Visual Studio 2010 Express.


I also use Visual Studio 2010 Professional.



#35695 My Netduino refuses to reset ...

Posted by aalmada on 21 September 2012 - 09:33 AM in Netduino 2 (and Netduino 1)

The only code change was the setting of the PWM base clock so this shouldn't be affected.


That's what I thought so I also think it's strange. Could it be something in the upgrade process gone bad?
I followed the instructions from http://wiki.netduino...ep-by-step.ashx and http://wiki.netduino...ep-by-step.ashx
I have .NET MF SDK 4.2 (QFE2) and Netduino SDK v4.2.0 (August 2012) 64-bit installed.
When I execute an application from VS, it deploys correctly but it hangs with the "rebooting" message on the status bar.

aalmada



#35611 My Netduino refuses to reset ...

Posted by aalmada on 20 September 2012 - 05:24 PM in Netduino 2 (and Netduino 1)

I upgraded to 4.2.0.1 and the problem got worst. The unplug and plug USB cable doesn't make it work anymore.

Is anyone else experiencing the VS hang with message "The debugging target is not in a initialized state; rebooting..."?



#35579 Servos in NETMF 4.2

Posted by aalmada on 20 September 2012 - 08:23 AM in General Discussion

There's a small timing issue with the new PWM classes. We're working on it, and should have an update in about a week.


The issue is fixed with v4.2.0 Update 1 (4.2.0.1)
http://forums.netdui...-v420-update-1/
Thanks Chris! :D



#35540 Servos in NETMF 4.2

Posted by aalmada on 19 September 2012 - 04:21 PM in General Discussion

There's a small timing issue with the new PWM classes. We're working on it, and should have an update in about a week.


Any news on the update? ;)



#35425 My Netduino refuses to reset ...

Posted by aalmada on 17 September 2012 - 04:40 PM in Netduino 2 (and Netduino 1)

After that, when I try to debug some code on the Netduino with Visual Studio, it says "The debugging target is not in a initialized state; rebooting..." and nothing more happens.


I started the see the same message after I upgraded to 4.2 firmware.
I found a workaround. Once the message appears, unplug the USB cable on the Netduino side and plug it again. Visual Studio enters debug mode like nothing happened...

aalmada



#35421 Servos in NETMF 4.2

Posted by aalmada on 17 September 2012 - 02:58 PM in General Discussion

When I use Microseconds, and use (20000, 1000) in the constructor, the servo would try to move out of the range.


Chris Walker mentions above that there is a "small timing issue with the new PWM classes". I'm waiting for the fix too.



#35403 Servos in NETMF 4.2

Posted by aalmada on 17 September 2012 - 08:08 AM in General Discussion

It says that "To enable the servo to move a full 180° use pulse durations of approximately 750 to 2250 μs. Exercise care to not exceed these lower and upper limits.".
What numbers to use in "Microsoft.SPOT.Hardware.PWM(PWMChannels.PWM_PIN_D10, 20000, 1000, PWM.ScaleFactor.Microseconds, false)"? What does 20000 and 1000 mean?


Hi chungenhung,

Servos expect a 20ms second period (20000μs), that's the value you see on the constructor.
To change position you should then change the Duration value. The typical values are from 1000 to 2000, with 1500 for the middle position. In your case, use values from 750 to 2250, 1500 should still be from the middle position.
The constructor requires an initial duration value (that's the 1000 value in the example).

aalmada



#35360 Wii Motion Plus

Posted by aalmada on 15 September 2012 - 11:36 PM in General Discussion

Hi,

I was never able to consistently connect to the Wiimote extensions. Now that I upgraded to 4.2 firmware, I'm now trying to use the "repeated start bit" feature.

I tried the following code with the Nunchuck but I'm always getting a buffer full of 0xff values (instead of the expected 0x00, 0x00, 0xa4, 0x20, 0x00, 0x00).


var device = new I2CDevice(new I2CDevice.Configuration(0x52, 400));

device.Execute(new I2CDevice.I2CTransaction[] { 
    CreateWriteTransaction(new byte[] { 0x55, }, 0xf0, 1),
    CreateWriteTransaction(new byte[] { 0x00, }, 0xfb, 1),
}, 1000);
Thread.Sleep(1000);
var buffer = new byte[6];
device.Execute(new I2CDevice.I2CTransaction[] { 
    CreateReadTransaction(buffer, 0xfa, 1),
}, 1000);


This is based on the info from http://wiibrew.org/w...ion_Controllers and using the "repeated start bit" methods from http://forums.netdui...rt-bit-support/

Am I doing it right?

EDIT: I'm using 3.3V for the VCC and 2.2K for pullup resistors.



#35114 Using multiple I2C devices. (I2CDevice)

Posted by aalmada on 13 September 2012 - 11:44 AM in Netduino 2 (and Netduino 1)

I created a I2CBus class that fixes many of the I2CDevice issues. It is a singleton, thread-safe and supports repeated start bit.

Source is available at https://bitbucket.or...dware/I2CBus.cs

I hope it will be useful to whoever runs into these issues. Feedback is welcome!

aalmada



#35109 TinyCore won't load

Posted by aalmada on 13 September 2012 - 11:06 AM in Beta Firmware and Drivers

For event handlers it's not required. I normally use the NativeEventHandler, for example:

public event NativeEventHandler OnKeyDown;


EventHandler (non-generic version) is to be used on events that don't have any data. It's unfortunate that .NET MF is missing such a basic feature (one line of code).

The use of NativeEventHandler has two issues: It supplies data that is not relevant for my case and it doesn't comply with the .NET design guidelines (chapter 5.4 of Cwalina's book).

aalmada



#35050 I2C InternalAddress (repeated start bit) support

Posted by aalmada on 12 September 2012 - 09:23 AM in Beta Firmware and Drivers

To use the new I2C InternalAddress feature (repeated start bit) in the v4.1.1 alpha, add the following two methods to your code...and then call them instead of built-in I2CDevice.CreateWriteTransaction/CreateReadTransaction functions when appropriate.


Does this apply to 4.2.0?

Thanks,
aalmada



#34926 Servos in NETMF 4.2

Posted by aalmada on 09 September 2012 - 06:04 PM in General Discussion

Hi aalmada,

There's a small timing issue with the new PWM classes. We're working on it, and should have an update in about a week.

Chris


Thanks!



#34923 Servos in NETMF 4.2

Posted by aalmada on 09 September 2012 - 04:39 PM in General Discussion

Hi,

I recently upgraded my Netduino to 4.2.0 firmware. I'm now updating my code and I'm having an issue with the new PWM class and servos.

Servos expect a PWM with 20ms period and high signal duration from 1 ms to 2ms. I wrote the following using the new native PWM:

var servo = new Microsoft.SPOT.Hardware.PWM(PWMChannels.PWM_PIN_D10, 20000, 1000, PWM.ScaleFactor.Microseconds, false);
while (true)
{
    Thread.Sleep(1000);
    servo.Duration = 2000; // 2 ms
    Thread.Sleep(1000);
    servo.Duration = 1000; // 1ms
}

And the following using the SecretLabs PWM implementation:

var pwm = new SecretLabs.NETMF.Hardware.PWM(Pins.GPIO_PIN_D10);
uint period = 20000;
while (true)
{
    pwm.SetPulse(period, 1000); // 1 ms
    Thread.Sleep(1000);
    pwm.SetPulse(period, 2000); // 2 ms
    Thread.Sleep(1000);

}

Both examples make the servo move but, it doesn't move 90º and the 2 ms position forces the servo. Am I doing something wrong?

Thanks!



#30181 Netduino Firmware v4.2.0 RC5 (Netduino + Netduino Plus)

Posted by aalmada on 04 June 2012 - 03:56 PM in Beta Firmware and Drivers

Anxiously awaiting for the final release... <_< Thanks



#28809 PWM Confusion

Posted by aalmada on 11 May 2012 - 10:50 AM in Netduino 2 (and Netduino 1)

The "Go-Between Shield" helps you with shield compatibility without having to cut and solder. http://www.sparkfun.com/products/11002



#28547 Fixed-point arithmetic

Posted by aalmada on 04 May 2012 - 01:06 PM in General Discussion

Your effort is valuable, but...why did you create a fixed point math when there is a full-featured set of primitives working very well?
BTW, I'm not sure at all, but the "Single" (float) type should be treated directly from the CPU. Instead, the "Double" is much heavier to treat, and should be avoided in the MF. That's for either performance and memory occupation.
Thanks for sharing, anyway.
Cheers


Having the "full-feature set" doesn't always mean that that's the best performing solution. Just ask the game development people. They usually go out of their way just to save one clock cycle. They are the kind of people that use fixed-point arithmetic: http://netwinder.osu...nw/fix1FAQ.html

I found the following at the TinyCLR forum: "floating point is supported in NETMF, not matter if the processor supports it or not. ARM7 do not have floating point"

I know I should have benchmarked the performance of native types first but I was curious how fixed point works anyway. I was surprised to find that the performance on a Netduino for the multiplication of Int16, Int32, Single or Double, is exactly the same. Unlike you state above, or I'm doing something wrong then...

I found in my recent research that TinyCLR has a native compilation of MathEx for better performance: http://www.tinyclr.c...28/#/1/msg11672

Anyway, it was a great ride and I'm back to my Single-based arithmetic...

aalmada



#28535 Fixed-point arithmetic

Posted by aalmada on 04 May 2012 - 08:43 AM in General Discussion

Hi, I implemented a fixed-point arithmetic class hoping to get some performance boost on my apps. I did some benchmarking on the Netduino and found that it actually slows down considerably. It's a fully managed implementation and that may be the problem. Any feedback is welcome. Here is the code: https://bitbucket.or...ed/Fixed1516.cs aalmada



#28533 Need a good intro to hardware book

Posted by aalmada on 04 May 2012 - 08:11 AM in General Discussion

I find this video tutorial by Jeremy Blum very useful: You can find the full series at http://www.youtube.c...567CE235D39FA84



#28468 Many many PWMs

Posted by aalmada on 03 May 2012 - 11:14 AM in General Discussion

News from Adafruit... http://player.vimeo.com/video/41452165 EDIT: Adafruit 16-Channel 12-bit PWM/Servo Driver - I2C interface - PCA9685 http://www.adafruit.com/products/815



#27934 Nunchuck controlled Bionicle

Posted by aalmada on 23 April 2012 - 09:31 AM in Project Showcase

Great work.
Next week's project will have to be even better!


Thanks!

I was thinking of next controlling this Bionicle with my phone (WP7) through Bluetooth but it's still not possible. I already posted a feedback post at the Windows Phone User Voice. Your vote would be appreciated... ;-)

I could try it using ethernet/wifi but I have the regular Netduino, not the Plus...

aalmada



#27883 Nunchuck controlled Bionicle

Posted by aalmada on 22 April 2012 - 02:06 PM in Project Showcase

Here is a video of a little project I implemented last weekend with my kids. :rolleyes:



#27842 BitConverter

Posted by aalmada on 21 April 2012 - 07:21 PM in Project Showcase

I've created a complete BitConverter for NETMF: https://bitbucket.or...BitConverter.cs It's based on the Utility class as suggested here by Luke but still uses "unsafe" to deal with floats and doubles. I looked into alternatives to the "unsafe", as it's not officially supported, but only found dead ends: 1) [StructLayout(LayoutKind.Explicit)] is supported but [FieldOffset(0)] is not. 2) TypedReference struct is supported but the FieldInfo.SetValueDirect method is not. aalmada



#27839 Many many PWMs

Posted by aalmada on 21 April 2012 - 06:51 PM in General Discussion

Pololu Micro Serial Servo Controller (assembled) http://www.pololu.co...log/product/207 Pololu RC Servo Controllers http://www.pololu.co...log/category/12



#27698 Struct [FieldOffset(0)] Attribute not Implemented

Posted by aalmada on 20 April 2012 - 09:43 AM in General Discussion

Unions are not available too: if you wish some dirty trick, you'd use the "unsafe" context.


"unsafe" is not officially supported: http://forums.netdui...ndpost__p__2151

Just like baxter, I used the "union" method several times in regular .NET. I tried this approach to avoid the "not-officially supported unsafe" and crashed into the same wall. StructLayoutAttribute is supported but FieldOffsetAttribute is not.

This is plain weird! .NET MF is a subset of .NET but for micro-processors. One of the basic required functionalities in this scenario is serial communication and, there is no official way to marshal floating points and structures... :-/

aalmada




home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.