More learning in my new role
My new role involves managing electronic, mechanical and software design and development for our group of companies. It has lead me to learn about writing software for “chips”.
We currently design and manufacture electronic hardware, these devices have standard analogue electronics and over the years they have increasingly incorporated microprocessors too. Commonly these are processors from the Microchip PIC, and some programmable logic controllers (PLCs) for faster video manipulation needs.
.NET Micro Framework
For some time I have been aware of the .NET Microframework and have wanted to have a try of it, but without any good reason to, other emerging strands such as MVC, Entity Framework, WCF and more have taken priority. Thus now I find that the excuse is in place, dive in and see what it has to offer and importantly where it is appropriate in hardware development.
Microsoft .NET Micro Framework is a cut down version of the full .NET framework ported to run on small processors. That said these “small” processors are more powerful than the ones I used to write my thesis on at university. Once programmed up, the chips can be embedded in larger hardware device designs. Our current hardware designs utilise Microchip PIC processors, programmed using C. The great leap we find is that the Micro Framework dumbs down the programming of microprocessors so that anyone who is experienced with C# can program a chip – really they can, it is that easy!
The performance suffers resulting in less grunt from the .NET processors, and yes there is much less choice on the .NET platform of microprocessors than the vast choices found in the Microchip PIC range. Also expect the PIC developer in the dev lab will turn their nose up at you, but we don’t care, we are used to being shunned as .NET developers. What it can happen, is skilled programmers from the enterprise development team may fulfil rapid prototyping requirements in the hardware domain. Indeed if the solution is a one off it may also be appropriate to produce the production hardware using this platform.
Good for rapid prototyping and hobbyists
I yet have to be convinced that .NET framework processors are appropriate for mass produced goods as they are relatively expensive compared to PIC alternatives. I can see that for niche products with small runs, the advantage in speed to market against the price of the processor may be something that is appealing for some projects. With about a £30 entry point for development boards it is great for the hobbyist to get started without the hurdle of great expense.
Anyone who has been to a Maker Faire will know the popularity of the Arduino boards for the hobby market. These small processor boards come in a standard factor that allows pre-made peripheral hardware devices, like displays, GPS receivers, infrared sensor to be plugged in, reducing skills and time to produce something fun. As the difficult task of electronic design is packaged up for you, more time can be made of the fun bits of the designing of software to run on it.
Netduino & Netduino Plus
Secret labs have produced a Arduino compatible board, a board that works with most of the plug in peripherals that the well established Arduino community enjoy. Named the Netduino, the board uses a processor that is programmed using the .NET Micro Framework. There are other similar Arduino compatible boards around, notably the FEZ Panda and Domino range that are slightly more powerful, but at a higher price. Perhaps not as attractive as a starting point. Remember we are in the hardware domain now, you may end up blowing these things up, leaving you with no option but buying a new one, reboot will bring things back to how they were. The development environment and process is very familiar. Start up your Visual Studio, download the SDK for .NET Micro Framework and the SDK for the board, reference them in code, then start programming. Use Visual Studio to deploy to the hardware board and enjoy your LED flashing or robot move!
A buzz is around at the moment (Nov. 2010), a new version of the Netduino is emerging from Beta, this adds much more to the basic board, such as TCP/IP natively on board & MicroSD slot, all without having to buy external peripherals. Considering most potential projects I think of for work and home require to be connected to the internet or corporate network, this is a great move! I am expecting delivery of mine before Christmas and I’ll bog a bit more when I have it.
There is a port of the .NET Micro Framework for the Blackfin processor family, AxiDotNet so if you need to do some serious number crunching, for example video processing, go in that direction.
It is exciting that I get a chance to work on another .NET framework platform and will it will be interesting to see what I can do with it. I might even make a presentation for our local developer user group if I feel confident enough!
You might find the Chris Walker’s conversation with Scott Hanselman a good place to start if you have a spare twenty minutes to spare Hanselminutes - Deeper into the Netduino with Chris Walker from Secret Labs.
.NET Micro Framework home http://www.microsoft.com/netmf/default.mspx
Netduino web site http://www.netduino.com/
Arduino website http://www.arduino.cc/
Microchip website http://www.microchip.com/
Maker Faire website http://makerfaire.com
Blackfin processor family
AxiDotNet Blackfin .NET Microframework
Extending .NET Micro Framework with an MPEG-4 Video Decoder