Eidon tracker
Wearable battery powered IMU to Bluetooth module.
- Size
- 29.5 × 24.3 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 11
- Nets
- 18
- Pads
- 58
- Tracks, vias
- 116, 15
- 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 11 parts on 18 nets, routed with 116 tracks and 15 vias.
Its parts include 3 resistors, 2 ICs, 2 switches and 1 diode. It belongs with the radio and wireless and sensors and measurement boards and the ESP32 and RISC-V boards of this library.
README
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
11| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 220k | Resistor_SMD:R_0805_2012Metric | R1, R2 |
| 2 | LOGO | LOGO | G1, G1 |
| 1 | 1k | Resistor_SMD:R_0805_2012Metric | R3 |
| 1 | Battery | Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal | BT1 |
| 1 | GY-BNO085 | eidon-tracker:GY-BNO085 | U2 |
| 1 | LED | LED_SMD:LED_0805_2012Metric | D1 |
| 1 | SW_Push | Button_Switch_SMD:SW_Push_SPST_NO_Alps_SKRK | SW2 |
| 1 | SW_SPDT | eidon-tracker:SW_Slide_SPDT_Angled_CK_OS102011MA1Q | SW1 |
| 1 | XIAO-ESP32-C6 | eidon-tracker:XIAO-ESP32-C6 | 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?
11 parts. 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-v3/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
- 2 layers60 × 30 mm

Controller
google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards
11 parts3kApache-2.0 - 2 layers103 × 30.5 mm

- 2 layers26 × 30 mm

Expansion Card
FrameworkComputer/ExpansionCards
Reference designs and documentation to create Expansion Cards for the Framework Laptop
11 parts1.1kCC-BY-4.0 - 2 layers53.9 × 23.2 mm

Buffer
hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI
11 parts1kGPL-3.0 - 2 layers10 × 20 mm

2 connector Sensor Board
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
11 parts915 - 2 layers

- 2 layers47 × 33 mm

Sevensegment led display module
tardate/LittleArduinoProjects
a collection of "Little Electronic & Arduino Projects", most involving electronics or an Arduino in one way or another!
11 parts803MIT - 2 layers42.5 × 36.8 mm

Devboard
basilfx/TRADFRI-Hacking
Hacking IKEA TRÅDFRI products, such as light bulbs, window blinds and other accessories.
11 parts743CC-BY-4.0