Developing compatibility across multiple platforms. If you randomly stumbled upon this, most likely you will like to discover how it all started: . How I hacked Google Daydream controller (Part I) In the last weeks I continued to develop my hack, on a mission to liberate the from its chains. My goal was now to extend its compatibility from to . Google Daydream controller iOS other platforms Firstly, it was essential for me to inherit as much stuff as possible from the of my work. Hence, I kept on using as the main programming language to move forward quickly. Having in mind, I came across ( ) an amazing module that facilitates the implementation of ( ) peripherals. Bluetooth LE previous chapter JavaScript JS noble github.com/sandeepmistry/noble Node.js BLE Bluetooth Low Energy Next, I set up a fresh ( ) machine, opened a and ran as the installation that I wrote for the occasion: Ubuntu 14.04 LTS Long Time Support shell sudo script #!/bin/shapt-get update # To get the latest package listscurl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -apt-get install -y nodejs # Cleaningsapt-get cleanapt-get autocleanapt-get autoremove The code above installs everything you need to get you started. However, keep in mind that to work with devices you also need a (as below) in case your machine does not run it natively. BLE Bluetooth LE 4.x USB Dongle Bluetooth LE 4.x USB Dongle Then I started creating a new script and installing the library through ( ): Node.js noble npm node package manager npm install noble --save Once finished, I managed to edit the script adding the main reference to : noble var noble = require('noble'); so I started to implement the required code to make talk with . Google Daydream controller Node.js The diagram represented below make clear the whole flow I followed to achieve reading via : Daydream controller data Bluetooth LE This is how it looks like when converted in executable code: : don’t forget to run the script as , on some systems the hardware interfaces aren’t accessible to users. NOTE Node.js sudo not-sudoer I reused the based sandbox inherited from my . In this way, I was able to shape the packets on the quite easily. A-Frame previous hack Google Daydream controller Ubuntu Desktop (Google Daydream Controller Desktop Driver Stack) As soon as I started to receive the data, I filtered and exposed it on-the-fly through a local http server: imagine how powerful it can be to manipulate things with architecture. Google Daydream Controller Hacked (Running on Linux | Ubuntu 14.04 LTS) As you may have noticed, the prospects of this interaction are countless. Thanks to the cross-platform nature of and its versatility, soon we will be able to run on any kind of device. Node.js Google Daydream controller Stay tuned. Did you miss the beginning? Check this out: Or… Maybe you are interested in watching running at the same time: How I hacked Google Daydream controller (Part I) . two Google Daydream controllers How I hacked Google Daydream controller (Part III) .