Welcome to nanoFramework!

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

Panel 1

What is nanoFramework?

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 the Universal Windows Platform (UWP) allowing code reuse from desktop applications, IoT Core 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 nanoFramework platform picks up where .NET Micro Framework left off and uses several of its building blocks. Many of the original components were completely rewritten, others improved and some simply reused. A lot of code cleansing and improvements took place to make nanoFramework fit for the future!

Panel 2

Why use nanoFramework?

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 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 extendibility to new hardware platforms, nanoFramework is the perfect partner for your project. The current reference implementation uses ChibiOS supporting several ST Microelectronics  development boards and also ESP32.
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 256kB of flash and 64kB of RAM.
  • Runs directly on bare metal. Currently ARM Cortex-M and ESP32 devices are supported.
  • Supports common embedded peripherals and interconnects like GPIO, UART, SPI, I2C, USB, networking.
  • Provides multithreading 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:

  • First class debugger experience right on the target hardware with breakpoints, single step, step into, step out, step over, pause and stop.
  • Powerful and free programming environment with Microsoft Visual Studio IDE.
  • Support for a large range of inexpensive boards from several manufacturers including: Discovery and Nucleo boards from ST Microelectronics, Quail from Mikrobus, Netduino from Wilderness Labs and ESP32 DevKit C.
  • Easily expandable to other hardware platforms and RTOSes. Currrently is targeting CMSIS compatible ones and ESP32 FreeRTOS port.
  • Completely free and Open Source. From the core components to the utilities used for building, deploying, debugging and IDE components.
Panel 4 Placeholder