October 24th release with Ethernet and WiFi (RC3)

First, we want to thank you all for your patience waiting for 4.2 RTM. We are almost there, as this release covers one of the major areas we wanted done, the networking stack. As our devices handle Ethernet, WiFi and even external Ethernet (ENC28), we had to come up with a good way to handle it all. This release include a very nice DLL to do just that. You can now easily switch between WiFi and Ethernet while still keeping the interfaces available. For example, you can search for WiFi connection while Ethernet is connected an optionally switch when WiFi becomes available.

Also, with this release, we started using the new WinUSB drivers. No more BSoD :slight_smile: One note on the drivers, if Windows did not detect the USB drivers automatically, just point it to C:\Program Files (x86)\GHI Electronics\GHI Premium NETMF v4.2 SDK\USB Drivers\GHI_NETMF_Interface

Please do not forget to read the release notes, especially known issues.

RTM release will be done ASAP so we would really appreciate any feedback you may have. If you have problems with the firmware update process then please do not post here. Keep this thread related to issues with the SDK itself, not firmware update :slight_smile:

The download is on the support page http://www.ghielectronics.com/support/dotnet-micro-framework


Edit: Complete networking code example is at http://www.tinyclr.com/codeshare/entry/588

This is how simple it is to set up WiFi:

// Create the object
static WiFiRS9110 wifi = new WiFiRS9110(SPI.SPI_module.SPI1, chipSelect, externalInterrupt, resetPin);

// Set the object up
if (!wifi.IsOpen)
if (!wifi.NetworkInterface.IsDhcpEnabled)

// Set this as the current interface

// Subscribe to events
wifi.WirelessConnectivityChanged += new WiFiRS9110.WirelessConnectivityChangedEventHandler(wifi_WirelessConnectivityChanged);
wifi.NetworkAddressChanged += new NetworkInterfaceExtension.NetworkAddressChangedEventHandler(wifi_NetworkAddressChanged);

// Scan for networks
WiFiNetworkInfo[] ScanResp = wifi.Scan();

// Join your network
wifi.Join(ScanResp[myNetwork], PassPhrase);

// And now you are free to use WiFi!

Setting up and using the networking classes is so simple that all the Gadgeteer module drivers do is expose the related members.

Woo Hoo! WinUSB drivers! Thank you!

Hmm. So does this mean there are still 2 firmware builds? 1 with and 1 without ethernet? Or does this mean it’s one firmware build without ethernet and you just add the appropriate DLL? I guess I will find out when I install the SDK…

Just bought two wifi modules! Can’t wait to try this out!

For the premium systems there is only one firmware. For the OSHW systems there are still two separate firmwares.


Gus, Do you recommend un-installing existing SDKs before installing the new packages?

No need

Can we disable the ethernet oscillator on the EMX with this new firmware?

Yes defiantly. The pin for the oscillator enable is connected is P0.22. I can write the code and test Monday if you want or you can faster. Use Register class to access the pin and set high/low. I think high = on.

Just updated the Spider and the Hydra, first tests look good. I can confirm that the Touch interface interference with the the analog signals on port 14 is resolved!!!

1 Like

@ Steven

I am trying to get a Spider with a J11D working with little success. Tried to use similar logic to what was posted earlier for WiFi and
a null exception is occurring in the DHCP thread.

Would you have a snippet on how to get Ethernet going in the ProgramStarted() method? Thanks.

I can’t seem to get this to work on my Cerb40. Anyone else have it working on a Cerb-Family device? I flashed the TinyBooter with DFU Tester and Windows sees the Cerb-Family device when I plug it in, but it claims the driver is not found. I checked the box to install the drivers in the SDK. Also, MFDeploy does not see the board. But, as soon as I flash the older TinyBooter, it works and shows up in MFDeploy.

UPDATE: I had to go into hardware manager and update the driver manually using the driver at this installed location: C:\Program Files (x86)\GHI Electronics\GHI NETMF USB Driver Set\GHI_NETMF_Interface

After that, it appeared in MFDeploy and I was able to deploy the firmware:

SolutionReleaseInfo.solutionVendorInfo: Copyright (C) GHI Electronics, LLC
SoftwareVersion.BuildDate:              Oct 23 2012
SoftwareVersion.CompilerVersion:        410462
FloatingPoint:                          True

2 Hyrdas, 1 Panda, 1 CANXtra, 1 Cobra, 1 ChipworkX and (thanks to Eric) 1 Cerberus all updated. :smiley:

Open up device manager, select update firmware and point to it manually. Worked for me.

@ Gus - WOW. I can’t get it to Bluescreen! And when I yanked the power cable, Visual Studio politely told me it was waiting 60 seconds to replug (see attachment)! Beautiful! This looks to be fool-proof. Fingers Crossed!

Thank you!

So you also had to do that to make it work?

Yup. I believe it was in the release notes of possible issues.

Anyone know how to get Ethernet going on the Spider? I think the API has changed.

My laptop didn’t even BSOD at the end, it just restarted hard. Now it all seems to work great :slight_smile: Great job! Thanks GHI!

@ Mike - Same here… It was working for me then when I flashed my spider to 4.2 release now it doesn’t work.