Feature List for v4.2 and QFEs
Version 4.2 of the .NET Micro Framework SDK contains the following new features:
- Remote Firmware Update: The .NET Micro Framework SDK and PK now support updating your device firmware remotely.
- Complete Cryptographic Object Model over PCKS #11: Most types and algorithms used in the desktop framework are now supported. PKCS #11 allows extensibility at the firmware level for adding new cryptographic tokens.
- OneWire, PWM and A/D object model: Support for PWM and A/D operations is now provided as a standard interface. OneWire is provided through a community development effort.
- SNTP and FTP (client and server): Support for SNTP and FTP is provided as a community development effort.
- StringBuilder and Regex types: Support for StringBuilder and Regex is provided as a community development effort.
- VB.NET: The SDK now support VB.NET.
- Support for Cortex M3 devices with STM32 processor family samples: The support for the STM32 family is provided as a community development effort and features two solutions for two different development boards. See the Porting Kit for details.
- PKStudio: PKStudio supplements SolutionWizard to create solutions for the Porting Kit environment. See the Porting Kit distribution for details.
The PWM feature now supports a scale factor which enables modulation over a wider range of values and better precision. QFE1 supports modulations greater than 1MHz and lower than 1Hz. In addition, the PWM feature will automatically determine the scale based
on the provided frequency so that precision is optimal.
- 1385 Double/Float ToString() for GCC builds (1.0001 displayed as 1.1)
- 1393 Emulator crashes on update install
- 1436 Missing break statement in TinyBooter
- 1421 FAT corruption - Format was not properly erasing all of the FS sectors
- Resource failure under memory pressure
- Loaded Assembly names and versions are displayed by default
- Better handling of Porting Kit builds for RTIP devices when RTIP libraries are not installed
- Fix Prepare_Copy and Prepare_Zero for devices that are not 4-byte aligned
LWIP and Network Driver Improvements
- LWIP will force TCP connections in the closing states to abort after linger timeout (or LWIP default timeout if linger is not used)
- Enable Linger value to trump default LWIP timeout for TCP sockets in the closing states
- Added light weight protections (locking) for LWIP
- Fixes and Improvements to the SAM7x EMAC driver
Feature set contains the following: support for WinUSB,
Analog Output, and GCC. Performance improvements for File System, Wear Leveling, Microbooter and TouchScreen.
Miscellaneous fixes for CodePlex Issues:
- Work Item: 1590 - Decrease boot time
- Work Item: 1636 - File.Exists returns true for unexisting file
- Work Item: 1656 - Problems with bad blocks handling in Wear Leveling Driver
- Work Item: 1701 - StreamReader.cs – IndexOutOfRangeException
- Work Item: 1109 - FAT32 File System issue with filenames
- Work Item: 1721 - VolumeInfo.Format() locks volume.
- Work Item: 1633 - SerialPort.Read's behaviour is different from .Net
- Work Item: 1580 - Negative array index issue
- Work Item: 1585 - Issue in Microbooter prevents usage in Cortex M3 STM32 port
- Work Item: 1586 - Broken firmware on device reset during Microbooter FW update
- Work Item: 1635 - Substring issue in 4.2 RC4
- Work Item: 1659 - Bug in StringBuilder.Append (thanks to Julius Friedman)
- Work Item: 1672 - Wrong long to hex conversion
- Work Item: 1373 - MDK targets problems
Documentation for the SDK can be found on
MSDN or downloaded from
here. Documentation for the PK can be found
Features designed and coded by .NET MF Team for the next MF version (August 2011)
COMMITTED: Cryptographic Primitives OM
The current support is obsolete and non-standard. We plan to provide a new object model that is compatible with the traditional .NET and
Compact Framework model for the following primitives in the System.Security.Cryptography namespace (non-Cng): SHA-256 and 512, HMAC-SHA-256 and 512, SHA-1 , HMAC-SHA-1, MD-5, AES, 3-DES, RSA, Diffie-Hellman, DSA, and X509 certificates. The native code for
the primitives will be the one from the OpenSSL stack.
COMMITTED: Remote firmware update middleware
This would include a PAL level API and a way to leverage it from the native application. The PAL level API will allow to Open/Close a firmware
update transaction, save the data to flash, verify for integrity against and origin with a PK verification scheme (similar to what TinyBooter does today today), and eventually commit the change. We will address devices with enough FLASH/RAM resources to make
the change transactional first and save the complete set of update binaries to a location in memory. Most likely an HTTP-based implementation will be provided as well as a sample for one or two ports in the PK.
COMMITTED: Time Protocol (SNTP) for lwIP, please note we might look into integrating
RFC4833 for supporting time zone as well
The support in lwIP is not very good but we plan to supplement it to achieve feature parity with IPv4.
TENTATIVE: Improvement to SerialPort
SerialPort.ReadExisting, (item 107 in CodePlex issues Db),
SerialPort.DataReceived support for the emulator (item 75 in same Db) and
SerialPort.BaseStream (WorkItem 363)
TENTATIVE: SolutionWizard support for SH solutions
We plan to investigate the feasibility of exposing a StreamInsight port in the .NET MF. This would obviously be extremely simplified but still be capable of writing data aggregation and analysis applications, see
http://msdn.microsoft.com/en-us/library/ee362541.aspx, which are a potential differentiator in markets such as Energy Management or Medical Devices.
NOTE: all work items above will be complete with tests, samples and MSDN docs.
We are starting to see some interesting proposals from the community, please check all work items marked as feaures at
http://netmf.codeplex.com. Some have already found a Core Tech Team member that offered
help to work on them. Here is a list of the most interesting:
VB.NET: Jan Kucera offers to champion this effort
PWM & Analog standard OM: Mike Issa at GHI electronics offered to help with this work item
String.Format: Michael Schwarz offered to help
BitArray: Volker Goller offers help to supervise this work item and we are waiting for a volunteer from the community.
This can be a fun way to approach embedded development with the .NET MF and contribute at the same time.