A set of 3d Printed wireless controllers for use with the HadesVR ecosystem!
To use these controllers, you will also need the updated version of the head tracker module located here: https://github.com/dmcke5/DIY_VR
Please note, the GY91 module I've used in these controllers isn't the MPU9250 that it claims to be. I don't have a better option currently so I've listed it anyway, but beware you aren't getting what you're paying for with that module! In the future, I might design a drop in replacement that will actually include a magnetometer. I will include a link to it here if I do!
- Compatible with the HadesVR Ecosystem
- USB-C Rechargeable
- Wireless
GY91 Module (Read note!) - https://www.aliexpress.com/item/1005005180963415.html
NRF24L01 Wireless Module - https://www.aliexpress.com/item/1005007199963170.html
Joysticks - https://www.aliexpress.com/item/1005008127700525.html
14500 Cells - https://www.aliexpress.com/item/1005009625177840.html
40mm Ping Pong Balls - https://www.aliexpress.com/item/1005009969506572.html
PS4 Trigger Springs - https://www.aliexpress.com/item/1005005844578554.html
3x1 Magnets - https://www.aliexpress.com/item/1005009647356868.html
Refer to PCB's/DIY VR Controller BOM for PCB Components.
The firmware I've included is a modified version of the original HadesVR controller firmware (https://github.com/HadesVR/Wand-Controller). The controllers are compatible with the original firmware, but I've included a joystick and trigger calibration routine in this version of the software to make setting up the controllers easier.
In order to flash the controller code, you will need to connect an ISP programmer to the pins on the controller PCB.
Select Arduino Mini as your board and ensure the ATMEGA328p option is used and use the "Upload using programmer" option under the sketch menu when you're ready to flash the code.
Ensure you uncomment "#define RIGHT_CONTROLLER" if you're flashing the right controller and comment out the left controller line.
Before the controllers can be used, both the IMU module and the joystick and trigger need to be calibrated.
To perform the IMU calibration, hold the Mode and B buttons whilst powering on the controller. Then, place the controller on a flat surface and don't touch it again until the light comes back on solid. This will take roughly 10 seconds.
To perform the joystick calibration, hold the grip button and A whilst powering on the controller. The light will blink 4 times to confirm you are in calibration mode. Ensure the joystick and trigger are sitting in their neutral positions, then press the B button to confirm. The light will blink again to confirm the step is complete. Now, move the joystick and trigger to their full extents multiple times and press B again to complete the step. After the lights have blinked again, push the joystick forwards and then finally right to complete the calibration process.

