TinyCLR OS

Last modified March 9, 2017

TinyCLR OS is our new take on .NET Micro Framework. You can learn more about it in the announcement.

To get started, install Visual Studio 2017 with the .NET Desktop Development workload and then install the VSIX from the TinyCLR OS install package. Next, flash the provided firmware to your device using TeraTerm or another serial program. Then start a new TinyCLR Application project in Visual Studio 2017 under C# -> TinyCLR, write some code, and press F5 to start your application.

You'll also need to create a local NuGet feed and place the provided library packages there until we upload them to the NuGet public gallery.

Since TinyCLR installs side by side with NETMF, you can continue using your existing NETMF projects. You can also reflash the NETMF firmware to your device at any time.

The libraries available today are limited. They will continue to change and evolve as we go forward to make sure we are up to date and consistent with the current desktop and Windows Runtime APIs and that we have a compelling feature set for embedded devices.

We plan on following SemVer for all version numbers and keeping assembly and firmware checksum compatible within a major.minor version. If a change in a library does not change the checksum or otherwise go against SemVer, it'll be a patch release. It is easy to verify that a given assembly and firmware are compatible: just make sure they have the same major and minor version.

Roslyn

Even better is that since we are using the Roslyn compiler with VS2017, you get a lot of C# 6 and C# 7 features (those that depend on generics do not work). While we have not added support for the missing .constraint IL prefix yet, we have not noticed Roslyn producing it in our tests. We've quickly tested the below features and confirmed them to work. Let us know if you run into any cases that fail on the device but work in a desktop application. See New Language Features in C# 6 and What’s New in C# 7.0 for details.

Releases

0.2.0 on 2017-03-07

Notes

You cannot use projects you made for the 0.1.0 version. You must recreate them and re-add your code files because of the changes to the project templates to make them more closely align them with the desktop .NET templates -- you'll notice the only difference is a few properties which prevent inclusion of reference assemblies. The templates also use the .NET Framework 4.5.2 target framework. This is only for NuGet compatibility going forward and does not mean you can use other libraries targeting that framework. This was done in anticipation of broader project system support of the new PackageReference format currently used in .NET Core which fails with unknown target frameworks.

The MSBuild package is no longer provided or required. The metadata processor tool has moved internally to the extension and is invoked during deployment to the device. This means that pe and pdbx files are no longer redistributed with their assemblies -- they appear in a pe folder under the output directory when you deploy. We have also rewritten how dependencies are detected for deployment. If you notice any weird failures around assembly resolution or deployment, let us know and send us the entire project as-is so we can diagnose it.

The information displayed while deploying to the device has also been improved to show more information about what is going on and what stage the deployment is in. We've also reworked incremental deployment so that assemblies are deployed one to a flash sector (if space allows) to enable re-deploying only the assemblies that have changed on a sector by sector basis. This greatly increases deployment speed on devices which a large number of flash sectors allocated to deployment.

This release also includes the firmware for the G120 and G120E. Because the current GHI bootloader on the G120 expects to load TinyBooter, we have provided a second stage bootloader with this preview that you must deploy using the existing GHI bootloader as if you were deploying TinyBooter. Once it is deployed and you restart the device, you'll notice that it starts our newer GHI bootloader 2.0. You can then use this second bootloader to deploy the TinyCLR OS firmware. Asserting LDR0 will enter the second bootloader while asserting both LDR0 and LDR1 will enter the original bootloader and allow you to return to NETMF.

After flashing the firmware the first time, Windows may still use the old NETMF USB IDs preventing the device from being seen by TinyCLR. Uninstall the device from the Device Manager and reinstall it to fix it. To update the firmware on pre-Windows 10 machines, you will need the bootloader drivers provided by our existing 2016 R1 NETMF SDK.

Core

Changes

Known Issues

Devices

Changes

Known Issues

Pins

Changes

Known Issues

Firmware

Changes

Known Issues

Extension

Changes

Known Issues

0.1.0 on 2016-12-16

Known Issues

Additions

Leave feedback about this document.
Let us know if the information presented here was accurate, helpful and if you have any suggestions.
Leave feedback about this document.
Let us know if the information presented here was accurate, helpful and if you have any suggestions.

* Indicates required fields.
This form is only for feedback not support.
Review our how to find information guide on locating helpful resources.