Wednesday, November 26, 2014

Windows IoT on Galileo – Connecting Adafruit 10DOF IMU Breakout


This blog explain you on how to connect the Adafruit 10DOF IMU (A combo board provides 3-axis gyro, 3-axis compass, barometric pressure and temperature sensors) to Galileo Gen 1 board using Windows IoT. I bought this sensor board for some other purpose but I found it is also Arduino compatible, so I tried with Galileo and succeeded.

Components
  • ·         Intel Galileo Gen1
  • ·         Visual studio 2013 with Windows IoT SDK (Visit: windowsondevices.com for more details) and Galileo C++ SDK NuGet Package is required.
  
Interfacing
10DOF IMU board is connect to Galileo through I2C interface. It needs 5V power and SDA and SCL is also 5V pins. See the below block diagram for the connectivity.

Figure 1) Galileo gen 1 with Adafruit 10 DOF IMU wiring


Figure b) Galileo Gen 1 with 10 DOF IMU module

How to make it work
Since this module has the combination of sensors, you can find the each sensor source code separately from the Adafruit’s github. Here is the links,
https://github.com/adafruit/Adafruit_Sensor (only Adafruit_Sensor.h is required)

Building
I created a “Galileo Wiring App” application and included the required .cpp and .h files, which I downloaded from the above listed Adafruit github. I did few modification to resolve some compilation errors and just mapped the code from tester.pde file to main.cpp of my application since it is following the same ArdunioSketch.
This application read the data from sensors and print it on serial port. I used the debug UART for printing messages. Since it is mapped for kernel debugger you have to do some changes in bcd file as mentioned in the topic Allow UART to be used for HardwareSerial (This will change it from kernel debugger use)”  to use it as a serial port in OS. This port is COM2, HardwareSerial Serial1 Object is mapped to COM2. I changed the source code to use this port.

I also noticed that the carriage return (\r) is missed in the println() and caused the printed messages unaligned. So I just added the ‘\r’ on the below code in the path “\packages\Microsoft.IoT.Galileo.Arduino.1.0.6\build\native\include\print.h”. Of course it is part of the “Galileo C++ SDK” package.



Testing
Set the serial port terminal application (I am using Tera Term) for the baud rate 115200, 8bit, Parity N, Stop bit 1 and Flow control as N. Run the application from Visual studio through remote debugger. Here is the output on Tera Term.

Figure 3) Application sending sensors data to serial port continuously


Source code
You can find the source code of this application from the below codeplex link.
I am a WinCE guy and Of course this my first experience with Galileo/Ardunio wiring application development and it took less than an hour for this work. It is really a cool stuff. Enjoy  !!!.




Tuesday, September 2, 2014

Windows Embedded Compact – Accessing Microsoft Azure Storage services

Microsoft Azure storage services contains queues, tables and blob storage. This table is a non SQL tables which store data in a simple manner and it has its unique advantage than the Azure SQL Database in cost aspect.
There is no standard library so far to access Azure storage services in Windows Embedded compact. Accessing storage services requires HTTP REST API implementation, e-con systems has developed a .Net CF based framework to access Azure storage services from Windows Embedded Compact.
Please see the below link to proceed further.
http://www.e-consystems.com/blog/windowsce/?p=1202

Thursday, August 7, 2014

Windows IoT on Galileo – The Beginning


As many of you know Microsoft is focusing on Internet of Things (IoT) and it has started developing an IoT version of Windows OS. It was announced in the Build 2014 conference. As a first step, Microsoft open a Web site and encourage developers (Professionals, Students and Hobbyist) to register here in order to receive a worthy Intel Galileo development kit with Windows IoT on it. You can see more information about Windows Developer Program for IoT in the below link.
http://dev.windows.com/en-us/featured/Windows-Developer-Program-for-IoT

As a Microsoft MVP, I am privileged to receive the earlier shipment of Galileo kit. Thanks to Windows Embedded (IoT) team. Many of the registered developers will receive this package soon.

Windows IoT on Galileo
Windows IoT is booting from 16 GB Micro SDCard(Only 1GB is used for the OS), A Stripped off version of Windows 8.1 is running on the device. Since it is an Headless device, Ethernet is enabled and a PC tool named Galieo Watcher,Telnet service and Network file sharing enable us to interact with Galileo. To know more about this, Go through the below link,
http://ms-iot.github.io/content/SetupGalileo.htm
 

Now the setup is ready. I log in to the device through telnet and got the command prompt. I eagerly tried the first command to know the version of the OS and found it is the same Windows 8.1 running on my PC.


It raised my eagerness and kindle me to dig on the available things on it. Next I have installed the Windows IOT SDK from connect to start creating the first Windows IoT application on Visual Studio 2013. It is win32 based and support Arduinio wiring APIs. A simple LED blinking application is given as a hello world application. Of course, the kernel is not a Real time kernel like Windows CE, the delays given in the LED blinking are not perfect in timings. I build and run the application with Windows Remote debugger option on Visual studio 2013 and it will ask access details to run the application on the device. Alternatively I tried to run a Win32 application build for PC rather than using Windows IoT SDK. I tried Manual deployment by simple copying the application to device and run it. Yes, I got the hello world message. Deploying from Visual Studio 2013 using remote debugger is succeeded with the following changes.

Changes made to deploy Win32 application using remote debugger
  • Change the local windows debugger to remote windows debugger in order to connect with Galileo
  • Build the application and press F5 to start the debugger. You will get the error message as shown in the below picture.

  • Go to Project -> Properties -> Configuration Properties-> debugging and set/modify the red marked items in the image

  • Go to Build -> Configuration Manager and select deploy option as shown below

  • Now press F5 to launch your application to Galileo, it will ask you access details to proceed further.

     
USB Mass storage support
I plugged in the USB pen drive to the device as shown in the above Galileo setup image, Surprisingly, i noticed that USB Mass storage driver support is included which provide additional storage support for this board. See the below image. 



You can also access through the Network sharing as shown below




 

Configuring Ethernet adapter
Next step is to configure Ethernet adapter to connect with world. You can use the command netsh from the telnet prompt to set Static IP Address and DNS server.
  • Type netsh and in the prompt netsh> type interface ipv4 as shown below

  • Type show interfaces to list out the adapters



  • Set the IP Address, subnet mask followed by gateway

  • Set the DNS server IP Address



  • Check with IPconfig /All command



  • Now Ping to Bing.com



The kick start went well, I am trying to do something interesting with the existing setup and soon you can expect some blogs on it.

Wednesday, July 16, 2014

UVC Camera support on Windows embedded Compact 2013

e-con systems has an extensive hands-on experience in custom camera/USB (UVC) camera design and development. On the other hand, e-con has the similar expertise in design and development of Computer on modules with Windows Embedded Compact.
- See more at: http://www.e-consystems.com/blog/windowsce/?p=1182

Monday, July 7, 2014

Bluetooth Support for WEC2013 custom shell

Few months back we at e-con systems released a .NetCF 3.9 based custom shell named eShell for Windows Embedded Compact 2013 specifically to support our DM3730 based System On Module(SOM) and its rapid development kit. Later eSshell shall  be extended to upcoming SOMs and its rapid development kit. we are continuously working on adding features to this shell to facilitate our customers. On that account, we developed a .NetCF 3.9 based Bluetooth framework and this is demonstrated through this shell. This framework support SPP, OBEX, HID and PAN profiles.
See More to click the below link.
http://www.e-consystems.com/blog/windowsce/?p=1174


Monday, April 21, 2014

Windows Embedded Compact 2013 – Removed Catalog items



Microsoft has listed the catalog changes for Windows Embedded compact 2013 from compact 7 in the following MSDN link,
But still few more components are removed and not listed in the above link and the document has to be updated.See the below link....