Welcome to .NET nanoFramework!

Our mantra is about making it easy to write C# code for embedded systems! And all what we’re doing here is about that. This free and Open Source platform that enables the writing of managed code applications for constrained embedded devices. As a developer, you can use your powerful and familiar tools like Microsoft Visual Studio IDE and your .NET C# skills to write code on a microcontroller.

Official ports for Silicon Labs Giant Gecko S1, Espressif ESP32/S2/C3, ST Microelectronics STM32 F0/4/7/H7/L0/L4, TI CC3220/CC13x2/CC26x2 and NXP i.MX RT1060.

Here you’ll find all the tools, examples, documentation and a great developer ecosystem to help you on your next embedded systems project.

Getting started

Panel 1

What is .NET nanoFramework?

.NET nanoFramework is a free and open-source platform that enables the writing of managed code applications for constrained embedded devices. It is suitable for many types of projects including IoT sensors, wearables, academic proof of concept, robotics, hobbyist/makers creations or even complex industrial equipment. It makes the development for such platforms easier, faster and less costly by giving embedded developers access to modern technologies and tools used by desktop application developers.

Developers can harness the powerful and familiar Microsoft Visual Studio IDE and their .NET C# knowledge to quickly write code without having to worry about the low-level hardware intricacies of a microcontroller. Desktop .NET developers will feel “at home” and are able to use their skills in embedded systems development, enlarging the pool of qualified embedded developers.

It includes a reduced version of the .NET Common Language Runtime (CLR) and features a subset of the .NET base class libraries along with the most common APIs included in .NET IoT allowing code reuse from .NET IoT applications, thousands of code examples and open source projects.
Using Microsoft Visual Studio, a developer can deploy and debug the code directly on real hardware.

The project is supported by the .NET Foundation.

You can watch this video from the Microsoft IoT Show featuring .NET nanoFramework connected to Azure IoT Hub, measuring a BMP280 sensors and using the unique deep sleep feature from microcontrollers. A real life example with .NET nanoFramework:

IoT Show

Panel 2

Why use .NET nanoFramework?

.NET nanoFramework is the perfect enabler for developing software that works on embedded devices. Start with a low cost and readily available development board, then use nanoFramework to write, debug and deploy your code.

Whether this is your first foray into programming or you are a seasoned developer, if you want a powerful and easy to use tool for developing software that runs on embedded devices, you are in the right place. With its modular architecture, it’s easy to grab the core components (like the CLR, debugger and interpreter) and extend it to new hardware platforms, .NET nanoFramework is the perfect partner for your project.
The existing reference implementations use a mix of RTOS and hardware platforms.
We have ChibiOS supporting several ST Microelectronics development boards, Espressif ESP32/S2/C3 and NXP MIMXRT1060-EVK running on Free RTOS; Texas Instruments CC3220 Launchpad, CC1352 Launchpad running TI-RTOS and Silicon Labs Giant Gecko S1 running on Azure RTOS.
Because it’s completely free and Open Source you have access to and the ability to modify all parts of the code including the ability to leverage what others have already contributed. If you are willing to, you can help shape the future by contributing back to the project and rapidly growing community.

Here are some of its unique features:

  • Can run on resource-constrained devices with as low as 128kB of flash and 64kB of RAM.
  • Runs directly on bare metal. ARM Cortex-M0/4/7, Xtensa LX6/7 (ESP32) and RISC-V devices are supported.
  • Supports common embedded peripherals and interconnects like GPIO, UART, SPI, I2C, USB, networking.
  • Provides multi threading support natively.
  • Support for energy-efficient operation such as devices running on batteries.
  • Support for Interop code allowing developers to easily write libraries that have both managed (C#) and native code (C/C++).
  • No manual memory management because of its simpler mark-and-sweep garbage collector.
  • Execution constrains to catch device lockups and crashes.

Here are some advantages over other similar systems:

Panel 4

Support .NET nanoFramework

You can help .NET nanoFramework to thrive through contributions, donations and sponsorship. Donations allow us to pay for things like infrastructure costs, PR effort, supports coding enhancements, adding new features, improving documentation and building learning material.
For more detail on this, please check our documentation on how to contribute.

Sponsors

Sponsors will get their logo and link to a website on our GitHub readme and our home page.

LINKIT

BaCkers

Backers are individuals who contribute with money to help support .NET nanoFramework. Every little bit helps and we appreciate all contributions, even the smallest ones.

Other backers and sponsors

There are other people and organizations that have contributed to .NET nanoFramework along the time in several ways: sponsoring the coding of a feature that was missing or needed improvement, paying for an expense, coding a feature or… We would like to acknowledge these sponsors.

PART OF the .NET Foundation.