Arduino vs Netduino

If you intend to buy either/or, this might be of some help. Note that there are many Arduino clones as well as other Arduino-compatible boards running .NET Micro Framework. There are also boards that are not Arduino pin-compatible, but I intentionally stay away from those (both here and in my own use), as they are not as good for rapid prototyping.

When I say more memory etc it’s relatively speaking. Compared to a PC, phone or tablet an MCU hardly has any performance or memory at all, but you don’t need that much for sensor/control solutions. Rather cost, size, integrated I/O and power consumption become issues.

Arduino is clearly the most popular platform, so I mention it first.

Arduino/Wiring/C/C++ vs Netduino/.NET Micro Framework/C#

  • More device drivers and a more active community vs less so of both
  • Faster despite slower clock due to machine code vs interpreted code (except hopefully for the system code)
  • Efficient use of limited memory due to very small system footprint vs huge system footprint, yet at the same time a faster MCU with more memory
  • Commercial solutions can be made considerably less expensive and smaller (at least if surface-mounted) vs need for a 32-bit MCU
  • Rather bad development environment with no debugging etc, vs excellent and proven Visual Studio Express with excellent features throughout, that you can also use for desktop development
  • Wiring (C/C++) is more efficient than C# vs C# being a more powerful and elegant language that is object-oriented by design rather than piggy-backed on C
  • Very little RAM making signal processing, image processing, data buffering etc hard vs more RAM but also more need for it
  • Deterministic behavior due to no background processes by default vs garbage collection etc that can ruin your day
  • No multi-threading and hard to use timers (if you need many) vs integrated multi-threading making such programming a snap

If Netduino had been running Arduino system code it would have been a beast performance-wise vs the original Arduino design. Therefore, if you want really high performance and more memory but Arduino experience get the Arduino Mega 2560 that also has lots more I/O.

Generally though, if you want a true MCU / Internet of Things prototyping solution, get a board with integrated Ethernet and Micro SD, as you will save total cost on this, and you need LAN communication somehow. Hence, good options are Netduino Plus or Arduino Ethernet (or a clone). The PoE option is not critical for experimenting.

Also buy a couple of ProtoBoards and the other components needed for your solution, unless one or more shields do what you need as they are.

Look out for Gadgeteer compatible boards, but note that they are considerably more expensive due to a touch display etc.

It’s fun to just mess around with Arduino and Netduino, but at the end of the day it’s more important to create useful and potentially commercially viable solutions (at least as custom PCBs).

Impress on your friends and family with hysterically flashing Christmas trees, Web access to your weather station, autonomous tweeting of your dog’s mood, control your home from the office, etc etc.