We couldn't afford an Oculus so we built one
Build your own VR headset for $100
My name is Maxime Coutte. I’m 16 years old and I live in a small village in the countryside where I’m the only teenager. With my best friends, Jonas Ceccon and Gabriel Combe, and my math teacher Jerome Dieudonne (we call him Sensei) we built our own VR headset for $100.
I started programming when I was 13, thanks to Sensei when he created a robotics club. On the first day we were 12 students, the next week we were 3 - yep, you guessed it, the other two were Gabriel and Jonas. I fell in love with VR because of an anime called SAO, but the problem was that the Oculus Rift was way too expensive for me. I talked about this with Gabriel and we both agreed that we should build our own VR headset. That got us into the math and physics behind VR (quaternions, proper acceleration, antiderivatives…). Then we bought the cheapest components we could and we reinvented VR. Now using FastVR and Relativ you can build your VR headset too.
Here's a schematic by TheYxxy to give you an overview of the project:
Meet the team
Gabriel: I work on optics for FastVR, 3D conception with Maxime and cheap tracking for the next big update.
Jonas: I convinced a Chinese factory to sell us premium components at low prices and I'm working on a Master Guide for Relativ.
Sensei: I'm the theoretician of the team. I teach them math and I help them to solve algorithm issues.
Open-Source it FTW
Thanks to this project I’ve had the incredible fortune to meet amazing people, including the chief architect at Oculus, Atman Binstock. He gave me a precious piece of advice: "open source it". I deleted all the code I had, and started rewriting it all from scratch, better. And I convinced my two friends and our math teacher to open source the project
PLEASE NOTE; We highly recommend that you use the STM32 tracker because it has proved to be more stable than the Due based one. The Due code has recently been reported to throw compiler errors, and the Due trackers have exhibited stability issues. Because of this, we will be phasing out support for the Arduino DUE code in the next couple of months. (NOTE added on Apr 17, 2019)
What you'll need
What components ?
There are a few variants of Relativ. The original design by the founders (deprecated) and two new version by TheYXXY and Vang1 based on a on a model from Horizon Lab. Shoutout to them for making this possible and allowing their design to be modified!
All our 3D models can be found on our Thingiverse account; https://www.thingiverse.com/Relativty/designs. We have decided to move our 3D models to Thingiverse, because of the amount of different designs, and remakes. This to keep the GitHub file zise low, and people don't have to downlaod all the 3D models with the code together. Some 3D designs require additional parts, they can be found on the Thingiverse page itself.
Parts needed for all the designs:
- STM32, $3,50 recommended
- ST-link V2 USB ~$3,00 recommended
⚠️Price may vary a lot
- GY-521 MPU-6050, $1
- 5.5 inch 25601440 2K LCD Screen with an HDMI to MIPI board, between €65 and €95 on AliExpress (recommended)
⚠️Price may vary a lot
- Face foam (10mm wide), about $4, see here
How to Install?
# Clone this repository $ git clone https://github.com/relativty/Relativ
Building the headset
Detailed instructions and parts lists can be found in the Relativ Wiki at:
Basically, copy the contents of "library" folder into your Arduino libraries folder, then copy the main STM32-Tracker folder (which contains the STM32_BlackPill and STM32_BluePill folders) into your main Arduino folder. However, all the critical information that you need to build this tracker is in the Wiki, so you really do need to read it before you start this build.
Because we had to edit some of the main library files so that they would compile on an STM32 board, we have included them in each sketch folder (so that the changes don't mess up any other sketches that use those particular libraries). However, bacause other parts of the code rely on the un-patched libraries, we have to make the original libraries available in the main arduino libraries folder as well.
These really should work straignt out of the box - however, if they don't then please raise a GitHub issue or message us on the Relativ Discord.
Start playing your favorite games!
You can now play with your headset by downloading SteamVR, and OSVR.
I would love to hear about what you’ve experienced building the headset or help if you have any questions. Ping me at firstname.lastname@example.org or @maximecoutte.