Skip to the content
PCBKitNew board
4 layers79 × 35 mmGlove v3-left, the printed circuit board in 3D

A robust 16-DOF hand/finger tracking wearable standard Bluetooth Human Interface Device (BLE HID) designed for humanoid teleoperation and collecting embodied AI training datasets.

Size
79 × 35 mm
Copper layers
4
Thickness
1.6 mm
Parts
42
Nets
30
Pads
172
Tracks, vias
144, 36
Pours
3
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
17 Mar 2025
Updated
10 Jul 2025

Overview

Glove v3-left is an open-source printed circuit board by Eidon-AI, from the Eidon-AI/eidon-glove repository on GitHub. It is a 4-layer board of 79 × 35 mm with 42 parts on 30 nets, routed with 144 tracks and 36 vias.

It is built around the CD74HC4067M96. Its parts include 17 capacitors and 3 ICs. It belongs with the ESP32 and RISC-V boards of this library.

Main components

1

README

README.md

eidon-glove

A robust 16-DOF hand/finger tracking wearable standard Bluetooth Human Interface Device (BLE HID) designed for humanoid teleoperation and collecting embodied AI training datasets.

Features

  • 16-DOF Finger Tracking: Full hand tracking with 16 Hall effect sensors for precise joint angle measurement
  • Wireless Connectivity: Standard BLE HID protocol (~100Hz wireless transmission)
  • Multi-Mode Support: Generic HID and gamepad modes with custom firmware
  • 9-DOF Orientation Tracking: Optional BNO085 IMU integration (Accelerometer/Gyro/Magnetometer)
  • Custom Hardware: Purpose-built PCB with analog multiplexer for efficient sensor management
  • ESP32-C3 MCU: Built-in BLE, WiFi, and battery charging capabilities
  • All-Day Battery: 3.7V 2000mAh lithium polymer battery with power management
  • Wearable Design: Fully 3D printable exoskeleton optimized for comfort and accuracy
  • Power Management: Integrated power switch and LED status indicators

Hardware Architecture

Core Components

  • Microcontroller: Seeed XIAO ESP32-C3 (RISC-V 32-bit @ 160MHz)
  • Sensors: 16x Hall effect sensors + magnets for joint tracking
  • IMU: BNO085 9-DOF sensor (optional)
  • Multiplexer: Analog multiplexer for sensor input management
  • Battery: 3.7V 2000mAh Li-Po with ETA4054S2F charging chip

BOM

Pin Configuration (XIAO ESP32-C3)

FunctionGPIOPin LabelNotes
Multiplexer Control
S010D10Multiplexer select bit 0
S19D9Multiplexer select bit 1
S26D4Multiplexer select bit 2
S37D5Multiplexer select bit 3
User Interface
Boot Button9D9Built-in XIAO button
Mode Button10D10PCB-mounted button
Status LED5D3Power/status indicator
BNO085 IMU (Optional)
I2C SDA21D6/TXIMU data line
I2C SCL20D7/RXIMU clock line

BNO085 IMU Integration (Optional)

The BNO085 9-DOF IMU provides orientation tracking to complement finger position data. This is an optional component that can be added for enhanced hand tracking capabilities.

BNO085 Wiring

I2C Connection:

  • SDA: GPIO 21 (D6/TX) - I2C Data line
  • SCL: GPIO 20 (D7/RX) - I2C Clock line
  • VCC: 3.3V power supply
  • GND: Ground connection
  • I2C Address: 0x4B (default)

Optional Connections:

  • RST: Not currently implemented (software reset used instead)
  • INT: Interrupt pin (not used in current implementation)

Important Notes

⚠️ Multiplexer Pin Conflicts: The current codebase has these remaining pin assignment conflicts:

  1. Button Conflicts: Boot button (GPIO 9) and Mode button (GPIO 10) conflict with multiplexer pins S1 and S0

BNO085 Software Configuration

The IMU is configured for:

  • Sensor Fusion: Game Rotation Vector mode
  • Update Rate: 200Hz (5ms intervals)
  • Auto-Detection: System continues operation if IMU is not connected
  • Data Output: Quaternion format for orientation representation

Breakout Board Recommendation:

Getting Started

Prerequisites

  • PlatformIO IDE extension
  • 3D printer for mechanical components
  • PCB manufacturing (or breadboard for prototyping)
  • Components listed in BOM (see PCB directory)

Build Instructions

  1. Clone this repository
  2. Open firmware project in PlatformIO
  3. Install dependencies (automatically handled by platformio.ini)
  4. Build and upload to XIAO ESP32-C3
  5. Assemble mechanical components
  6. Calibrate sensors using built-in calibration mode

Firmware Dependencies

  • ResponsiveAnalogRead ^1.2.1: Sensor input filtering
  • NimBLE-Arduino ^1.4.1: Bluetooth Low Energy
  • Adafruit BNO08x ^1.2.3: IMU sensor library

Web Hand Visualizer

The eidon-glove includes a comprehensive web-based visualizer for real-time hand tracking data visualization and analysis.

What It Is

A browser-based 3D hand visualization tool that:

  • Real-time 3D Hand Model: Displays a detailed 3D hand that mirrors your glove movements
  • IMU Orientation Tracking: Shows precise hand orientation using quaternion data from the BNO085 IMU
  • 16-DOF Finger Tracking: Visualizes all finger joint movements with color-coded angle displays
  • Multi-Device Support: Can connect to multiple gloves and trackers simultaneously
  • Data Recording & Playback: Record hand movements and play them back for analysis

Key Features

  • 🎯 Gimbal-Lock Free: Stable orientation tracking without axis flipping at extreme angles
  • 🔄 Auto-Reconnect: Automatically reconnects to previously paired devices on page refresh
  • 🎨 Color-Coded Visualization: Device-specific colors for easy identification
  • 📊 Real-Time Data: Live quaternion values, Euler angles, and joint positions
  • 🎮 HID Protocol: Uses standard Web HID API for direct browser connection
  • 💾 Session Recording: Capture and save hand movement sequences

How to Use

  1. Open the Web App: Navigate to /web/index.html in a modern browser (Chrome/Edge recommended)
  2. Connect Your Glove: Click "Connect" and select your eidon-glove from the HID device list
  3. Calibrate: Use the "Calibrate" button to zero the sensor baseline
  4. Visualize: Watch the 3D hand model mirror your real hand movements in real-time

Browser Requirements

  • Chrome 89+ or Edge 89+ (Web HID API support required)
  • HTTPS Connection (required for Web HID API)
  • Modern GPU (WebGL support for 3D rendering)

Technical Details

  • Communication: Web HID API for direct glove communication
  • 3D Rendering: Three.js for WebGL-based hand visualization
  • Coordinate System: Optimized quaternion mapping (x, z, -y, w) for stable orientation
  • Update Rate: ~60fps visualization with real-time sensor data
  • Data Format: 24-byte HID reports containing joint angles + quaternion data

Files

text
web/

The web visualizer provides an intuitive way to validate glove functionality, debug sensor issues, and demonstrate the full capabilities of the eidon-glove system.

Project Structure

text
eidon-glove/
├── firmware/          # ESP32-C3 firmware (PlatformIO)
│   ├── src/           # Main source code
│   ├── lib/           # Custom libraries
│   └── platformio.ini # Build configuration
├── pcb/               # KiCad PCB design files
├── cad/               # 3D printable components
├── web/               # Web interface (if applicable)
│   ├── index.html         # Main web interface
│   ├── script.js          # Core visualization logic
│   ├── style.css          # UI styling
│   ├── tetris.html    # Simple Tetris game demo
│   └── piano.html     # Simple five key piano demo
└── images/            # Documentation images

Inspired By

This project builds upon excellent open-source work:

Contributing

Contributions are welcome! Please:

  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 released under an open-source license. See individual component repositories for specific licensing terms.


Status: Active development - hardware tested, firmware functional, documentation in progress.

Parts

42
QtyValueFootprintReferences
17C-0402-0.1uF-16V0_easyeda2kicad:C0402C0, C1, C2, C3, C4, C5, C6, C7, C8, C10, C11, C12, C13, C14, C15, C16 +1
16JST-SM03B0_easyeda2kicad:CONN-SMD_SM03B-SRSS-TB-LF-SN-PH0, H1, H2, H3, H4, H5, H6, H7, H8, H9, H10, H11, H12, H13, H14, H15
12.5x3mm-BUTTON0_easyeda2kicad:KEY-SMD_L3.0-W2.5-LS4.0_TD-1183SNU3
1CD74HC4067M960_easyeda2kicad:SOIC-24_L15.4-W7.5-P1.27-LS10.3-BLU2
1LOGO0_logos:glove-v1-10mmG***
1LOGO0_logos:hand-10mmG***
1XIAO-ESP32C30_xiao_ESP32C3_PCB:MOUDLE14P-SMD-2.54-21X17.8MMU1

The 38 most common of 42 parts.

Questions

How big is the Glove v3-left PCB?

It measures 79 × 35 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Glove v3-left use?

42 parts, built around the CD74HC4067M96. 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 Glove v3-left KiCad files?

From the Eidon-AI/eidon-glove repository on GitHub, at the commit this page was made from: the board is pcb/glove-v3-left.kicad_pcb and its schematic pcb/glove-v3-left.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Glove v3-left design in my own project?

Its repository states no licence, so its author keeps all rights: ask Eidon-AI before reusing the design.

Similar boards

  • 2 layers79.9 × 36.2 mmDesk display, the printed circuit board in 3D

    Desk display

    nepyope/Project-Homunculus

    Project Homunculus is open-source, low-cost hardware for capturing human hand and arm motions. It has two parts.

    63 parts51
  • 2 layers100 × 116 mmQPCR main, the printed circuit board in 3D

    QPCR main

    hisashin/qNinja

    Open source Real-Time Quantitative PCR Implementation

    152 parts48GPL-3.0
  • 2 layers142 × 58 mmQLAMP main, the printed circuit board in 3D

    QLAMP main

    hisashin/qNinjaLite

    for LAMP

    143 parts24GPL-3.0
  • 4 layers153.8 × 106.1 mmSplitAnalogKeyboard, the printed circuit board in 3D

    SplitAnalogKeyboard

    LennartEd/Analog-Keyboard-kmk-PiPico-NormalSplit

    188 parts16
  • 2 layers60 × 75 mmReadout BoardV1, the printed circuit board in 3D

    Readout BoardV1

    zademahi238/mission-mimosa

    To answer this, we compare task-completion success rates with and without tactile sensing across different robot-learning policies.

    31 parts2
  • 2 layers71 × 46.4 mmProbe, the printed circuit board in 3D

    Probe

    0xDBFB7/psychic-probe

    A dirt-cheap high-sample-rate multi-channel datalogger.

    104 parts
  • 2 layers80 × 110 mmDriftPad, the printed circuit board in 3D

    DriftPad

    Lyrux/DriftPad

    Custom Hall-effect macropad with adjustable actuation and release points, analog magnetic key sensing, and an OLED display for real-time profiles, settings, and visual feedback.

    56 partsGPL-3.0
  • 4 layers100 × 120 mmMicromouse pcb, the printed circuit board in 3D

    Micromouse pcb

    MukeshSethy/micromouse-runner

    This is my repo for the first version of full size micromouse development.

    184 parts