Skip to content

noobee/bt-headtracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 3-DoF Bluetooth Headtracker

  • emulates a gamepad to work with opentrack.
  • strap it to your forehead with a head band :-) great for sim games - MSFS, Nuclear Option, etc
  • device must be strapped in the correct orientation, can be checked via the serial console or the "Raw tracker data" in opentrack.
  • ./docs folder has various prototype pics, schematics, opentrack setup, etc.
  • imho, this is more stable than the IR or webcam based headtrackers, especially for HMCS operation (aiming with the head). i didn't miss the postional output.
  • there will eventually be gyro drift affecting the yaw output. in practice, drift does not really affect gameplay. you should bind the "Center" function in opentrack to reset the orientation. the device also performs automatic gyro calibration during startup.
  • feedback, comments and suggestions welcomed!

features

  • esp32-s3 supermini (built-in battery charging circuit)
  • bmi160 imu (gyro and accel)
  • simple battery voltage measurement circuit, reports battery level over bluetooth.
  • emulates gamepad X (roll), Y (pitch) and Z (Yaw) axes for 3 rotational degrees of freedom. no translation (position) output.
  • simple serial console to perform basic operations (restart and status).
  • gyro calibration during startup by keeping the device still for about 10 secs. will retry until succeed.

serial console

connect via USB to perform basic operations over the serial console, type one of the following commands and press ENTER:

  • restart: restart device.
  • stat: toggle show imu, orientation, gyro bias, battery voltage and approximate level.

LED indication

  • solid white: initialization (likely too brief to notice)
  • solid/flashing red: error (probably during initialization).
  • solid blue: bluetooth connected and updating IMU.
  • solid green: gyro bias calibration, will flash red and repeat if the gyro was moved.
  • yellow: idle, waiting for bluetooth connection.

pictures

external view. box is about 40mm x 35mm x 20mm.

internal view.

front side of protoype pcb showing esp32-s3 supermini and battery switch.

back side of protoype pcb showing bmi160, voltage divider and battery wires.

schematic diagram. esp32 connected to bmi160, simple voltage divider, battery switch and battery connector.

windows bluetooth setup showing the device being detected and battery level. last 4 hex digits in the device name is the part of the mac address (ec24 in this case).

windows usb game controller setup showing the BT Headtracker gamepad controller.

opentrack setup. change the input source to "Joystick Input". set the Yaw, Pitch and Roll mapping to the appopriate joystick axis (#4, #3, #2). the Yaw output should also be reversed in the Options/Output/Axis Assignment section.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors