[Note: Firmware, versions and hardware will change over time and I expect this guide to get out of date, it is intended to help those with 4.1 –> 4.2 migration issues.]

What is changing?

.NET Gadgeteer is built upon NetMF (a cut down version of the full .NET runtime) and since NetMF has released a new version v4.2 then everything that depends on this layer so to speak also has to change. In theory you would only update if you need a particular feature, but it is always nice to be sure that you are on the latest versions. For example NetMF v4.2 provides the ability to code in VB (as well as the existing C#). You may also find that some annoying bug has been fixed in a later version.

The symptoms

You realise something is up when Visual Studio complains that there are deployment issues but everything is plugged in and should work!


Before you go any further so a sanity check:

  • Did the project/solution build/rebuild without errors? You can always try with a blank Gadgeteer project.
  • Is the hardware plugged in? (seriously)
  • Don’t plug into USB3.0 ports, there are some issues (they tend the be blue USB sockets)

Update the software

Depending if you have a policy to stick to a particular version updating may or may not be a good idea – your call. I like to keep things updated so look at the hardware you have and go to the manufacturers site and download the latest bits, e.g. GHI: http://www.ghielectronics.com/support/dotnet-micro-framework

Step 1 – Is my hardware recognised?

With your mainboard plugged into a USB port, go to Device manager and see if the device has been found.image You are looking for something similar to the name on your hardware and you don’t want any errors, unrecognised devices. (They don’t all appear the same, so here are a few examples). 

  • FEZ Cerberus  and FEZ Cerberus Bee (healthy)image
  • FEZ Hydra (Healthy)image
  • Love Electronics Argon R1 (Healthy)image
  • Sytech Nano (Healthy)
  • image
  • Mountaineer Eth
  • image

So you get the idea, plug the device in and out and see if any devices are found/removed if you are unsure. If you can see your hardware here and it does not have any warnings then things look good and you can move on assuming that you hardware has been recognised.

Step 2 – If the hardware was recognised…

If you got a deployment issue and your hardware is recognised, then be sure that Visual Studio can see the hardware. Right click on the project (not solution) and select properties.


The properties window has a .NET Micro Framework tab which will show you which device you have plugged in and is . If your device is NOT listed here then it was not recognised. Be careful if you change this setting you need to save for the change to take effect. The easy, safe option here is to select another transport such as serial then re-select the USB transport. Select your device again (so you end up where you started) and save (hit ctrl + s) or close the properties window.

If your hardware is recognised and Visual Studio can see the device, you should not get a deployment error, be sure your project compiles (test with a blank new Gadgeteer project). Check the output window for errors (see further in this post if you are unsure where the output window is located.) and check to see if it is a firmware version issue (read on).

Step 3 – If the hardware is not recognised…

If you get a yellow exclamation on the hardware the driver did not load and the hardware will not work until you get the driver fixed. The transition between NetMF 4.1 and 4.2 resulted in a change of USB driver to WinUSB – which is installed on most OS (For Windows XP  check http://stevenjohnston.co.uk/2012/11/14/net-gadgeteer-on-windows-xp/)

Manually update your USB driver, Plugin your mainboard and in device manager right click the unknown/error device and update the driver to a legacy driver. (located in the GHI install directory) – something like  “C:\Program Files (x86)\GHI Electronics\GHI Premium NETMF v4.2 SDK\USB Drivers”

This has been known to help for the following mainboards : Hydra, Cerberus,

There is a GHI forum here: http://www.tinyclr.com/forum/topic?id=9521

Do i have a firmware version error/mismatch?

If your hardware is recognised in device manager, but the firmware needs updating you will see the following in the output window


If you do not have the output window showing then this problem is harder to find as the deploy will look like it is doing nothing (it has really failed and put the error on the output window – see section below if you are unsure where the output window is located)

Update the Firmware

This is different for each manufacturer, have a look at their site, for example:

FEZ Hydra and Spider may be options on your start menu:


GHI update FEZ Cerberus instructions: http://wiki.tinyclr.com/index.php?title=Firmware_Update_FEZ_Cerberus

GHI Hydra: http://wiki.tinyclr.com/index.php?title=Firmware_Update_FEZ_Hydra

Use the output window!

Before you go any further be sure to have the ‘output’ window displayed in Visual Studio. Whilst this may appear obvious it is not on by default if you use the express version.

To view, the output window, Debug –> Windows –> Output.


The output window will show you errors and is usually located at the bottom of the main Visual Studio windows (you may need to select the tab) Below is the output of a blank project once it has been rebuilt (all went ok)


The diagnostics loop summary

  • Update the software
  • Check the hardware is recognised
  • Check USB drivers
  • Deploy a blank solution
  • Update the firmware
  • Try different boards