.Net Gadgeteer

During my time at Microsoft Research Cambridge I got the chance to work together with James Scott, Nicolas Villar and Steve Hodges and to prototype networked appliances with .Net Gadgeteer [1, 3].


.NET Gadgeteer has an open hardware specification as well as an open API which enables vendors to publish their own .NET Gadgeteer boards and hardware components. Additionally, a software development kit (SDK) is provided which contains already existing functionality. The platform is designed for hobbyists and beginners so that developing appliances is easy and fast. Little programming knowledge is required to achieve first results (have also a look at the image below).
This is done with the help of wrappers methods which encapsulate functionality for hardware modules so that users do not need to care about protocols or the hardware. However, they are still able to do so if they like. Additionally, developers made sure that the API is easy to use and paid attention to a design that supports heavily use of the code completion support of Visual Studio (IntelliSense) which is required for the development with .Net Gadgeteer.
Each attached hardware module is represented by an object, which acts as an entry point to the module’s functionality.

At Microsoft Research we implemented different kinds of communication mechanisms and showed the potential with the help of some example applications. Parts of this work made it into the Gadgeteer API and into an IEEE article [2].

[1] Gadgeteer Website, http://www.netmf.com/gadgeteer, accessed 15.02.2013
[2] Hodges, Steve; Taylor, Stuart; Villar, Nicolas; Scott, James; Bial, Dominik; Fischer, Patrick Tobias; , “Prototyping Connected Devices for the Internet of Things,” Computer , vol.46, no.2, pp.26-34, Feb. 2013
[3] Gadgeteer Code Snippets, http://blog.hcilab.org/gadgeteer/, accessed 15.02.2013