.NET Micro Framework (NETMF)

NETMF is an open-source platform that broadens the potential and adaptability of .NET to the world of embedded devices. Desktop programmers can now create applications that run on a range of systems from tiny devices, like remote controls, to PCs and Servers on the cloud — all with the same programming model and tools. Embedded Developers can tap into the massive productivity gains seen on the Desktop and reduce their time to market.

"The .NET Micro Framework is .NET for small and resource constrained devices. It offers a complete and innovative development and execution environment that brings the productivity of modern computing tools to this class of devices."
.NET Micro Framework website
"GHI Electronics has been one of the primary supporters of the .NET Micro Framework. Since the product became a collaborative Open Source project in 2009, they have served on the Core Technology team for the product providing support and direction for the technology. In addition, they have developed a number of extensions that enhance the product for their customers. Their commitment and efforts in support of .NET on small devices is outstanding."
Colin Miller – Product Unit Manager, .NET Fundamentals, Microsoft

What do we offer with NETMF?

From a developer's point of view, working with NETMF has two sides; porting it to the hardware and using it to control your hardware. Porting requires considarable cost, extensive time and a lot of experience. Once that is done, using NETMF is almost effortless.

Using quality and reliability as the main guidelines, we tackled these difficult tasks and further enriched NETMF with value-added features such as WiFi, USB Host and database support. This results in low risk drop-in solutions at minimal cost.

Core Features

NETMF is full of modern core features:

  • Arrays
  • Classes
  • Collections — ArrayList, Dictionary, Stack, Queue
  • Cryptography — Encrypting/decrypting, hashing, SSL
  • Displays
  • Dynamic memory management with GC
  • Exceptions
  • File I/O — Files, directories and various storage types.
  • Globalization
  • Graphics — Bitmap, GIF, JPEG, Windows Presentation Foundation (WPF), fonts, touch and gestures.
  • Numerics
  • Power Management
  • Reflection
  • Hardware — Analog Input/Output, Digital Input/Output, I2C, Interrupts, OneWire, PWM, SPI, UART (Serial Port)
  • Math helpers
  • Namespaces
  • Networking — DHCP. DNS. HTTP. Sockets. TCP. UDP. Wireless
  • Runtime Debugging
  • Serialization
  • Strings
  • Text Encoding/Decoding
  • Threading, Events, Delegates, and Timers
  • Time keeping
  • USB Client
  • XML
  • Resources

GHI Added Extensions

We build upon NETMF's core features above with additional value added extensions:

  • Display configuration and start-up logo
  • I/O — CAN, Signal Capture, Signal Generator, Software I2C, USB Mass Storage
  • In-Field Update
  • PPP
  • Real-Time Clock
  • Register Access
  • RLP to load native code (c/assembly) for speed and real-time purposes.
  • SQLite Database
  • USB Client — Joystick, Keyboard, Mass Storage, Mouse
  • USB Host — Joystick, Keyboard, Mass Storage, Mouse, USB-Serial, Webcam
  • Watchdog

Use our NETMF Product Selector to learn more about our products using this technology.

.NET Gadgeteer (an extension, built on top of NETMF)

.NET Gadgeteer is built on top of NETMF to provide a rapid development platform that utilizes mainboards and plug-and-play modules. Take a temperature logger application for example, this requires a mainboard, SD card module and temperature module. As for the software, all the necessary drivers are included, significantly reducing development time.

.NET Gadgeteer is a standard maintained by Microsoft for standardizing the connections between mainboards and modules. We've been apart of the NETMF core technology team for years and contributed towards finalizing the .NET Gadgeteer standard. We were elected to be the first vendor to offer a .NET Gadgeteer board, the FEZ Spider. The ecosystem continues to grow with more mainboards and modules.


Using .NET Gadgeteer's designer is simple and speeds up your design. On the designer screen, open the Toolbox, drag and drop the wanted components, right-click and select "Connect all modules" and you've finished the initial setup.

This automatically includes all the necessary DLLs and generates a variable for reach component. Allowing you to focus on writing the core functionality of your design without having to write it all from the start. Saving you precious time and resources.


Microsoft's Visual Studio includes a feature called IntelliSense. As you type, IntelliSense understands what you might be trying to do and displays boxes with suggestions. That's why we ship .NET Gadgeteer products without any programming manuals.

Let's say you were using a Camera Module. All you need to do is type the word "rfidReader" and hit "period" on the keyboard to see a list of supported methods available in the included drivers.

Finished Product

All mainboards and modules have standardized 3.2mm mounting hole aligned on a 5mm grid. This allows for simple enclosure design. The enclosure can made out of laser-cut acrylic sheets or even 3D printed.

The left two images above are for a plant moisture sensor that uses .NET Gadgeteer at its core and a 3D printed enclosure. The right image shows a model of an acrylic case that could be laser cut.

Gadgeteer vs. Arduino vs. Phidgets

How does Gadgeteer stack up against other development platforms? Take a look at the video below that compares:

  • Blinking an LED.
  • Controlling a servo with a potentiometer.
  • Pedometer that displays the steps on an LED array.