-
Notifications
You must be signed in to change notification settings - Fork 2
Hardware
So, you want to build your own VR controllers? Let's go.
- A 3D printer (or 3D print ordering service)
- Your soldering skills
- Patience.
The trackers consist of electronics and a shell. The electronics are on a PCB, which you can either mill on a CNC (that's how I did it, so the main PCB is single-sided) or order from a bord house such as JLC (use the provided double-layer PCB). The EDA files and the BOM can be found here:
https://easyeda.com/Twometer/twometer-vr
The main chip on the board is an ESP8266-12E microcontroller, to which you can flash the code (TVR.Firmware) in this repository using a programmer. You will also need an MPU9250 accelerometer/gyroscope/magnetometer chip.
You could probably do all this on a perfboard, but I don't think you want to do that.
Twometer VR works by tracking red and blue glowing balls on top of the controllers. These can be found in the TVR.Hardware/ folder and are called sphere.stl. Print two of those in white (or order a 3D print) and two sphere_adapter.stls in black (or whatever you want). Make a PCB with red and blue LEDs respectively (not both in one, or you will get purple and it will not work), and don't forget the resistors. Glue it in each one of the holes of the sphere_adapter.stl and then glue it to the bottom of the sphere. The adapter is the cylindrical part that you will later stick into the handle. It has a cutout for the button.
The case is in two halves to make assembly easier. Print both halves (controller_handle_1.stl and controller_handle_2.stl, you can print them in one go but Fusion 360 exported two STL files) and the bottom lid. Place all electronics and the battery (NOT AN 18650! They are made of metal and will mess up your magnetometer readings!) inside the handle, put a charge controller, LED and switch inside the bottom lid, and wire according to the wiring diagram (TODO!).
Hint: Print the case with a raft or brim, or it will tip over at 95% printing progress and you have to start over. (#askMeHowIKnow). Also, you may want to print it upside down, because the upside has more flat surface to contact with the build plate.
The mounting and assembly could probably be improved, but here we go: Print a red and a blue button.stl (colors not neccesary for functionality, but makes them easier to distinguish when switched off) along with a button_spacer.stl. Make a small PCB with a centered button on it, and put it in the holes of the button_spacer.stl, then put the button.stl inside the hole in the casing, and glue the spacer on top of it.
TODO: make a video or something about this, or nobody will understand
by Twometer, released under GPL license
For makers
For developers
For everyone