Microsoft Introduces Arduino Wiring On Windows 10 IoT Core

Microsoft introduces Arduino Wiring as a part of their latest addition to IoT Core. Now, developers will also be able to use the programming language of their choice, which includes C#, C++, Visual Basic, JavaScript, Python and Node.js.
Microsoft in its official blog states,
“Arduino is one of the most popular platforms among makers. Its community has produced a large number of libraries to interface with peripherals such as LED displays, sensors, RFID readers and breakout boards. One of the main drivers for Arduino’s adoption is its simplicity. With Windows 10 IoT Core, you can now create or port Arduino Wiring sketches that will run on supported IoT Core devices, including Raspberry Pi 2, 3 and Minnowboard Max.”
Image Source:
Step provided by Microsoft in its official blog in order to create Arduino wiring sketches in the Arduino Wiring Project Guide. They are-
  • Setup your device with Windows 10 IoT Core.
  • Setup your PC with Windows 10 and Visual Studio 2015.
  • Download and install Windows 10 IoT Core Templates Extension.
  • Start Visual Studio and create a new Arduino Wiring project. The project template can be found under Templates | Visual C++ | Windows | Windows.
  • On project creation, a sketch file with the same name and the extension ‘.ino’ will be created and opened by default. The sketch includes a template for Arduino Wiring, using a classic hello world LED blinking code.
  • Before deploying, make sure to change the driver on the target device to DMAP.
  • Finally, select your remote machine and press F5 to build and deploy your app to your device.
 Ways in which Arduino Wiring sketch runs on an IoT Core device
The Arduino Wiring sketch runs as a background Application on an IoT Core device. This is quite similar to running a sketch on an Arduino device such as the Arduino Uno for example. However, you will still be able to debug the sketch and in the similar manner as you would in any other app under Visual Studio, just by inserting the breakpoints and/or stepping through the code. Additionally, in order to enable verbose output logging, Serial.print() and Serial.println() have also been updated, so as to send their output to Visual Studio’s debug pane, when the sketch is running under the debugger. The Log() function can also be used to output debug too. For more details, check Arduino Wiring Porting guide.
Microsoft in its official blog states,
“To use an existing Arduino library, you simply need to copy and add the header (.h) and source file (.cpp) for the library to your project, then reference the header file. Again, most libraries should work with no or very few modifications. However, if you face any issues, please check the Arduino Wiring Porting Guide.”
The Arduino sketch's runtime behavior on IoT Core devices is quite similar to the other Arduino devices, with all the function implemented to work in the similar manner, while interacting with different controllers. However, Arduino Wiring sketches are also Windows UWP apps and hence, it can easily be extended to call any UWP APIs, like networking, storage, Bluetooth, media, security and others. For example, you can now go on to communicate with Bluetooth devices, connect to Wi-Fi network or create OneNote app, using Arduino Wiring.
You can also wrap your sketch inside a WinRT library and use it in any UWP app, including UI apps. For more details on Building Arduino Wiring Libraries, check here.