Wednesday, June 20, 2012

What's the difference between Netduino and Arduino?

A friend asked "What's the difference between Arduino and Netduino?", so...

I actually just watched a presentation by Chris Walker (the inventor of the Netduino) a couple of months back.

The Netduino is 100% open source and provides Arduino shield pin compatibility. Like the XDuino and other non-AVR "duino" platforms before, they also provide code compatibility with the Processing libraries used on Arduino.

The Netduino uses the standard .NET Micro Framework SDK. If you outgrow the Netduino, there are a number of high-end boards (200MHz! 8MB!) that you can get for a few hundred dollars. Some even have integrated networking and touchscreens. Any standard .NET Micro Framework code should move between boards by simply re-deploying the application to another board. Plus, their design files are Creative Commons licensed--so you can remix them into your own custom board if you'd like. Lots of commercial customers will do this in high-volume applications.

That said, most microcontroller projects will work nicely on the Netduino.

The Netduino SDK includes added functionality (AnalogInput, PWM) which is Netduino-specific. But it's open-source, so if you wanted to use your code on another platform you could port the behind-the-scenes C code for that to another processor as well.

Now, for a comparison between the Arduino and the Netduino... Arduino is actually a pretty cool board, and the guys who run the project are pretty swell guys. Here are a few points of differentiation:

1. Arduino uses a simplified version of C, so it's pretty low-level. If you're making a really fast-moving blinking lights application using the GPIO pins directly, Arduino is probably a better choice. Netduino uses managed code--which does lots of awesome things for you (and many of them very efficiently)--but there's some additional overhead there.

2. Netduino is 48MHz, 32-bit, has 128KB of Flash (up to 200KB if you remove FileSystem support and such), 60KB of RAM, etc. Arduino is 16MHz, 8-bit, has 32KB of Flash, and a few KB of RAM. They have higher-end versions available with more Flash.

3. Both platforms can be used for simple projects in a pretty straightforward fashion. But as you create larger, more sophisticated programs... As you start wanting to pause your code and step through it to fix a bug in your code... And especially if you like event-based programming, garbage collection, and threading... Well, that's where Netduino becomes the only option.

Both projects (Arduino and Netduino) are helping build the same open source community. They'll also be building some very specific accessories for Netduino and actively promoting and supporting them for Arduino. They'd like to see the whole community grow. But that said, Netduino is a really excellent product. If you want to do cool things with a microcontroller--without all the complication--Netduino is for you.

Tahoe II by Device Solutions (100MHz)

Comparison Table

No comments:

Post a Comment