Skip to the content
2 layers141 × 90.9 mmHaptic bracelet, the printed circuit board in 3D

Haptic bracelet

earlynerd/ELRS-haptics

Battery-powered attitude feedback for FPV flying, with eight haptic actuators around each wrist. An ESP32-C6 receives telemetry over ESP-NOW and controls eight M2003FC1AE/DRV2625 pods using the music robot's UART ring…

Size
141 × 90.9 mm
Copper layers
2
Thickness
0.8 mm
Parts
269
Nets
250
Pads
966
Tracks, vias
0, 0
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
14 Sep 2026
Updated
17 Sep 2026

Overview

Haptic bracelet is an open-source printed circuit board by earlynerd, from the earlynerd/ELRS-haptics repository on GitHub. It is a 2-layer board of 141 × 90.9 mm with 269 parts on 250 nets.

It is built around the DRV2625YFF, TPS63802DLAR and TUSB320LAIRWBR, with the TPD2EUSB30DRTR, BQ25186DLHR and ESP32-C6-MINI-1 among its other parts. Its parts include 101 resistors, 74 capacitors, 43 connectors, 25 ICs and 8 fuses. It belongs with the wearables boards and the ESP32 and RISC-V boards of this library.

Main components

12

README

README.md

Haptic bracelet

Battery-powered attitude feedback for FPV flying, with eight haptic actuators around each wrist. An ESP32-C6 receives telemetry over ESP-NOW and controls eight M2003FC1AE/DRV2625 pods using the music robot's UART ring architecture. Each wrist uses a seven-cell parallel battery group: protected cells in pods 1-7, with no cell in the stacked controller pod. Seven 90 mAh cells give 630 mAh; 301730/160 mAh cells are an alternative candidate pending selection and fit checks.

Open the two KiCad projects

PCBAEditable projectQuantity per wrist
Controller daughterboardhardware/main/main.kicad_pro1
Universal podhardware/satellite/satellite.kicad_pro8

Each project has its own schematic and PCB. Shared custom libraries live under hardware/. Use KiCad 10; native files are the editable source of truth.

JP1 defaults to 1-2 NORMAL. On the last satellite, cut the 1-2 copper bridge and solder 2-3 END. Its centre pad feeds the upstream return, selecting downstream return or local TX. Never bridge all three. See project structure and jumper configuration.

The former eight-island project is retained under hardware/archive/combined-project/, with the untouched starting snapshot and hashes under hardware/backups/before-two-projects/. Close any editor still showing the former root project and open the new projects above for further work.

Schematics and layout

The main project has five sheets: the user's redrawn controller/power-switch top sheet, stacked universal-pod interface, charger/regulator, USB, and controller support. The satellite has one sheet. Support components are wired around their ICs; labels serve power rails and circuit/sheet interfaces.

Main schematic PDF · Satellite schematic PDF · Satellite layers

The redraw audit found no deleted components, changed values or changed footprint assignments. The new +3V3 and +3V3_POD power symbols had split the old 3V3 and POD_3V3 nets; those names are now consistent. An obsolete dangling QOD wire/label was removed. Fresh connectivity checks preserve the verified circuit apart from the documented selector, five-pad harness, reset removal and USB simplification.

Both boards now use the pod's full 20 × 46 mm, R2.5 outside contour. The universal skin-facing board has four M1.6 SMT standoff lands and no actuator cutout; the controller plate has matching 1.8 mm screw-clearance holes. The VLV041235L retains its factory adhesive. Drawing layers mark the TPU contact band and placement margin. See PCB sandwich construction.

All existing electrical positions and routes are preserved, including the user's latest main placement. Both projects have zero ERC and schematic/PCB parity issues. The universal board retains 201 segments, 42 vias, zero DRC violations and zero opens. The controller has 146 opens and 21 DRC findings during placement, including clashes around the new mounts. Both active stackups remain four-layer, 0.8 mm; standoff height and thinner skin-plate trials are open. See current architecture.

System decisions

  • Five wires run through seven gaps: switched supply, GND, forwarded UART data, protected VBAT and serial return. The compact five-pad banks use pin 4 for VBAT and pin 5 for return. The eighth gap has no conductor; the current housing uses paired planar U-flexures at all eight gaps and closes the flat strip at a seam inside the main shell.
  • Each pod contains an M2003FC1AE, DRV2625YFFR and VLV041235L. PF0/PF1 preserve the loader UART/ICE pins. Driver NRST follows VDD; hard recovery cycles pod power.
  • USB-C uses two 5.1k CC pull-downs and connects to ESP32-C6 native Serial/JTAG on GPIO12/13. VBUS directly feeds the charger; its internal limit replaces external USB current-switch circuitry. BQ25186 charges the protected pack, TPS63802 supplies 3.3 V, and TPS22918 switches all pod electronics.
  • Every pod has local bulk capacitance, removable UART links, ICE pads and an optional cell thermistor interface. Each protected battery feeds VBAT through its local branch fuse; factory PCMs stay fitted.
  • Main SW3 is the wake/ship button; D1 is the RGB status LED. Firmware must manage charging and UART pin states around power changes.

See ring and power sequencing, power architecture, USB implementation, and DECISIONS.md.

Firmware

The initial bracelet firmware now includes an ESP32-C6 controller, an M2003 haptic-pod application, the borrowed music-robot LDROM build, and portable protocol tests. The controller decodes MSPv2-wrapped CRSF attitude telemetry from a configured ExpressLRS Backpack sender, requires exactly eight enumerated pods, and drives a configurable absolute-attitude map at 50 Hz. The M2003 application controls one DRV2625 over local I2C and keeps the robot ring framing, enumeration, loader mailbox, image layout, and update packager.

The stacked hardware retains eight nodes but requires cell-temperature supervision on pods 1-7 only; that firmware policy and seven-cell charging limits remain to be implemented.

The first build defaults are deliberately inert until a Backpack source MAC is configured. Charging remains disabled. This code has been compiled, but it has not been flashed or exercised on bracelet hardware; see firmware interfaces and open qualifications.

For staged hardware work, the controller now has a native USB bring-up console. It supports partial-ring enumeration, per-pod status and bounded single-actuator pulses without relaxing the eight-pod requirement for normal telemetry-driven output.

Next work and manufacturing

Next establish the stacked daughterboard envelope, contact arrangement and placement before routing. JLCPCB is preferred; a later derived panel may combine one controller and eight identical universal pods. hardware/panel is reserved for that output. No manufacturing panel or fabrication release has been created.

The exact production stack, USB geometry, enclosure supports/links, physical fit, battery sharing, power sequencing and haptic behavior remain to validate. Firmware is implemented as an initial buildable slice but has not been flashed. Loader compatibility is now build-verified against the inspected robot sources, not yet demonstrated on the bracelet ring.

tools/verify_split_projects.ps1 refreshes both netlists, ERC/DRC reports and preservation checks. Current evidence is in hardware/verification/project-split/. Older construction scripts and routing directories document earlier revisions; do not use them to regenerate the active designs.

References

Power/USB source details and loader provenance are linked from the implementation documents.

The proposed VLV041235L actuator and draft flex contact footprint are documented separately; the actuator is assigned to main M1 and satellite M1.

The dimensional pod study uses the measured 195 mm wrist. Revision D proposes 20 x 38 x 10.5 mm regular shells and a 24 x 64 x 10.5 mm main shell, with one protected 3 x 12 x 32 mm battery bonded inside every lid. The main battery is allocated away from the antenna and USB/button/RGB end. Width around the wrist stays unchanged. These are nominal shell envelopes; revision 0.6 implements PCB outlines and fit coupons but has no physical fit evidence.

The current Myo-inspired flat housing v0.11 supports the main-pod TPU against its sidewalls down to the satellite ends, so all sixteen free U-folds use the same geometry. Its main clamshell is cut from one rounded rectangular envelope, with integrated end walls and recessed M2 x 8 mm screws. Satellite shells, lids and joint geometry are preserved. The approximately 239 x 72 mm strip targets PET-GF15/TPU on the H2D; local support remains necessary under the terminal roof and wall feet. STL/3MF, STEP and main-transition/closure coupons are included. CAD, mesh and preservation checks pass; the user's slicer screenshot is v0.10 evidence, while v0.11 slicing, fit and flexure testing remain open. Earlier releases are preserved.

SW3 is the accessible wake/off button. D1 is a discrete common-anode RGB status LED on GPIO4/5/15, with individual resistors; the placement selects LTST-C19HE1WT and EVQPUJ02K, respectively. See standby and controls. Initial firmware uses blue for waiting, green for fresh telemetry/output, and red for a ring fault; final indication and button behavior remain open.

The YDL301230-class battery baseline provides 630 mAh and 315 mA continuous aggregate current with seven equally sharing cells. Factory PCMs stay intact. New 22 uF pod capacitors and C42=4.7 nF ramp control are documented in ring power.

Parts

269
QtyValueFootprintReferences
29100kResistor_SMD:R_0402_1005MetricR102, R103, R112, R113, R122, R123, R132, R133, R142, R143, R152, R153, R162, R163, R172, R173 +13
26100nCapacitor_SMD:C_0402_1005MetricC2, C11, C12, C14, C15, C17, C18, C20, C100, C110, C120, C130, C140, C150, C160, C170 +10
184.7kResistor_SMD:R_0402_1005MetricR1, R2, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23 +2
1510kResistor_SMD:R_0402_1005MetricR3, R4, R5, R6, R27, R36, R37, R104, R114, R124, R134, R144, R154, R164, R174
111uCapacitor_SMD:C_0402_1005MetricC1, C7, C10, C13, C16, C19, C22, C25, C28, C41, C43
90Resistor_SMD:R_0402_1005MetricR53, R100, R110, R120, R130, R140, R150, R160, R170
910uCapacitor_SMD:C_0805_2012MetricC3, C101, C111, C121, C131, C141, C151, C161, C171
933Resistor_SMD:R_0402_1005MetricR42, R101, R111, R121, R131, R141, R151, R161, R171
810k 1%Resistor_SMD:R_0402_1005MetricR105, R115, R125, R135, R145, R155, R165, R175
810nCapacitor_SMD:C_0402_1005MetricC102, C112, C122, C132, C142, C152, C162, C172
822u 10V X5RCapacitor_SMD:C_0805_2012MetricC103, C113, C123, C133, C143, C153, C163, C173
8CELL FUSE TBDResistor_SMD:R_0805_2012MetricF100, F101, F102, F103, F104, F105, F106, F107
8CHAIN INHapticBracelet:WirePads_6_P2mmJ100, J104, J108, J112, J116, J120, J124, J128
8CHAIN OUTHapticBracelet:WirePads_6_P2mmJ101, J105, J109, J113, J117, J121, J125, J129
8DRV2625HapticBracelet:DRV2625_YFF_9_0.4mmU3, U4, U5, U6, U7, U8, U9, U10
8ICE / INITIAL FLASHHapticBracelet:WirePads_5_P1.27mmJ102, J106, J110, J114, J118, J122, J126, J130
8M2003FC1AEPackage_SO:TSSOP-20_4.4x6.5mm_P0.65mmU18, U19, U20, U21, U22, U23, U24, U25
8NTC (optional)HapticBracelet:WirePads_2_P2mmJ103, J107, J111, J115, J119, J123, J127, J131
8PROTECTED CELL 90mAhHapticBracelet:WirePads_2_P2mmJ200, J201, J202, J203, J204, J205, J206, J207
8VLV041235LHapticBracelet:Vybronics_VLV041235L_FPC_Contact_DraftM1, M2, M3, M4, M5, M6, M7, M8
52N7002Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4, Q5
310u 10VCapacitor_SMD:C_0805_2012MetricC35, C37, C40
31u 10VCapacitor_SMD:C_0603_1608MetricC32, C34, C36
32.2kResistor_SMD:R_0402_1005MetricR47, R49, R51
2100Resistor_SMD:R_0402_1005MetricR44, R46
222Resistor_SMD:R_0402_1005MetricR24, R25
222u 10VCapacitor_SMD:C_0805_2012MetricC38, C39
2TPD2EUSB30Package_TO_SOT_SMD:Texas_DRT-3U14, U15
2TUNE / DNPCapacitor_SMD:C_0402_1005MetricC29, C30
10.47uHHapticBracelet:L_DFE201612E_PlacementL1
1100n 10VCapacitor_SMD:C_0402_1005MetricC33
11MResistor_SMD:R_0402_1005MetricR35
14.7n 25VCapacitor_SMD:C_0402_1005MetricC42
143k 1%Resistor_SMD:R_0402_1005MetricR29
1511k 1%Resistor_SMD:R_0402_1005MetricR40
162k 1%Resistor_SMD:R_0402_1005MetricR28
1887k 1%Resistor_SMD:R_0402_1005MetricR26
191k 1%Resistor_SMD:R_0402_1005MetricR41
1BQ25186DLHPackage_DFN_QFN:Texas_DLH0010A_WSON-10-1EP_2.2x2mm_P0.4mm_EP0.9x1.5mmU11
1ESP BOOTButton_Switch_SMD:SW_SPST_TL3305ASW2
1ESP RESETButton_Switch_SMD:SW_SPST_TL3305ASW1
1ESP UART / BOOT / RESETHapticBracelet:WirePads_6_P2mmJ1
1ESP32-C6-MINI-1RF_Module:ESP32-C6-MINI-1U1
1LTST-C19HE1WTLED_SMD:LED_LiteOn_LTST-C19HE1WTD1
1TPS22918DBVPackage_TO_SOT_SMD:SOT-23-6U26
1TPS2553DBVPackage_TO_SOT_SMD:SOT-23-6U16
1TPS63802DLAHapticBracelet:TPS63802_DLA0010AU12
1TS5A3159DBVPackage_TO_SOT_SMD:SOT-23-6U17
1TUSB320LAIRWBPackage_DFN_QFN:Texas_X2QFN-12_1.6x1.6mm_P0.4mmU13
1USB4105-GF-AConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ2
1VBAT BUS + NTCHapticBracelet:WirePads_4_P1.5mmJ3
1WAKE / SHIPButton_Switch_SMD:Panasonic_EVQPUJ_EVQPUASW3

More from earlynerd/ELRS-haptics

6
  • 4 layers21 × 55.9 mmBefore five pad, the printed circuit board in 3D

    Before five pad

    earlynerd/ELRS-haptics

    Battery-powered attitude feedback for FPV flying, with eight haptic actuators around each wrist. An ESP32-C6 receives telemetry over ESP-NOW and controls eight M2003FC1AE/DRV2625 pods using the music robot's UART ring…

    93 parts
  • 4 layers21 × 55.9 mmBefore simple usb, the printed circuit board in 3D

    Before simple usb

    earlynerd/ELRS-haptics

    Battery-powered attitude feedback for FPV flying, with eight haptic actuators around each wrist. An ESP32-C6 receives telemetry over ESP-NOW and controls eight M2003FC1AE/DRV2625 pods using the music robot's UART ring…

    93 parts
  • 4 layers21 × 55.9 mmBefore pod symmetry, the printed circuit board in 3D

    Before pod symmetry

    earlynerd/ELRS-haptics

    Battery-powered attitude feedback for FPV flying, with eight haptic actuators around each wrist. An ESP32-C6 receives telemetry over ESP-NOW and controls eight M2003FC1AE/DRV2625 pods using the music robot's UART ring…

    80 parts
  • 4 layers20 × 46 mmELRS haptics, the printed circuit board in 3D

    ELRS haptics

    earlynerd/ELRS-haptics

    Battery-powered attitude feedback for FPV flying, with eight haptic actuators around each wrist. An ESP32-C6 receives telemetry over ESP-NOW and controls eight M2003FC1AE/DRV2625 pods using the music robot's UART ring…

    52 parts
  • 4 layers20 × 46 mmSatellite, the printed circuit board in 3D

    Satellite

    earlynerd/ELRS-haptics

    Battery-powered attitude feedback for FPV flying, with eight haptic actuators around each wrist. An ESP32-C6 receives telemetry over ESP-NOW and controls eight M2003FC1AE/DRV2625 pods using the music robot's UART ring…

    28 parts
  • 4 layers17 × 35 mmPod-6, the printed circuit board in 3D

    Pod-6

    earlynerd/ELRS-haptics

    Battery-powered attitude feedback for FPV flying, with eight haptic actuators around each wrist. An ESP32-C6 receives telemetry over ESP-NOW and controls eight M2003FC1AE/DRV2625 pods using the music robot's UART ring…

    23 parts

Similar boards

  • 4 layers85 × 85 mmPcb version2, the printed circuit board in 3D

    Pcb version2

    constancegdl/RP2350-FI-Attack-PCB

    PCB designed for fault injection on the RP2350.

    69 parts
  • 4 layers59 × 101 mmEnku mainboard r0.1, the printed circuit board in 3D

    Enku mainboard r0.1

    aliaksei-lameyka/ENKU-Base-reader

    Open enku-mainboard-r0.1.kicadpro with KiCad10.0.7. Matching PCB/root schematic and power.kicadsch, mcuio.kicadsch, epdhv.kicadsch, connectors.kicadsch are canonical.

    127 parts1CERN-OHL-W-2.0
  • 2 layers49 × 50 mmPlant watering system, the printed circuit board in 3D

    Plant watering system

    Excse/plant-watering-system

    A completely selfmade smart watering system for plants of any kind integrated into HomeAssistant

    45 parts1
  • 4 layers61.8 × 79.8 mmOwl mainboard, the printed circuit board in 3D

    Owl mainboard

    danieltyukov/owltunes

    Owl-shaped Spotify remote for your desk and pocket: ESP32-S3 firmware, LVGL UI, KiCad PCB, 3D-printed enclosure, and owl v0 on the Waveshare AMOLED kit

    107 partsMIT
  • 4 layers80 × 60.6 mmEsp extension, the printed circuit board in 3D

    Esp extension

    Miky8745/HalfLife-Drone

    It's an extension for an ESP32 S3 that allows it to safely control 4 coreless DC motors and get data from an IMU and Barometer units. Meaning it's prepared to be used in a quadcopter. And a frame for the drone itself.

    66 parts
  • 4 layers118 × 76 mmSmart led badge, the printed circuit board in 3D

    Smart led badge

    zgeez/Pixel-Badge

    Wearable 32x32 LED badge with Zephyr firmware, BLE control, passive NFC, and a Flutter Android app, built around a custom nRF52840 PCB.

    1,236 partsMIT

Questions

How big is the Haptic bracelet PCB?

It measures 141 × 90.9 mm and has 2 copper layers, 0.8 mm thick.

What parts does the Haptic bracelet use?

269 parts, built around the DRV2625YFF, TPS63802DLAR, TUSB320LAIRWBR and TPD2EUSB30DRTR. 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 Haptic bracelet KiCad files?

From the earlynerd/ELRS-haptics repository on GitHub, at the commit this page was made from: the board is hardware/backups/before-routing/haptic-bracelet.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Haptic bracelet design in my own project?

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