Phys-Index-EyetrackVR-HW
Custom solution for a clean, unobtrusive, EyeTrackVR installation in the Valve Index.
Project includes:
- Custom, highly iterated camera and LED mounts based on bitbyt3r's design that may be preferable to any builder. Supports most OV2640 cameras with an 8mm square, 2mm tall base.
- All-in-one dongle that carries a USB hub, 2x XIAO ESP32s, the ETVR v4 PCB, and an extra USB port.
Everything fits entirely within the envelope of the Valve Index. No modifications to the Valve Index headset are required whatsoever; just some clever cable routing.
Build It!
Camera and LED mounts
An evolution of bitbyt3r's index-eyetrackvr mounts for the Valve Index found here: https://github.com/bitbyt3r/index-eyetrackvr
Changes:
- Lowered all leds 0.5mm further from face.
- Thickened up thin points near LEDs so they are FDM-printable in a single fill-line.
- Chamfers and fillets for strength and comfort.
- Tweaked the fit on the LED posts to prevent binding on solderless kits.
- Moved the camera up to the side of the eye.
- Moved the all the LEDs to a more optimal position to prevent specular reflections, shadows, and silhouetting.
Tips:
- Print in black PETG
- Mirror the provided file for the opposite eye
- If you need to extend the wires a bit, stagger your cuts to prevent the joints from ever touching.
Gum Stick USB Hub Dongle
Built around a specific ultra-slim 3-port USB hub. Fits two XIAO ESP32-S3s and a ETVR v4 PCB, as well as a spare USB port.
You need this specific USB hub (various brands)
Found on the likes of Amazon and Aliexpress. Its easy to modify for our purpose.
Common Titles:
- "USB Hub 3.0 Extender 3-Port, sartyee Computer Networking Hubs for MacBook, Mac Pro, iMac, Ps4/5, Surface Pro,Flash Drive, Keyboard, Mouse, Windows"
- "3 Ports Multiple Expander with 1 USB3.0 and 2 USB2.0 Ports Type-C3.0/USB3.0 To 3USB HUB Ultra Slim Splitter 480Mbps-5.0Gbps"
- "3 Port USB 3.0 USB Hub 2.0 Multi Type-C Ultra Slim Splitter Hub Use Power Adapter Multiple Expander 2.0 USB 3.0 Hub for PC"
Links:
- Amazon: https://www.amazon.com/gp/product/B0BQ68QGYJ/
- Aliexpress (choose the normal USB version): https://www.aliexpress.us/item/3256805344126437.html
Note/Avoid:
- Avoid similar looking USB hubs with an LED indicator present between the two side-mounted ports. These likely won't fit since the PCB design on these seems to be flipped. If you do come across one such USB hub, consider using the (currently untested) no-spacer alternitive which gives you about 1mm of room to route soldered wires under the hub's PCB. Gum Stick Dongle Custom USB Hub Case/No-Spacer alternate - XIAO-ESP32S3 ETVR v4 gum stick index mount v24.stl
You want these other parts too
- 2x XIAO ESP32-S3 Sense Modules - https://www.seeedstudio.com/XIAO-ESP32S3-Sense-p-5639.html
- 1x Solder-less V4 kit - https://store.eyetrackvr.dev/products/v4-mini-fully-solderless-kit
- Misc 28-32AWG wire for lengthening LED power wires
- 7x M2x5mm Countersink Self-tapping screws
- 2x OV2640 160 degrees night version camera module 200MM (select 200MM night vision) - https://www.aliexpress.us/item/3256803720134565.html
Additional hardware options with more links available in the EyeTrackVR docs: https://docs.eyetrackvr.dev/how_to_build/parts_list
Assemble it!
Follow the EyetrackVR docs for primary assembly and programming: https://docs.eyetrackvr.dev/how_to_build/full_build
Steps specific to the dongle are as follows.
- Print all 3 parts in PETG
- Refer or use the "PRINT ME" file for suggested orientations.
- ENABLE SUPPORT MATERIAL on build plate only.
Mod the hub
- Take the aforementioned USB hub apart (it slides out when you plug something in the end with a little force) and de-solder all the connectors. Save at least one of the small USB 2.0 ones.
- I suggest using a hot air tool if possible. Adding your own flux and leaded solder will make desoldering easier too regardless.
Place
- Insert your dismantled USB hub into the dongle along with the spare USB port. Make sure you removed all the support material in that cavity.
- Verify that your XIAO ESPs and ETVR v4 PCB fit in their slots. It may be tight, but if not, use adhesives. Careful not to crush the ESP's buttons or riser connector!
Solder
- Solder your VUSB, GND, D+ and D- wires to your ESPs now.
- Use the square ground pad on the bottom of the XIAO ESP for ground (not the GND pin on the edge of the board).
- Observe the Connector orientation of the original USB hub and refrence it to a pin-out diagram of the USB A port.
- Solder 2 wires to the bottom side of the ETVR v4 PCB for power. (and led wires for solder-kit)
- Route them like so and solder in place. A small hole will let you route the ETVR v4 PCB wires into the main cavity.
LEDs!
-
You will follow the instructions in the ETVR docs and lengthen a couple of the wires with 36-32awg wire.
-
The long main feed wires get extended to about 200-250mm, while two of the shorter wires get extended to about 80mm.
-
Tip: Stagger your cuts when lengthening your wires so the soldered ends can never touch.
-
Once you verify everyhting is working 100%, it might be a good idea to remove the unused connectors on the E/End LEDs. You can do this with a pair of snips and a soldering iron with fresh solder.
(early version of the modified mounts)
(latest version close up, installed )
Cable Routing
- Your 200mm camera ribbons can be pushed up the "nose" of the headset and around the top of the PCB.
- They may seem to interfere with IPD adjustment, but try folding them so they take a twist as they travel behind the PCB and between the screens. Keep in mind you may loose a couple millimeters of IPD due to the LED placement when using solder-less kit.
- Then they can be massaged through the vent holes in the frunk along with the extended LED power wires.
- It might help to gently fold your ribbon cable like so to get it to fit in the frunk vent holes. Note that some vent slots are blocked when assembled.
- Pinch point! Watch here when the face pad is mounted. It's possible the ribbon cable can get trapped under this lip when adjusting screen-face distance. A small bend in the wire will teach it to stay away.
- I also found that folding the camera ribbons like so can help teach them where to go.
Finalizing
- Plug everything in and secure the optional covers with M2x5mm Countersink Self-tapping screws.
- Use a Command Strip or piece of foam to ensure dongle does not come out during extreme VR stunts.
Camera mount for Babble Face Tracking (uses same ESPs and Cameras)
- This part is in development, but working nicely from the start. You'll have to observe the pictures below to duplicate the build for your specific hardware.
In (experimental) summary:
- Use the same XIAO ESPs, with the same OpenIris firmware as the eye trackers.
- Use the same 200mm long OV2640 160 degrees night version IR camera module.
- Use two 3mm IR LEDs wired in series with a 220R resister on the 5v VBUS rail (use the 3V3 rail or a larger resistor for more efficient LEDs). I sanded the lenses down on my leds for a wider, softer spread as well.
- 3D print the print file in the Babble Face Tracker Cam-LED Mount folder with support material enabled. (EXTENDED version also available, print both to see what works for you)
- Stick camera mount base and cable clip to your Valve Index with double-sided VHB tape as shown.
- Use a 25mm countersink M3 screw with lock nut for the hinge.
- XIAO ESP can be placed at the end of the Gum Stick with more VBH tape.