Blinking lights with a Netduino Plus 2
James Maeding had been telling me to take a look at the Netduino for ages, so when I ordered some parts for my (optimistically speaking) forthcoming Kinect for ZX Spectrum integration, I decided to throw in a Netduino Plus 2.
Now the Netduino Plus 2 retails for $60 in the US (and 80CHF here in Switzerland, as the device is assembled in the US), which means it’s at least twice the price of the Arduino Uno R3 (which retails for $30 or just under 30CHF).
But there’s a reason for this: while it’s the same size – it fits perfectly onto my existing Arduino mount, for example – the Netduino Plus 2 comes with a very different set of components and corresponding performance profile.
Aside from some immediately obvious additions – such as a Micro SD slot and an Ethernet port – the Netduino Plus 2 has an STMicro 32-bit microcontroller that runs at a whopping 168 MHz (as does its own younger sibling, the Netduino Go, which has fewer onboard components – making it around $10 cheaper – but implements a plug-and-play architecture for peripherals). This is more than ten times the clock-speed of the Arduino Uno R3 with its 16 MHz ATMega328P. More on this in a little while.
The Netduino’s name comes from the fact it runs a version of the .NET Framework – in this case, the .NET Micro Framework 4.2 – which means you can code for it using Visual C# Express 2010 or (as is my case) Visual Studio 2010 and debug directly from that environment, too. Which is clearly great if you’ve worked with .NET languages in the past, although I personally haven’t found it very painful to adapt to Arduino’s C subset, at least not for smaller projects.
But the .NET Micro Framework clearly comes with some runtime overhead, both in terms of capacity and performance, so some would argue there’s a need for the more advanced hardware profile.
Whether the Arduino or the Netduino is the better choice for a particular project will depend on various factors: toolset familiarity, library availability, cost, OS support (for the development environment), power consumption, network connectivity (which comes at extra cost for the Arduino Uno), etc.
Beyond evaluating the various factors, the question of which to go for ultimately comes down to a religion discussion, as you’ll soon find when you search for opinions. I’m not yet familiar enough with developing for either device to want to join one camp or the other (and I may never – there’s probably a reason I feel so at home in Switzerland, after all ;-).
I’m personally happy to have a number of different tools available to me that I’ll choose between depending on the project at hand (Digispark, Arduino, Netduino Plus 2 and Raspberry Pi – I have a 128M and a 256M Model B, but I’m also reading interesting things about the Model A, particularly with respect to power consumption). I expect that I’ll tend towards using the Netduino when I know for sure the peripherals I need to connect with are supported and when having additional storage and/or Internet connectivity is important (adding Micro SD and Ethernet support will add $45 to an Arduino Uno project, for instance). And when I don’t want the overhead of running a full OS (as is the case for the Raspberry Pi). I dare say there are other dimensions to the decision that will occur to me, over time, but that’s my sense based on my initial playing around.
Anyway, to at least check whether the basics worked on my Netduino device, I went ahead and built and deployed the multiple LED project. This time I went with a comparable but slightly different effect, as it came pre-coded in the sample project.