Technology Stack

ESP32-S3 Super Mini

MCU with built-in BLE for wireless app control and real-time sensor processing.

📐

MPU6050 Sensor

6-axis accelerometer & gyroscope providing real-time motion data via I2C.

💡

2×(5×5) LED Matrix

Addressable WS2812 NeoPixel grid for reactive animations driven by sensor data.

📱

BLE App Control

Bluefruit Connect (iOS) — switch modes, tune thresholds, adjust visuals live.

🔧

C++ / Arduino

Firmware using Adafruit NeoMatrix, GFX, MPU6050 & BLEDevice libraries.

🔗

Board Attachment

3M Dual Lock SJ 3550 — secure yet removable mounting to any board.

Architecture & Patterns

Modular file structure: Core Logic (Modes.cpp), Communication (BleHandler.cpp), Global State (Globals.h).

Finite State Machine FSM

Manages RIDING → JUMPING → LANDED transitions in Jump Mode for precise phase detection.

Non-Blocking Execution

millis() timers instead of delay() — keeps sensor polling and BLE alive during animations.

Callback Pattern

Async BLE write/connect events via the MyCallbacks class for responsive communication.

First Principle Logic

getAccelMagnitude() raw physics calculation determines lighting — no pre-baked animations.

Features & App Control

Full wireless control over modes, physics tuning, and visual settings via BLE.

System Mode

5 Lighting Modes

Switch via app:

  • Jump Analyzer — reacts to airtime & landings
  • Pink — ambient glow mode
  • Movement — responds to board tilt & speed
  • Icon — static display patterns
  • Plotter — real-time sensor visualization
Physics & Sensor Tuning

Dial In Your Ride

  • Freefall Threshold — weightlessness detection
  • Landing Threshold — impact force for landing FX
  • Min Air Time — min jump duration filter (ms)
  • Sensitivity Delta — movement mode sensitivity
Visual Settings

Light Customization

  • Brightness — max LED brightness (0–255)
  • Show Time — nitro explosion duration post-landing
  • Fade Duration — light decay in movement mode
Hardware

Challenges Overcome

  • 3D-printed standoff matrix for LED diffusion
  • Waterproof + rechargeable: gasket, vaseline, screw lid
  • 3M Dual Lock SJ 3550 board attachment

Development Timeline

January 2026

Development Phase (v1–v3)

Core firmware, sensor integration, LED matrix, BLE communication, iterative hardware design.

January 2026

v1 Testing — Skihalle

First real-world test with Yume, Balta, and Lyli at the indoor ski hall.

February 2026

v3 Testing — Klínovec Night Skiing

Night session. Feedback: set brightness high for best visual impact. Device fell off during a fall — recovered, but white casing blended with snow.

Upcoming

Version 4.0

9-DOF sensor, better LEDs, improved animations, backup sling, onboard data logging.