We love a bit of reverse engineering here at Hackaday, figuring out how a device works from the way it communicates with the world. This project from [Jim Yang] is a great example of this: he reverse-engineered the Samsung Gear VR controller that accompanies the Gear VR add-on for their phones. By digging into the APK that links the device to the phone, he was able to figure out the details of the Bluetooth connection that the app uses to connect to the device. Specifically, he was able to find the commands that were used to get the device to send data, and was able to read this data to determine the state of the device. He was then able to use this to create his own web app to use this data.
This fits in with his intention: to be able to use the Gear VR controller without the Samsung app. He did this using Web Bluetooth, which allows a web app to discover and connect to Bluetooth devices without requiring a native app. It’s a pretty new standard, so Google Chrome is the only browser that supports it at the moment. His example uses this standard to read and display the orientation of a Gear VR Controller on a web page, and he has published the code that makes this possible.
If you are looking for a cheap way to add a motion controller to a project, this would be a great place to start: you can pick up one of the Gear VR Controllers on Amazon for less than $17, and the code allows you to read button presses, touches on the touchpad and the orientation of the controller itself. That’s a lot easier than building your own controller.