How I hacked Google Daydream controller (Part III)

2,600 reads

@ matteo.pisani.91 Matteo Pisani Disassembling toys since '91

What about using two controllers at same time?

If you just randomly landed here, I suggest you to read the story behind this hack from the beginning:

How I hacked Google Daydream controller (Part I)

How I hacked Google Daydream controller (Part II)

The previous chapters will help you to have a clear understanding of what is happening here.

The “payoff” of an old Italian TV commercial said “Two is better than one” and, at Remoria VR, we believe this also applies to other contexts, especially when it comes to virtual reality. After the previous experiences I realized that if I can use one Google Daydream controller on my laptop, I could just as well use two.

Since my notebook (running Ubuntu 14.04 LTS) has a BLE adapter inside already, I just need to plug in an external Bluetooth LE 4.x USB Dongle. Next, I started to extend a little bit the architecture from my previous code basis.

I mirrored the process related to the handshake then I decoded and forwarded all the packets caught from the second controller to its own rendering output window (located in the browser), through a Node.js script.

The resulting scheme (upgraded from the previous one) looks like this:

(Google Daydream Controller Desktop Driver Stack | Dual Mode)

… And here we go, the final result was:

As you might have thought, this hack opens a vault of opportunities: the only limit is the developer’s creativity.

Did you miss the beginning? Check this out:

How I hacked Google Daydream controller (Part I) or maybe you rather go just one step back to see Google Daydream controller running on Linux for the first time:

How I hacked Google Daydream controller (Part II).

If you want to see something more serious, take a look here: How I hacked Google Daydream controller (Part IV).

Tags