Other Boards Technology
Microsoft’s IoT Developer Program Puts Windows on Little Boards

Galileo with RGB Strip

When I think of running Windows on a small board, the first boards that springs to mind are the MinnowBoard (PDF instructions for the curious) and the Gizmo Board–both are capable of running x86 operating systems, and you can plug in a keyboard, mouse, and monitor.

So I found it interesting that you could put Windows on an Intel Galileo, and for free. That’s a better deal than Microsoft’s official method for the MinnowBoard MAX and similar boards, where you’re directed to install a 90-day evaluation version of Windows Embedded.

Since the Galileo doesn’t support a display and has only 256 MB of RAM, it’s probably not surprising that you’re working with a stripped-down version of Windows on it as well. It’s clear that it’s an embedded version of Windows, but this one, like the version of Windows for small tablets, is free (as in beer).

So what does Windows look like without a user interface? It looks a lot like DOS, a throwback to the early days of PCs (though it’s not DOS; instead of COMMAND.COM, your command prompt is CMD.EXE). And in yet another throwback, to access the device’s command prompt, you need to telnet in from another computer. It doesn’t get more old-school than that… actually, it does. You could telnet into it using cool-retro-term or Cathode.

CMD.EXE

To program a Galileo running Windows, you’ll need to run Visual Studio (the free editions are fine) on a Windows PC. Microsoft has ported the Arduino/Wiring libraries to their Windows for the Internet of Things, so you’ll be using Visual C++ to write code against the Arduino API. It looks a lot like Arduino source (code you wouldn’t find in an Arduino sketch is shown in bold):

#include "stdafx.h"
#include "arduino.h"

int _tmain(int argc, _TCHAR* argv[])
{
  return RunArduinoSketch();
}

int led = 13;  // This is the pin the LED is attached to.

void setup()
{
  pinMode(led, OUTPUT); // Configure the pin for OUTPUT so you can turn on the LED.
}

// the loop routine runs over and over again forever:
void loop()
{
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  Log(L"LED OFFn");
  delay(1000);               // wait for a second
  digitalWrite(led, HIGH);    // turn the LED on by making the voltage HIGH
  Log(L"LED ONn");
  delay(1000);               // wait for a second
}

Microsoft hasn’t just stripped down Windows and dumped it into an image you can run on a Galileo. They’ve been making improvements in Windows to better support the kind of things makers want to do. For example, Microsoft’s Lightning functionality is a re-architecture of Windows to make GPIO operations much faster. One user reported improvements that put the GPIO performance of their Windows-powered Galileo on par with Intel’s GPIO implementation on Linux.

Discussion of Microsoft’s involvement with the Maker community often attracts certain kinds of criticism. If you can’t open it, you don’t own it is a cornerstone of what we do here. Yet, I don’t believe that makers of closed source hardware (or software) have no place under the same tent I’m in. I believe there is an inevitable progression towards openness, and I’m encouraged by even the faintest of signals that indicate another step in that direction.

To try out Microsoft’s Windows operating system on your Galileo, all you need is a Windows PC that can run Visual Studio, a Galileo 1 or 2, and these instructions.

0 thoughts on “Microsoft’s IoT Developer Program Puts Windows on Little Boards

    1. I think MS has a lot to prove to be thought of as an innovator or even actor in the IoT space. However saying anyone is truly “late” to IoT is arguably hyperbole. The IoT market is still quite nebulous. One thing about IoT that I find still unsettled is integration. In the last 15-20 years consumer, Internet, and enterprise computing has largely been a software thing. MS Windows, Office, Linux, Google, Facebook, Amazon, Twitter were largely built as and with “Software” on commodity hardware. Whether that was OEM PCs, Servers, networking gear, etc. That “hardware” layer was rather common and generic underneath the thing you were selling.Your likely to find some Intel reference implementation in a Dell laptop, as a Mac laptop, as well as a 1U pizza box server in a Amazon or Twitter data center.

      I don’t see IoT there yet, and maybe it will never be that “commodity”. While it may not be perfectly analogous I think there is commonality. You do your prototyping with Arduino or Raspberry Pi, maybe even minimalist Atmel, TI, or Freescale ARM stuff. After all that you have to engineer and integrate a unique piece of hardware+support+thing for your newly developed piece of cool “firmware”. You aren’t likely to go to market on top of an Ardunio Uno, Raspberry Pi B+, or a Teensy. I see things like Raspberry Pi Compute module and Intel Edison kind of at least recognizing this dilemma.

      None of this is to say that Galileo + Windows IoT is the answer, or an answer, or even novel but the IoT market is far from mature.

    2. You are absolutely wrong if you are saying that late = insignificant.

      When the next piece of hardware that comes out runs windows, I expect to see you there, too, claiming that whomever it is “is late to the game, again.”

  1. Can it run PowerShell? That would be exciting. And Microsoft isn’t the same company it was three years ago. It’s really gone through a big shake up. Large portions of .NET are going on GitHub. The compiler is already open. Visual Studio (full version) is going free for open source developers and students. I’m sure the “you don’t own it” critics will still hem and haw. At least the narrow minded ones.

  2. I know I’m an outlier with this opinion, but can we PLEASE lose the “as in beer/speech” and pick better words than “free?”

    “Free of charge,” “gratis,” “at no charge,” “costing nothing,” etc. Free speech means only that the government can’t limit your rights to speak, it doesn’t mean that Make can’t limit my free speech on their site, so “free as in speech” doesn’t mean a damn thing, either.

    The whole “free” movement pisses me off because they can’t even get their goddamned nomenclature correct.

  3. According to recent polls I saw that 80% of developers develop for Windows environments – which means they probably use Visual Studio to do that. So to massively increase the amount of people that can take their ways of thinking about software, and then apply them to hardware, means that many more opportunities for cool, new, and functional products to be created.

    And in this age where so much looks like a re-hash of something from before, I’m all for having more thinkers become doers. If it takes giving them a programming environment they are already familiar with (Visual Studio) then nothing wrong with that (besides VS is a pretty packed and powerful IDE, imo).

    Anything that can productively help more people learn how to integrate software and hardware so they are participating in “making” and not just in “consuming” is good for society as a whole imo.

Tagged

I'm a tinkerer and finally reached the point where I fix more things than I break. When I'm not tinkering, I'm probably editing a book for Maker Media.

View more articles by Brian Jepson