Beat's .NET quadrocopter

Off and on there have been discussions on various forums about how real-time capable the .NET Micro Framework is. As a prime example: could and should a quadrocopter be programmed purely in C#? Here our take on it, the NETMF code can be found on this page here. This code could probably be adapted to similar hardware.

GSIoT samples 4.3

The samples for the book "Getting Started with the Internet of Things" have been updated for NETMF 4.3. See here for more information and for the download links. There are two versions, one for Mountaineer boards, the other for Netduino Plus 2 boards.

Design by contract library

Design by Contract is a way to precisely document the semantics of methods, and to make sure that the program behaves in the documented way at runtime. This library here implements a subset of Microsoft's Design by Contract API (System.Diagnostics.Contracts).

Using the real-time clock

The microcontroller on Mountaineer boards support real-time clocks. Starting with release 4.3 of NETMF for STM32, this feature can be enabled. See here for more information.

Using the hardware random number generator

The STM32 microcontrollers have built-in hardware random number generators. It is supported by class RandomNumberGenerator in namespace System.Security.Cryptography. This is a true subset of the full .NET framework's API. See here for more information.

Using MFUpdate for in-field firmware updates

Microsoft has provided a firmware update mechanism since NETMF 4.2. With the Mountaineer Firmware 4.3.1 Beta 3, this flexible and lightweight mechanism is supported in actual firmware for the first time. See here for more information.

Using the NaCl crypto library

Security concerns are one of the most important hurdles for the adoption of the Internet of Things (IoT). As the IoT is enabled by large numbers of necessarily low-cost microcontrollers, which have small memories and relatively slow processors, support for cryptography can be a large burden. Starting with the Mountaineer Firmware 4.3.1 Beta 3, we support a crypto library that is light-weight, is renowned for its cryptographic strength, and has an API that comes with far fewer stumbling blocks for using it correcty. See here for more information.