Learning Gadgeteer

What is Gadgeteer?

In short, Gadgeteer is Microsoft’s electronics prototyping toolkit. Think Arduino but higher-specced and more expensive, or Raspberry Pi with more plug n’play.

It’s based on .NET (of course) and Visual Studio express edition (naturally). You will need to enjoy writing in C#.

First impressions

The Visual Studio stuff is nice, especially the auto-wiring ‘connect all’ stuff that tells you which cables to connect and where to connect them. C# is pretty easy for a Java user to pick up and the setup is near enough to everyday C# that you can generally use the same tricks here that you’d use elsewhere.

Hardware-wise, the various satellite boards are great fun – everything from a camera to a colour sensor, it’s all available. It’s pretty well insulated from the strange and scary universe of hardware interfaces in general and you’ll access devices through a convenient API/driver rather than directly. This has the benefit that it’s straightforward and conceptually unproblematic, but it does leave you with the impression that as far as it goes you might as well be programming an Android device. Yes, you can bolt bits on here, but you’re quite well insulated from the horrors of I2C, for example..


Gadgeteer ain’t cheap. Main board’s of the order of £70, and the modules you’ll be needing to add are immensely variable in price. Being reasonable, it’s not actually expensive either. It’s just a bit on the expensive side for a penniless hobbyist – more Gumstix prices than Arduino prices overall.

Bugs in the belfry

Unfortunately we saw some bugs and silliness during a few days with the kit, some quite visible and occurring with a sufficiently high frequency to appear independently on a good number of occasions within a classroom of 20-30 people. Initially I assumed this was a consequence of a dodgy driver version or some other transitory problem for exactly that reason, but having spoken to others who’ve worked with Gadgeteer it seems that intermittent issues are not news.

For example, Visual Studio traditionally defaults to saving your code projects into a temp folder, so you lose a lot when you reboot unless you noticed in advance.  A second example: Visual Studio has difficulties loading other peoples’ projects, specifically the neat whizzy auto-wiring view. A third: developing on Visual Studio for the Gadgeteer was the first time my laptop (a fairly hefty Alienware) has ever given me a blue screen of death. Since this phenomenon is frequently followed by the discovery that VS was saving in the temp folder, the result of an unexpected blue screen can be the loss of a lot of code.

Oh, and I think I may have forgotten something: the dreaded error informing the user that the hardware is not responding as expected. Result: the host PC just seems to stop writing to the device.



I suppose the major question is: would I buy one? And the honest answer is: it’s not really likely, unless or until someone else volunteered to buy it. It’s expensive enough not to be a no-brainer and I’ve seen enough bugs that – whilst I’d like to play with one – I don’t have total confidence that the exercise wouldn’t turn into a game of swat-the-bug.

On the plus side, I do really like the use of C#.  At its best it is a friendly and powerful environment. Furthermore, you’re sufficiently insulated from the hardware side that, when it is working, it is possible to be very creative with the kit. It has to be said that C# both helps and hinders.Visual Studio makes it pretty easy to explore the code, but sometimes the obligatory CamelCase FuzzilyExplainedConstructs() can be a little opaque.

Leave a Reply

Your email address will not be published. Required fields are marked *