Azimuth is a DIY head tracker for flight sims, racing, and anything that works with OpenTrack. It pairs a small ESP32 board with a BNO08x-class IMU so you get stable orientation without a closed commercial device. This repo has firmware, PCB designs, 3D plans, and documentation—build it, change it, or fix it yourself.
Two supported builds—same core tracker firmware where both apply; use the row that matches what you assembled.
| Path | What it is | Status |
|---|---|---|
| DIY (XIAO + BNO08x) | Seeed XIAO ESP32-C3 + BNO08x breakout on SPI — breadboard or hand-wired. Default azimuth_main_diy; the web flasher ships this build. |
Ready — tracking, Wi‑Fi, portal, USB Hatire, OpenTrack UDP. |
| Integrated PCB | kicad/Azimuth_Design: ESP32-C3 module, BNO086, RGB, buzzer, button. azimuth_main_pcb. |
In development — same app; board polish, DRC/ERC, panelization (roadmap). |
docs/wiring.md (pinouts) · docs/hardware-profiles.md (PlatformIO / GPIO) · docs/parts-list.md (sourcing — DIY store links + PCB BOM)
| Install or update firmware (USB) | Azimuth web flasher — use Chrome or Edge and a data USB cable. |
| Settings (Wi‑Fi, OpenTrack, device) | http://azimuth.local:8080 — only after the board is on your home network. First time? Connect to Azimuth-Setup and follow the quick start. |
| Step-by-step: Wi‑Fi → OpenTrack | docs/quickstart.md |
- OpenTrack-first — Send motion over Wi‑Fi (UDP) or USB (Hatire); configure most things in the on-device web UI.
- Affordable, open stack — Sensible parts list, KiCad project, and firmware you can build with PlatformIO.
- No cloud — No account or hosted service; setup and tracking stay on your network.
- Successor to Nano33_PC_Head_Tracker: same DIY spirit, but rebuilt around ESP32 and an external fusion IMU for better results than the old Nano 33 BLE + LSM9DS1 path.
- Flashing — Browser install needs Chrome or Edge (Web Serial). If the installer offers erase flash, use it for a clean device (same effect as a full settings reset).
- First Wi‑Fi setup — Join Azimuth-Setup, open
http://192.168.4.1, save your home network. Details: quick start. - OpenTrack — Use either UDP or Hatire as the input, not both at once. Defaults and axis mapping: Using Azimuth.
- Board feels warm — Normal when Wi‑Fi is active on a small module. More context: Using Azimuth → Power & heat.
| Doc | Audience |
|---|---|
| Quick start | Fast path from flash to tracking over Wi‑Fi |
| Using Azimuth | Settings portal, OpenTrack (USB + Wi‑Fi), tips & troubleshooting |
| Development | Building firmware, CI, versioning, repo layout |
| Wiring · Hardware profiles · Parts / BOM · KiCad | Pinouts (DIY + PCB), PlatformIO, BOM, KiCad |
| Roadmap | Progress, milestones, future work |
- Performance — Low latency and stable orientation for games and desktop use.
- Accessibility — Easy-to-source parts and open tooling so people can build and modify their own trackers.
- Interop — First-class support for the same OpenTrack pipelines games and sims already use.
- Evolvability — Room for better calibration, on-device UX, and companion apps without legacy platform limits.
| Area | Progress | Notes |
|---|---|---|
| Hardware / BOM | 100% | Parts list |
Azimuth custom PCB (Azimuth_Design) |
~95% | RGB LED, buzzer, button — see wiring; production panel still to finalize |
| Firmware | 60–70% | Tracking + Wi‑Fi + settings portal + USB Hatire + release flow; board I/O, battery, and polish on roadmap |
| 3D enclosure | 0% | Not started |
Hardware/BOM [████████████████████] 100%
PCB [███████████████████░] ~95%
Firmware [█████████████░░░░░░░] 60–70%
Enclosure [░░░░░░░░░░░░░░░░░░░░] 0%
Detailed roadmap: docs/roadmap.md



