Eidon tracker
Wearable battery powered IMU to Bluetooth module.
- Size
- 29.5 × 24.3 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 19
- Nets
- 40
- Pads
- 85
- Tracks, vias
- 191, 28
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 14 Apr 2025
- Updated
- 10 Mar 2026
Overview
Eidon tracker is an open-source printed circuit board by Eidon-AI, from the Eidon-AI/eidon-tracker repository on GitHub. It is a 2-layer board of 29.5 × 24.3 mm with 19 parts on 40 nets, routed with 191 tracks and 28 vias.
It is built around the BNO085. Its parts include 7 resistors, 5 capacitors, 2 ICs, 1 switch and 1 crystal. It belongs with the radio and wireless and sensors and measurement boards and the ESP32 and RISC-V boards of this library.
Main components
1README
README.mdEidon Tracker
A complete Bluetooth IMU tracking system featuring custom hardware, 3D printed enclosure, and web-based applications. The Eidon Tracker transmits real-time quaternion orientation data over Bluetooth HID, making it perfect for motion capture, gaming, and interactive applications.
Features
- High-precision IMU tracking with BNO085 9-DOF sensor
- Bluetooth HID device - appears as standard input device
- Real-time quaternion data streaming at 1000Hz
- Custom 3D printed enclosure with integrated switches
- Web-based applications for visualization and interaction
- Battery monitoring with charging status
- Device color customization via HID feature reports
Bill of Materials (BOM)
Required Components
| Component | Quantity | Description | Purchase Link |
|---|---|---|---|
| Seeed XIAO nRF52840 Sense | 1 | Main microcontroller with built-in BLE | Amazon |
| BNO085 IMU Breakout | 1 | 9-DOF Absolute Orientation Sensor | Amazon |
| LiPo Battery (3.7V) | 1 | 250mAh recommended | Amazon |
| Toggle Switches (6mm) | 2 | For power and position config | Amazon |
| 30 AWG Wires | 4x ~5cm | Female-to-female, ~20cm | Amazon |
3D Printing Materials
| Material | Quantity | Description |
|---|---|---|
| PLA Filament | ~50g | For enclosure parts |
| Support Material | As needed | If printing with overhangs |
Tools Required
- 3D Printer
- Soldering iron and solder
- Small screwdriver
- Wire strippers
Estimated Total Cost: $80-120 USD
Hardware Setup
Wiring Diagram
Connect the BNO085 to the XIAO nRF52840 Sense:
| BNO085 Pin | XIAO Pin | Function |
|---|---|---|
| VIN | 3V3 | Power (3.3V) |
| GND | GND | Ground |
| SDA | D9 | IMU I2C Data |
| SCL | D10 | IMU I2C Clock |
| INT | D8 | IMU Interrupt (optional) |
Switch Connections
| Switch | Output Pin | Input Pin | Function |
|---|---|---|---|
| Left/Right | D5 | D6 | Horizontal orientation |
| Upper/Lower | D0 | D1 | Vertical orientation |
3D Printing
Print the following files from the cad/ directory:
eidon-tracker-base.stl- Main enclosure baseeidon-tracker-top.stl- Enclosure lideidon-tracker-mount.stl- Optional mounting bracket
Print Settings:
- Layer Height: 0.2mm
- Infill: 20%
- Support: Yes (for overhangs)
- Material: PLA
Software Setup
PlatformIO Installation
- Install Visual Studio Code
- Install the PlatformIO IDE extension
Building and Uploading Firmware
-
Clone this repository:
bash git clone https://github.com/yourusername/eidon-tracker.git cd eidon-tracker -
Open the project in VSCode with PlatformIO
-
Connect your XIAO nRF52840 Sense via USB
-
Build and upload:
bash pio run --target upload
Dependencies
The following libraries are automatically managed by PlatformIO:
- Adafruit BNO08x (v1.2.3+) - IMU sensor driver
- Adafruit BluefruitLE nRF52 - Bluetooth functionality
- Arduino Framework - Core functionality
Web Applications
The web/ directory contains the main interactive application:
3D Orientation Visualizer (index.html)
- Real-time 3D visualization of tracker orientation and movement
- Multiple camera angles and viewing modes
- Bluetooth HID integration for seamless device connectivity
- Calibration status monitoring and quaternion data display
Running Web Applications
Simply open web/index.html directly in your web browser:
- Navigate to the
web/directory in your file explorer - Double-click
index.htmlto open it in your default browser - Or right-click and "Open with" your preferred browser (Chrome/Edge recommended for Web Bluetooth support)
- Connect to your Eidon Tracker via Bluetooth
HID Reports
The Eidon Tracker implements a custom HID device with multiple report types for data exchange:
Input Report (Report ID: 1)
Size: 9 bytes total
- Quaternion Data (8 bytes): Four 16-bit values representing orientation
wcomponent (bytes 0-1): Scalar part of quaternionxcomponent (bytes 2-3): X-axis rotationycomponent (bytes 4-5): Y-axis rotationzcomponent (bytes 6-7): Z-axis rotation
- Switch States (1 byte): Two button states plus padding
- Bit 0: Left/Right switch state
- Bit 1: Upper/Lower switch state
- Bits 2-7: Reserved (padding)
Output Report (Report ID: 1)
Size: 1 byte
- Vendor Command: Custom command byte for device control
- Used for device configuration and special commands
- Values defined in firmware for various operations
Feature Report (Report ID: 1)
Size: 3 bytes
- RGB Color Settings: Device LED color configuration
- Byte 0: Red component (0-255)
- Byte 1: Green component (0-255)
- Byte 2: Blue component (0-255)
- Colors are stored in device flash memory
- Allows customization of device LED color
HID Usage Pages
- Primary: Sensor Page (0x20) - Orientation Usage (0x80)
- Secondary: Button Page (0x09) - Button 1-2
- Vendor: Custom Page (0xFF00) - Vendor-specific features
Usage
Initial Setup
- Power on the device - LED will indicate status
- Pair via Bluetooth - Device appears as "Eidon Tracker XXXX"
- Calibrate IMU - Wave device in figure-8 pattern until calibrated
- Open web application of choice
- Connect to device in web browser
Calibration Process
The BNO085 sensor requires calibration for optimal performance:
- Gyroscope: Keep device stationary for 2-3 seconds
- Accelerometer: Slowly rotate through all orientations
- Magnetometer: Move device in figure-8 pattern away from magnetic interference
- Monitor calibration status in web application or serial output
LED Status Indicators
| LED State | Meaning |
|---|---|
| Solid Blue | Connected and ready |
| Blinking Blue | Advertising/pairing mode |
| Red | Low battery or error |
| Green | Charging |
Development
Project Structure
eidon-tracker/
├── firmware/ # PlatformIO firmware project
│ ├── src/main.cpp # Main firmware source
│ ├── platformio.ini # PlatformIO configuration
│ └── lib/ # Custom libraries
├── web/ # Web applications
│ ├── index.html # 3D orientation visualizer
│ └── script.js # Shared JavaScript libraries
├── cad/ # 3D printing files
│ ├── eidon-tracker.f3d # Fusion 360 source
│ ├── *.stl # STL files for printing
│ └── *.gcode # Pre-sliced files
├── images/ # Product photos
└── README.md # This fileFirmware Development
The firmware is built on the Arduino framework with PlatformIO. Key components:
- HID Report Descriptor: Custom HID device with quaternion data
- Bluetooth Stack: Adafruit Bluefruit nRF52 library
- IMU Driver: Adafruit BNO08x library
- Battery Management: Built-in XIAO charging and monitoring
Adding New Web Applications
- Create new HTML file in
web/directory - Include
script.jsfor Bluetooth connectivity - Implement HID report parsing for quaternion data
- Add visualization or interaction logic
Troubleshooting
Connection Issues
- Device not found: Ensure Bluetooth is enabled and device is in pairing mode
- Connection drops: Check battery level and distance from host device
- Web Bluetooth not supported: Use Chrome/Edge on desktop or Android
Calibration Problems
- Poor tracking accuracy: Ensure proper IMU calibration
- Drift over time: Recalibrate magnetometer away from metal objects
- Erratic behavior: Check wiring connections and power supply
Build Issues
- Platform not found: Ensure Seeed nRF52 platform is properly installed
- Library conflicts: Clean build environment with
pio run --target clean - Upload fails: Double-tap reset button to enter DFU mode
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
License
This project is open source and available under the MIT License. See LICENSE file for details.
Acknowledgments
- Seeed Studio for the excellent XIAO nRF52840 Sense board
- Adafruit for comprehensive sensor libraries and breakout boards
- PlatformIO for the excellent development environment
Parts
19| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 100nF | Capacitor_SMD:C_0603_1608Metric | C3, C4, C5 |
| 3 | 10kΩ | Resistor_SMD:R_0805_2012Metric | R5, R6, R7 |
| 2 | 2.2kΩ | Resistor_SMD:R_0805_2012Metric | R3, R4 |
| 2 | 220kΩ | Resistor_SMD:R_0805_2012Metric | R1, R2 |
| 2 | 22pF | Capacitor_SMD:C_0603_1608Metric | C1, C2 |
| 2 | LOGO | LOGO | G1, G1 |
| 1 | 32.768KHz | Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm | X1 |
| 1 | BNO085 | eidon-tracker:BNO085 | U2 |
| 1 | Battery | Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal_Inversed | BT1 |
| 1 | SW_SPDT | Button_Switch_THT:SW_Slide_SPDT_Angled_CK_OS102011MA1Q | SW1 |
| 1 | XIAO-ESP32-C6 | eidon-tracker:XIAO-ESP32C6-SMD | U1 |
Questions
How big is the Eidon tracker PCB?
It measures 29.5 × 24.3 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Eidon tracker use?
19 parts, built around the BNO085. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Eidon tracker KiCad files?
From the Eidon-AI/eidon-tracker repository on GitHub, at the commit this page was made from: the board is pcb/eidon-tracker-v4/eidon-tracker.kicad_pcb and its schematic pcb/eidon-tracker-v3/eidon-tracker.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Eidon tracker design in my own project?
Its repository states no licence, so its author keeps all rights: ask Eidon-AI before reusing the design.
More from Eidon-AI/eidon-tracker
1- 2 layers29.5 × 24.3 mm

Similar boards
- 4 layers46.1 × 45.6 mm

Avionics mainboard
AFS-pt/PROMETHEUS-1
Documentation lives here: https://afs-pt.github.io/PROMETHEUS-1
202 parts15 - 6 layers100 × 62 mm

- 8 layers99.4 × 60 mm

IO SDR 1.1
rishivg/IO-SDR
Open-Source software-defined FPGA radio hardware platform
339 parts10CERN-OHL-S-2.0 - 2 layers188.9 × 115 mm

- 2 layers115.8 × 160.2 mm

- 2 layers25 × 22.6 mm

- 6 layers80 × 80 mm

V2ultimateflightcomp
codinga593/IRIS
A next generation model rocket focused on a precise propulsive landing on a tower.
144 parts3 - 6 layers91.5 × 91.5 mm

IO SDR 1.1
SunnyYoshimitsu/Reconfigurable-Space-Compute-Cluster
Here will be the repository for an "extremely reconfigurable satellite" aimed toward at competing in NASA Minds and hopefully assist Artemis in its missions.
284 parts3