Hardware, firmware, and design patterns powering the Ion Beacon system.
MCU with built-in BLE for wireless app control and real-time sensor processing.
6-axis accelerometer & gyroscope providing real-time motion data via I2C.
Addressable WS2812 NeoPixel grid for reactive animations driven by sensor data.
Bluefruit Connect (iOS) — switch modes, tune thresholds, adjust visuals live.
Firmware using Adafruit NeoMatrix, GFX, MPU6050 & BLEDevice libraries.
3M Dual Lock SJ 3550 — secure yet removable mounting to any board.
Modular file structure: Core Logic (Modes.cpp), Communication (BleHandler.cpp), Global State (Globals.h).
Manages RIDING → JUMPING → LANDED transitions in Jump Mode for precise phase detection.
millis() timers instead of delay() — keeps sensor polling and BLE alive during animations.
Async BLE write/connect events via the MyCallbacks class for responsive communication.
getAccelMagnitude() raw physics calculation determines lighting — no pre-baked animations.
Full wireless control over modes, physics tuning, and visual settings via BLE.
Switch via app:
Core firmware, sensor integration, LED matrix, BLE communication, iterative hardware design.
First real-world test with Yume, Balta, and Lyli at the indoor ski hall.
Night session. Feedback: set brightness high for best visual impact. Device fell off during a fall — recovered, but white casing blended with snow.
9-DOF sensor, better LEDs, improved animations, backup sling, onboard data logging.