Transferring data between the HoloLens and an Arduino: Part I

Given that the pavilion will be a relatively small space our group has begun discussing collaborative options with the IoT group, with the aim of (at least partially) integrating the HoloLens & IoT projects into the one space. At this stage we’re exploring the possibilities of how this might work with our current design ideas, as well as how we might communicate between an Arduino and the HoloLens.

When looking at options for this communication I came across several possibilities. The most promising were HTTP requests, WebSockets and Bluetooth LE.

HTTP Requests

An HTTP request is a request/response protocol that allows clients to receive or sent information from or to a server. This requires having some kind of back-end to handle the HTTP requests, such as Node.js. Node.js is a JavaScript runtime that enables the creation of scaleable network applications. For our purposes we want to store and retrieve the data we’re passing from the HoloLens to the Arduino. Using HTTP requests could be overkill as it would require us to create a Node.js backend and host this on a cloud platform such as Heroku or AWS. It also requires the Ardunio client to poll the server to see anything has changed, meaning that events won’t occur in real-time.

WebSockets

WebSockets are a relatively new API that allow for real-time communication between cliend and server. The key difference between WebSockets and a simple HTTP request is that WebSockets allow for the client to open up an interactive session with the server. This means that instead of polling the server the client can send messages and receive responses without the need for it to poll the server. If we want to send, receive and store data WebSockets seem like a much more useful option than using HTTP requests.

Bluetooth LE

If we decide we don’t need to store data on a server simple Bluetooth connection may allow us to bypass the complexities that come with using a web-centric method. Bluetooth Low Energy (LE) is the low-energy version of Bluetooth and was specifically developed for the IoT and there are a number of cheap Bluetooth LE shields available for the Arduino. The HoloLens comes with Bluetooth 4.1 LE on-board so communicating between the two devices should theoretically be possible.

All of these options require an additional shield or module for the Arduino, which we are yet to get our hands on. Part II will cover our findings once we start prototyping.


Show your support

Clapping shows how much you appreciated Dominic Hawton’s story.