Saturday, May 2, 2015

Windows in the IoT space

So this past week the annual Microsoft Build Developer Conference happened in San Francisco.  During many of the key note talks, Microsoft announced a bunch of their new platforms and products.  Among them was Visual Studio 2015, Windows 10 Insider Preview, and Windows 10 for IoT.

For my non techie friends and family, IoT = the Internet of Things.  So what does that mean?  Well as our computing devices get smaller and smaller, we are able to create more things that can connect to the ever growing internet.  It isn't just your computer or mobile phone anymore.  We have tablets, game consoles, smart TVs and other media devices.  We now also have thermostats (Nest), home automation systems, refrigerators, toasters, small robots, cats and dogs living together MASS HYSTERIA!
For the most part this space has been frequented by micro-controller boards like the Arduino, Beaglebone, and the much smarter Raspberry Pi computers.  Newer and smaller boards have now entered the market and they have come ready for the internet.  Spark.io has been releasing a different board every few months.  Their first was a Wi-Fi enabled Spark Core, then came the much smaller Photon (about the size of a postage stamp), and now they have a cellular enabled board called the Electron.  

So with all this IoT growth, it is only natural that Microsoft decided to jump in the pool.  As a software company, you almost need to be in there if you want to stay relevant.  So what's this new Windows 10 IoT all about?  Well it is the latest in Microsoft's embedded OS.  As of now they are supporting 3 hardware platforms - Raspberry Pi 2, MinnowBoard Max, and Galileo.  Galileo has supported previous versions of Windows embedded but does not yet support Windows 10.  But Microsoft has instructions on how to get started anyway.  I will focus on the Raspberry Pi 2.  This latest version of Pi was released a few months ago and is a pretty impressive tiny computer (just don't use high powered camera flashes next to it).  With a 900MHz quad-core ARM Cortex-A7 processor and 1GB of RAM, it certainly has some juice to run a scaled down Windows OS.  

So what will you need to get going?  Well first a Raspberry Pi 2, availability is up and down so grab one when you can.  Next you will need something to run Windows 10 Insider Preview (current version is 10074).  I ran it in a VM but there are some very annoying bugs in the current version.  I have not run it on a physical device yet since I don't have spare laptops lying around.  You will also need Visual Studio 2015 to do development on.  Follow the instructions on their github page. Flashing the SD card is pretty straight forward.  Once the Pi is booted up, you will have a screen with some basic information including the name of the device and it's IP address.  You will need to hardwire it with ethernet as it does not appear to have any out-of-box support for your standard wireless controllers.  Once you have the device info you can connect via Powershell from your dev box.  This can be done from Windows 7 or 8.1 running updated Powershell.  There are a few other steps you must complete to finish the setup.  Unfortunately the rest of the development requires Visual Studio 2015. 

One thing to note about Windows IoT, it comes with remote debugging enabled.  So I would recommend not tossing this on the public internet until it is production ready.  Visual Studio 2015 does have some IoT management features, hopefully that will allow you to enable/disable remote debugging when required.  The geek in me is loving all this, but the security guy wants to start drinking heavily.  The world is becoming more and more connected each day.  Some of these technologies are improving our lives in various ways.  We have more energy efficient homes, doctors can perform maintenance on healthcare devices without surgery, parents can keep track of their children, and brew masters can monitor their brewing processes without spending long hours at the brewery.  But with every newly connected device there is a new possible risk for exploitation.  Nothing is unhackable.  If a vendor tells you this, they are lying.  So if it can be turned on or off, it can probably be hacked.  But without hacking we would probably not have our most successful breakthroughs in science and technology.  Just like the discovery of nuclear power, it is both a great energy resource and extremely destructive force if put in the wrong hands.  

So, don't be afraid of the Internet of Things, go out there, make something!  Who knows maybe that something will be used in future space explorations or help an amputee walk again!