# .NET Gadgeteer

Microsoft .NET Gadgeteer is an open-source rapid-prototyping standard for building small electronic devices using the Microsoft .NET Micro Framework and Microsoft Visual Studio/Visual C# Express.

## The Gadgeteer platform

The Gadgeteer platform centers around a Gadgeteer mainboard with a microcontroller running the .NET Micro Framework. Gadgeteer sets out rules about how hardware devices packaged as add-on modules may connect to the mainboard, using solderless push-on connectors. Gadgeteer includes a small class library to simplify the implementation details for integrating these add-on modules into a system. It is a way of assigning the plethora of functions that a microcontroller provides to sockets that have a standardized, small set of interfaces at the hardware level.

## History and licensing

.NET Gadgeteer was created by researchers at Microsoft Research Cambridge, where the Sensors and Devices group created it as a way develop device ideas rapidly and iteratively. It quickly generated interest from hobbyists, teachers, and developers, who wanted a platform to build gadgets in a short time.
In response to outside interest, Microsoft then released Gadgeteer as an open source software project, describing the project as "an open collaboration between Microsoft, hardware manufacturers, and end users".
The core libraries are published under the Apache 2.0 License, while the hardware designs are under the Creative Commons 3.0 License. The core source code is publicly available from the CodePlex source repository.
Microsoft has stated plans to continue supporting and investing in the .NET Gadgeteer ecosystem, including hosting educational materials and working with companies to create compatible kits and modules.

## Design and construction

.NET Gadgeteer projects consist of a mainboard and a series of modules connected via a standard 10 pin connector. The mainboard sockets can support one or more different types of modules, shown by a series of letters next to the socket. Each module has a letter showing its module type. (Connecting modules incorrectly does not harm the hardware – providing only one red power module is used). Any module that supplies power (via USB, DC or battery) is coloured red to help prevent multiple power sources that can potentially harm the devices.
The Gadgeteer library includes a layer of event-driven drivers and code generation, which integrates with Visual Studio. This enables developers to visually create a diagram in Visual Studio of which hardware modules (for instance, a camera module, button module and screen module) are connected to which sockets on the mainboard, and the Gadgeteer SDK then auto-generates code creating object instances for all the relevant hardware. In this way the developer can immediately begin writing .NET code targeting the connected hardware.
Many different modules are currently available for a series of hardware vendors, including wireless transmission, environment sensors, actuators and custom community modules resulting in a large ecosystem of projects.

## Hardware

Any hardware manufacturer, builder or hobbyist can create .NET Gadgeteer-compatible hardware; currently multiple manufacturers participate.
* GHI Electronics
* Love Electronics
* Micromint
* Mountaineer Group
* Seeed Studio
* Sytech design
| Mainboard | Clock speed (MHz) | Processor | Cores | Number of sockets | Width (mm) | Length (mm) | Manufacturer |
| Argon R1 | 120 | LPC1788 Cortex-M3 | 1 | 14 | 57 | 92 | Love Electronics |
| Eth Mainboard 1.0 | 168 | STM32F407 Cortex-M4 | 1 | 8 | 42 | 57 | Mountaineer Group |
| USB Mainboard 1.0 | 168 | STM32F407 Cortex-M4 | 1 | 9 | 32 | 57 | Mountaineer Group |
| Nano | 200 | Freescale ARM920T | 1 | 10 | 42 | 57 | Sytech Design |
| FEZ Spider | 73 | ARM7 LPC2478 | 1 | 14 | 52 | 57 | GHI Electronics |
| FEZ Hydra | 200 | ARM9 AT91SAMRL | 1 | 14 | 62 | 87 | GHI Electronics |
| FEZ Cerberus | 168 | STM32F405 Cortex-M4 | 1 | 8 | 47 | 57 | GHI Electronics |
| FEZ Cebuino Bee | 168 | STM32F405 Cortex-M4 | 1 | 3 | 55 | 80 | GHI Electronics |
| Bambino 200 | 204 | LPC4330 Cortex-M4 & M0 | 2 | 5 | 58 | 102 | Micromint |
| Bambino 200E | 204 | LPC4330 Cortex-M4 & M0 | 2 | 10 | 58 | 102 | Micromint |