.NET Gadgeteer

Last updated
.NET Gadgeteer
Original author(s) Microsoft Research Cambridge
Developer(s) Microsoft
Initial releaseSeptember 20, 2010;12 years ago (2010-09-20)
Final release
Core 2.14.500 / 2012;10 years ago (2012)
Repository archive.codeplex.com?p=gadgeteer
Written in C#, Visual Basic .NET
Platform .NET Micro Framework
Type Embedded systems
License Apache License 2.0,
Creative Commons 3.0
Website microsoft.com/en-us/research/project/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. [1] [2]

Contents

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. [3]

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. [4]

In response to outside interest, Microsoft then released Gadgeteer as an open source software project, [5] describing the project as "an open collaboration between Microsoft, hardware manufacturers, and end users". [4]

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. [4]

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. [4]

Design and construction

.NET Gadgeteer mainboard and button module. SytechMainboardAndGHIButton.png
.NET Gadgeteer mainboard and button module.

.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. [6]

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. [7] [8] [9] [10] [11] [12] [13]

Hardware

Any hardware manufacturer, builder or hobbyist can create .NET Gadgeteer-compatible hardware; currently multiple manufacturers participate.

MainboardClock speed (MHz)ProcessorCoresNumber of socketsWidth (mm)Length (mm)Manufacturer
Argon R1120LPC1788 Cortex-M31145792Love Electronics
Eth Mainboard 1.0168STM32F407 Cortex-M4184257Mountaineer Group
USB Mainboard 1.0168STM32F407 Cortex-M4193257Mountaineer Group
Nano200Freescale ARM920T1104257Sytech Design
FEZ Spider73ARM7 LPC24781145257GHI Electronics
FEZ Hydra200ARM9 AT91SAMRL1146287GHI Electronics
FEZ Cerberus168STM32F405 Cortex-M4184757GHI Electronics
FEZ Cebuino Bee168STM32F405 Cortex-M4135580GHI Electronics
Bambino 200204LPC4330 Cortex-M4 & M02558102Micromint
Bambino 200E204LPC4330 Cortex-M4 & M021058102Micromint


See also

Related Research Articles

<span class="mw-page-title-main">Embedded system</span> Computer system with a dedicated function

An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. Embedded systems control many devices in common use today. In 2009, it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.

<span class="mw-page-title-main">AVR microcontrollers</span> Family of microcontrollers

AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. These are modified Harvard architecture 8-bit RISC single-chip microcontrollers. AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other microcontrollers at the time.

<span class="mw-page-title-main">Windows SideShow</span> Former feature by Microsoft

Windows SideShow was a feature by Microsoft introduced in Windows Vista to supply information such as e-mail, instant messages, and RSS feeds from a personal computer to a local or remote peripheral device or display. SideShow was intended to enhance the Windows experience by enabling new mobility scenarios for the Windows platform and by providing power saving benefits as part of Microsoft's broader efforts regarding a mobile initiative.

<span class="mw-page-title-main">Arduino</span> Open-source hardware and software platform

Arduino is an open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed under a CC BY-SA license, while software is licensed under the GNU Lesser General Public License (LGPL) or the GNU General Public License (GPL), permitting the manufacture of Arduino boards and software distribution by anyone. Arduino boards are available commercially from the official website or through authorized distributors.

<span class="mw-page-title-main">IEBus</span> Communication bus specification

IEBus is a communication bus specification "between equipments within a vehicle or a chassis" of Renesas Electronics. It defines OSI model layer 1 and layer 2 specification. IEBus is mainly used for car audio and car navigations, which established de facto standard in Japan, though SAE J1850 is major in United States.
IEBus is also used in some vending machines, which major customer is Fuji Electric. Each button on the vending machine has an IEBus ID, i.e. has a controller.
Detailed specification is disclosed to licensees only, but protocol analyzers are provided from some test equipment vendors. Its modulation method is PWM with 6.00 MHz base clock originally, but most of automotive customers use 6.291 MHz, and physical layer is a pair of differential signalling harness. Its physical layer adopts half-duplex, asynchronous, and multi-master communication with carrier-sense multiple access with collision detection (CSMA/CD) for medium access control. It allows for up to fifty units on one bus over a maximum length of 150 meters. Two differential signalling lines are used with Bus+ / Bus− naming, sometimes labeled as Data(+) / Data(−).

<span class="mw-page-title-main">.NET Micro Framework</span> Open source .NET platform

The .NET Micro Framework (NETMF) is a .NET Framework platform for resource-constrained devices with at least 512 kB of flash and 256 kB of random-access memory (RAM). It includes a small version of the .NET Common Language Runtime (CLR) and supports development in C#, Visual Basic .NET, and debugging using Microsoft Visual Studio. NETMF features a subset of the .NET base class libraries, an implementation of Windows Communication Foundation (WCF), a GUI framework loosely based on Windows Presentation Foundation (WPF), and a Web Services stack based on Simple Object Access Protocol (SOAP) and Web Services Description Language (WSDL). NETMF also features added libraries specific to embedded applications. It is free and open-source software released under Apache License 2.0.

<span class="mw-page-title-main">Fritzing</span> Open source CAD system for electronic design, aimed at hobbyists

Fritzing is an open-source initiative to develop amateur or hobby CAD software for the design of electronics hardware, intended to allow designers and artists to build more permanent circuits from prototypes. It was developed at the University of Applied Sciences Potsdam. Fritzing is free software under the GPL 3.0 or later license, with the source code available on GitHub and the binaries at a monetary cost, which is allowed by the GPL.

<span class="mw-page-title-main">Single-board microcontroller</span>

A single-board microcontroller is a microcontroller built onto a single printed circuit board. This board provides all of the circuitry necessary for a useful control task: a microprocessor, I/O circuits, a clock generator, RAM, stored program memory and any necessary support ICs. The intention is that the board is immediately useful to an application developer, without requiring them to spend time and effort to develop controller hardware.

OBDuino is an open source trip computer design based on the Arduino platform. An OBDuino may be assembled and customised by an electronics hobbyist; it displays information such as instantaneous fuel economy, engine tuning parameters etc. on an LCD.

ioBridge Manufacturer of Internet-based monitor and control hardware

ioBridge is a manufacturer of Internet-based monitor and control hardware and a provider of seamlessly integrated cloud-based social Web 2.0 folksonomies and curated online API webservices, using WebSocket, JSON and a host of other related technologies.

Wiring is an open-source electronics prototyping platform composed of a programming language, an integrated development environment (IDE), and a single-board microcontroller. It was developed starting in 2003 by Hernando Barragán.

<span class="mw-page-title-main">Adafruit Industries</span> American electronic components and hardware distributor

Adafruit Industries is an open-source hardware company based in New York City. It was founded by Limor Fried in 2005. The company designs, manufactures and sells a number of electronics products, electronics components, tools and accessories. It also produces a number of learning resources, including live and recorded videos related to electronics, technology, and programming.

Netduino is an open-source electronics prototyping platform based on the .NET Micro Framework. It uses the ARM Cortex-M 32-bit RISC ARM processor core as a 32-bit ARM-microcontroller. The Netduino boards are designed to be pin-compatible with most Arduino shields. Applications can be built on Windows, or on Mac OS. The platform is similar in concept to the Arduino platform, but is generally more powerful and instead of writing applications in C/C++ or Wiring, applications are written in C#, which brings powerful, high-level language constructs to the toolbox such as threading, event handling, automatic garbage collection, and more.

<span class="mw-page-title-main">ESP8266</span>

The ESP8266 is a low-cost Wi-Fi microchip, with built-in TCP/IP networking software, and microcontroller capability, produced by Espressif Systems in Shanghai, China.

MicroPython is a software implementation of a programming language largely compatible with Python 3, written in C, that is optimized to run on a microcontroller.

<span class="mw-page-title-main">ESP32</span> Low-cost, low-power SoC microcontrollers with Bluetooth and Wi-Fi

ESP32 is a series of low-cost, low-power system on a chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth. The ESP32 series employs either a Tensilica Xtensa LX6 microprocessor in both dual-core and single-core variations, Xtensa LX7 dual-core microprocessor or a single-core RISC-V microprocessor and includes built-in antenna switches, RF balun, power amplifier, low-noise receive amplifier, filters, and power-management modules. ESP32 is created and developed by Espressif Systems, a Shanghai-based Chinese company, and is manufactured by TSMC using their 40 nm process. It is a successor to the ESP8266 microcontroller.

ESP Easy is a free and open source MCU firmware for the Internet of things (IoT). and originally developed by the LetsControlIt.com community. It runs on ESP8266 Wi-Fi based MCU platforms for IoT from Espressif Systems. The name "ESP Easy," by default, refers to the firmware rather than the hardware on which it runs. At a low level, the ESP Easy firmware works the same as the NodeMCU firmware and also provides a very simple operating system on the ESP8266. The main difference between ESP Easy firmware and NodeMCU firmware is that the former is designed as a high-level toolbox that just works out-of-the-box for a pre-defined set of sensors and actuators. Users simply hook up and read/control over simple web requests without having to write any code at all themselves, including firmware upgrades using OTA updates.

<span class="mw-page-title-main">Comparison of single-board microcontrollers</span>

Comparison of Single-board microcontrollers excluding Single-board computers

References

  1. "Microsoft Gadgeteer home page". Archived from the original on 2012-03-23. Retrieved 2012-03-31.
  2. Hodges, Steve; Scott, James; Sentance, Sue; Miller, Colin; Villar, Nicolas; Schwiderski-Grosche, Scarlet; Hammil, Kerry; Johnston, Steven (2013). ".NET gadgeteer: a new platform for K-12 computer science education". SIGCSE '13: Proceeding of the 44th ACM Technical Symposium on Computer Science Education: 391. doi:10.1145/2445196.2445315. S2CID   8921467.
  3. "The .NET Gadgeteer Platform". Mountaineer. Archived from the original on 2014-04-19. Retrieved 2014-04-19.
  4. 1 2 3 4 "Introducing .NET Gadgeteer!". CodePlex. 2013-04-19. Retrieved 2014-04-19.
  5. ".NET Gadgeteer". Microsoft. September 20, 2010. Retrieved 2014-04-19.
  6. Hodges, Steve; Taylor, Stuart; Villar, Nicolas; Scott, James; Bial, Dominik; Fischer, Patrick (February 2013). "Prototyping Connected Devices for the Internet of Things" (PDF). IEEE Computer : 26–34.
  7. Clayton, Steve, ed. (2012-02-15). "What we didn't show you at CES: Microsoft's .NET Gadgeteer". Blogs.technet.com. Archived from the original on 2012-04-14. Retrieved 2012-05-15.
  8. "Microsoft Research's .NET Gadgeteer steps out into the light, shoots daggers at Arduino". Engadget.com. Retrieved 2012-05-15.
  9. "NET Gadgeteer looks to draw tinkering geeks away from Arduino". Slashgear.com. Retrieved 2012-05-15.
  10. Pawel Piejko (2011-08-07). "NET Gadgeteer - Microsoft's open-source toolkit for building gadgets". Gizmag.com. Retrieved 2012-05-15.
  11. "What Can You Do with .NET Gadgeteer?". Devhammer.net. 2012-02-18. Retrieved 2012-05-15.
  12. "Gadgeteer: Microsoft's open-source .NET alternative to Arduino". Extremetech.com. 2011-08-04. Retrieved 2012-05-15.
  13. Mike Dodaro (2012-04-10). "NET Gadgeteer Bluetooth Control of Motor Driver". Mikedodaro.net. Retrieved 2012-05-15.
  14. "GHI Electronics homepage". Ghielectronics.com. Retrieved 2012-05-15.
  15. "Love Electronics homepage". loveelectronics.co.uk. Archived from the original on 2013-05-02. Retrieved 2012-08-22.
  16. "Micromint USA homepage". micromint.com. Retrieved 2013-05-08.
  17. "Mountaineer Group homepage". mountaineer.co.uk. Retrieved 2012-08-22.
  18. "Seeed Studio homepage". Seeedstudio.com. 2011-04-29. Retrieved 2012-05-15.
  19. "Sytech Design homepage". Sytechdesigns.com. Retrieved 2012-05-15.