GSIoT samples for NETMF 4.3.1 (Beta 3 for Netduino Plus 2 and Mountaineer)

At long last, here now up-to-date releases of my book samples for NETMF 4.3.1 (aka NETMF 4.3 QFE1), both for Mountaineer and Netduino boards.

NETMF 4.3.1 firmware (Netduino Plus 2)

Please make sure that you have installed the NETMF 4.3.1 SDK and the Netduino Plus 2 SDK in versions 4.3.1! This may also require the installation of a new version of the TinyBooter. See here for more details:

NETMF 4.3.1 firmware (Mountaineer Ethernet Mainboard)

Please make sure that you have installed the NETMF 4.3.1 SDK and the Mountaineer SDK in versions 4.3.1! This may also require the installation of a new version of the TinyBooter. See here for more details:

API changes since NETMF 4.2 QFE 2

This version includes the changes that have become necessary for NETMF 4.2 QFE2, due to some changes in the framework APIs (analog inputs). For more details, see here.

Pachube, then Cosm, now Xively

Pachube has changed name again, from Cosm to Xively. I have changed the samples and library accordingly.

One solution, instead of many individual projects

To make handling of the many sample projects easier, I have put all of them in a single Visual Studio solution, along with the support libraries. To ensure that all samples end up above the libraries in the solution explorer, all project directories start with a number, e.g. "00 HelloWorld". In this way, the samples appear in the same order as in the book.

The StartUp project, which is started when you hit F5 ("Start Debugging" in menu DEBUG), is shown in bold in the solution explorer. You can change it by pointing with the mouse at the project that you want to start, e.g. "01 BlinkingLed", then selecting "Set as StartUp Project" in the menu that pops up when you click the right mouse button.

Before deploying an application, go to the project's properties, then to the ".NET Micro Framework" tab, and make sure that the Transport is USB, and that you see your device listed.

PC programs

The two PC programs (LedControllerClient and TestServer) are in a separate companion solution. They target the full desktop .NET framework.

Configuration project

To make it easier to work with different boards, I have put the hardware-dependent pin definitions into a separate project called "Configuration". All samples that need such definitions get them from the Configuration.Parameters class. You can change this class as needed, e.g. to use an externally attached LED, instead of the default on-board LED.

Also, this is the place to set up your Xively API key and feed ID, as well as your Yaler domain and key. In this way, you don't need to change all samples, you only need to make the changes in one place.

After you make a change to Configuration.Parameters, hit the F6 key to rebuild all dependent samples.

Important: at the start of your program, you need to call Parameters.Setup() for all samples that use I/O or networking!

HttpServer properties

While simplifying the configuration as described above, I replaced the HttpServer properties RelayDomain and RelaySecretKey by a more general property StreamProvider. The Configuration.Parameters.Setup method supplies an appropriate stream provider in the static field StreamProvider. As a result, a Web server sample that used to look like this:


        var webServer = new HttpServer
            RelayDomain = "...",
            RelaySecretKey = "...",
            RequestRouting =


now looks like this:


        var webServer = new HttpServer
            StreamProvider = Parameters.StreamProvider,
            RequestRouting =


Samples for Netduino Plus 2
Gsiot 4.3.1 Device Beta 3 (Netduino Plus
Compressed Archive in ZIP Format 3.1 MB
Samples for Mountaineer Ethernet Mainboard
Gsiot 4.3.1 Device Beta 3 (Mountaineer).
Compressed Archive in ZIP Format 2.9 MB
Samples for PC (no matter which device is used)
Gsiot 4.3.1 PC Beta
Compressed Archive in ZIP Format 48.6 KB

Write a comment

Comments: 2
  • #1

    Jeremy dePrisco (Sunday, 27 December 2015 15:33)


    I recently got your book, but did not get a board yet. I see the book was written for Netduino Plus V1. I also see you have some updates here on your site, so my guess is it is best to just go with a Netduino Plus 2 board. Correct? Is there any benefit to finding a V1 board and going through the exercises that way? I had a bit of experience with Xively already, before they became a commercial site. Looking forward to exploring this some more.

  • #2

    Cuno (Wednesday, 30 December 2015 12:17)

    @ Jeremy de Prisco No, I wouldn´t use a V1 board, as its memory size is really quite limited.

Companion Web site for the book
Getting Started with the Internet of Things
By Cuno Pfister
Publisher: O'Reilly Media