Skip to content

Prerequisites

Hardware

Part Qty Location Vendor Notes
BNO055 9-DOF IMU 6 wrists, upper arms, chest, thigh Adafruit 4646 I2C, 0x28/0x29 addresses
STM32F405 Feather Express 1 vest, primary MCU Adafruit 4382 168 MHz, 2x I2C, 6x ADC
KB2040 (RP2040) 1 vest, co-processor Adafruit 5302 133 MHz, 2x I2C, UART
MyoWare 2.0 Muscle Sensor 2 forearm flexor, lumbar erector SparkFun DEV-13723 0-1 V analog output
FSR 402 force sensor 4 heels/toes, both feet Interlink 402 0.1"-4.5" sensing region
Qwiic cables (I2C) 12+ sensor connections Adafruit 100 mm length recommended
Jumper wires M-F 20+ ADC, UART connections 200 mm breadboard wires
USB-C cables 2 power + data data-capable (not charge-only)
3.7 V LiPo battery 1 vest power Adafruit 2011 or USB power bank
Intel RealSense D435i 1 helmet (ground truth) Intel USB 3.0 required
Adafruit BMP390 1 backordered Adafruit 4816 altitude; optional

Tools

Tool Required Install
PlatformIO Yes platformio.org — VS Code extension or CLI
Python 3.12+ Yes system or uv (astral.sh/uv)
uv (Python env) Recommended curl -LsSf https://astral.sh/uv/install.sh \| sh
RealSense SDK 2.0 Optional pip install pyrealsense2
Logic analyzer Optional Saleae Logic 8 or similar, for UART/I2C debugging
Multimeter Optional continuity checks, pull-up verification

Software setup

cd wearable_har_v2

# Create Python venv with all dependencies
uv venv .venv --python 3.12
uv pip install -r requirements.txt

# Verify
.venv/bin/python -c "from host.protocol import crc32; assert crc32(b'123456789') == 0xCBF43926; print('OK')"

Assumptions

  • You can solder header pins onto the STM32F405 and KB2040 boards
  • You have a USB-C data cable (not charge-only)
  • You are comfortable with PlatformIO's project-per-directory model