Original author(s) | Microsoft Research Cambridge |
---|---|
Developer(s) | Microsoft |
Initial release | September 20, 2010 |
Final release | Core 2.14.500 / 2012 |
Repository | archive |
Written in | C#, Visual Basic .NET |
Platform | .NET Micro Framework |
Type | Embedded systems |
License | Apache License 2.0, Creative Commons 3.0 |
Website | microsoft |
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]
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]
.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]
.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]
Any hardware manufacturer, builder or hobbyist can create .NET Gadgeteer-compatible hardware; currently multiple manufacturers participate.
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 |
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.
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.
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.
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.
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(−).
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.
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.
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 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.
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.
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.
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.
Comparison of Single-board microcontrollers excluding Single-board computers