Support for physical USB HID joystick input to control OpenSim flight model.
Hardware (reference build):
3D printed gimbal with real bearing joints
2x AMS AS5600 magnetic encoders (12-bit, I2C) — one per axis
Diametral magnets on gimbal pivot axes
ESP32-S3 (native USB) as HID controller
Presents as standard USB Joystick — no drivers needed
Software:
OpenSim reads X/Y axes from Gamepad API (navigator.getGamepads())
Map pitch/roll to flight model inputs
Deadzone and sensitivity config optional
Why Gamepad API:
Browser-native, no plugins, works on Chrome/Edge. ESP32-S3 HID is plug-and-play.
Context:
Part of a physical PPL(A) training cockpit — 6 instruments + flightstick + OpenSim = desk simulator.
Support for physical USB HID joystick input to control OpenSim flight model.
Hardware (reference build):
3D printed gimbal with real bearing joints
2x AMS AS5600 magnetic encoders (12-bit, I2C) — one per axis
Diametral magnets on gimbal pivot axes
ESP32-S3 (native USB) as HID controller
Presents as standard USB Joystick — no drivers needed
Software:
OpenSim reads X/Y axes from Gamepad API (navigator.getGamepads())
Map pitch/roll to flight model inputs
Deadzone and sensitivity config optional
Why Gamepad API:
Browser-native, no plugins, works on Chrome/Edge. ESP32-S3 HID is plug-and-play.
Context:
Part of a physical PPL(A) training cockpit — 6 instruments + flightstick + OpenSim = desk simulator.