Skip to the content
PCBKitNew board
2 layers29.5 × 24.3 mmEidon tracker, the printed circuit board in 3D

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

1

README

README.md

Eidon 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.

Eidon Tracker - Closed

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)

Eidon Tracker - Open

Required Components

ComponentQuantityDescriptionPurchase Link
Seeed XIAO nRF52840 Sense1Main microcontroller with built-in BLEAmazon
BNO085 IMU Breakout19-DOF Absolute Orientation SensorAmazon
LiPo Battery (3.7V)1250mAh recommendedAmazon
Toggle Switches (6mm)2For power and position configAmazon
30 AWG Wires4x ~5cmFemale-to-female, ~20cmAmazon

3D Printing Materials

MaterialQuantityDescription
PLA Filament~50gFor enclosure parts
Support MaterialAs neededIf 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 PinXIAO PinFunction
VIN3V3Power (3.3V)
GNDGNDGround
SDAD9IMU I2C Data
SCLD10IMU I2C Clock
INTD8IMU Interrupt (optional)

Switch Connections

SwitchOutput PinInput PinFunction
Left/RightD5D6Horizontal orientation
Upper/LowerD0D1Vertical orientation

3D Printing

Print the following files from the cad/ directory:

  1. eidon-tracker-base.stl - Main enclosure base
  2. eidon-tracker-top.stl - Enclosure lid
  3. eidon-tracker-mount.stl - Optional mounting bracket

Print Settings:

  • Layer Height: 0.2mm
  • Infill: 20%
  • Support: Yes (for overhangs)
  • Material: PLA

Software Setup

PlatformIO Installation

  1. Install Visual Studio Code
  2. Install the PlatformIO IDE extension

Building and Uploading Firmware

  1. Clone this repository:

    bash
    git clone https://github.com/yourusername/eidon-tracker.git
    cd eidon-tracker
  2. Open the project in VSCode with PlatformIO

  3. Connect your XIAO nRF52840 Sense via USB

  4. 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:

  1. Navigate to the web/ directory in your file explorer
  2. Double-click index.html to open it in your default browser
  3. Or right-click and "Open with" your preferred browser (Chrome/Edge recommended for Web Bluetooth support)
  4. 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
    • w component (bytes 0-1): Scalar part of quaternion
    • x component (bytes 2-3): X-axis rotation
    • y component (bytes 4-5): Y-axis rotation
    • z component (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

  1. Power on the device - LED will indicate status
  2. Pair via Bluetooth - Device appears as "Eidon Tracker XXXX"
  3. Calibrate IMU - Wave device in figure-8 pattern until calibrated
  4. Open web application of choice
  5. Connect to device in web browser

Calibration Process

The BNO085 sensor requires calibration for optimal performance:

  1. Gyroscope: Keep device stationary for 2-3 seconds
  2. Accelerometer: Slowly rotate through all orientations
  3. Magnetometer: Move device in figure-8 pattern away from magnetic interference
  4. Monitor calibration status in web application or serial output

LED Status Indicators

LED StateMeaning
Solid BlueConnected and ready
Blinking BlueAdvertising/pairing mode
RedLow battery or error
GreenCharging

Development

Project Structure

text
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 file

Firmware 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

  1. Create new HTML file in web/ directory
  2. Include script.js for Bluetooth connectivity
  3. Implement HID report parsing for quaternion data
  4. 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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. 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
QtyValueFootprintReferences
3100nFCapacitor_SMD:C_0603_1608MetricC3, C4, C5
310kΩResistor_SMD:R_0805_2012MetricR5, R6, R7
22.2kΩResistor_SMD:R_0805_2012MetricR3, R4
2220kΩResistor_SMD:R_0805_2012MetricR1, R2
222pFCapacitor_SMD:C_0603_1608MetricC1, C2
2LOGOLOGOG1, G1
132.768KHzCrystal:Crystal_SMD_3215-2Pin_3.2x1.5mmX1
1BNO085eidon-tracker:BNO085U2
1BatteryConnector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal_InversedBT1
1SW_SPDTButton_Switch_THT:SW_Slide_SPDT_Angled_CK_OS102011MA1QSW1
1XIAO-ESP32-C6eidon-tracker:XIAO-ESP32C6-SMDU1

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 mmEidon tracker, the printed circuit board in 3D

    Eidon tracker

    Eidon-AI/eidon-tracker

    Wearable battery powered IMU to Bluetooth module.

    11 parts20

Similar boards

  • 4 layers46.1 × 45.6 mmAvionics mainboard, the printed circuit board in 3D

    Avionics mainboard

    AFS-pt/PROMETHEUS-1

    Documentation lives here: https://afs-pt.github.io/PROMETHEUS-1

    202 parts15
  • 6 layers100 × 62 mmExpansion board v4, the printed circuit board in 3D

    Expansion board v4

    naizhao/Pilot-Kit-Box-ESP32-P4

    Pilot Kit Box (ESP32-P4 Edition)

    235 parts11MIT
  • 8 layers99.4 × 60 mmIO SDR 1.1, the printed circuit board in 3D

    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 mmLayer3, the printed circuit board in 3D

    Layer3

    8076ducc/robocup-2025

    ducc.'s RCJ Soccer 2025 Team Repository

    59 parts4
  • 2 layers115.8 × 160.2 mmKicad RCJ, the printed circuit board in 3D

    Kicad RCJ

    edrobotics/rescue_maze_2024

    Code for Robocup Junior Rescue Maze 2024

    84 parts4GPL-3.0
  • 2 layers25 × 22.6 mmUSlime, the printed circuit board in 3D

    USlime

    ReSummit/uSlime

    Micro form of SlimeVR trackers using BNO085

    48 parts4GPL-3.0
  • 6 layers80 × 80 mmV2ultimateflightcomp, the printed circuit board in 3D

    V2ultimateflightcomp

    codinga593/IRIS

    A next generation model rocket focused on a precise propulsive landing on a tower.

    144 parts3
  • 6 layers91.5 × 91.5 mmIO SDR 1.1, the printed circuit board in 3D

    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