Skip to main content
Version: FILS English

Smart Training Station

A smart reaction-training station that uses lights and sensors to measure hit force while logging scores online in real-time.

info

Author: Cucerave Adelina-Maria 1222EEB
GitHub Project Link: (https://github.com/UPB-PMRust-Students/fils-project-2026-AdelinaMariaCucerave)

Description

This project is an interactive training station that uses a network of sensors to track physical hits and share the results over the internet. The system is built with several "interaction nodes" that connect to a main controller and a central dashboard.

The station works by using piezo sensors to measure exactly how hard and how fast a user hits a target. Because hitting these sensors can create high-voltage spikes, the system includes a protection circuit (Schottky-clamping). This keeps the sensitive electronics safe while ensuring the hit data is recorded accurately.

Users get instant feedback through three different channels:

  1. Visual: Bright RGB LED rings change colors to show the intensity of the hit.

  2. Audio: A buzzer plays different sounds for successful hits or errors.

  3. Data: A color screen displays live scores and menus, while a knob (potentiometer) lets the user manually adjust how sensitive the sensors are.

The "brain" of the system is the STM32U545RE-Q microcontroller. It runs on a modern software framework called Embassy-rs, which allows the code to handle many tasks at once without slowing down. Finally, an ESP32-C3 Wi-Fi module acts as a bridge, sending the performance data to an online dashboard so users can track their progress over time.

Motivation

I have always been interested in how technology can be used to measure and improve human performance. Reaction time and physical precision are important in many areas, such as professional sports, physical therapy, and even industrial safety.

By building a system that gives instant feedback through lights and sounds, users can train their reflexes in a more engaging and effective way. Additionally, by adding Wi-Fi connectivity to the station, performance data can be tracked and saved over time. This allows users to stay aware of their progress, set personal goals, and find specific areas where they can improve their speed and accuracy.

Architecture

Main Architectural Components:

  1. Signal Acquisition Unit (Input)

    Role: Detects physical impacts and measures the force of each hit.

    Components: 3x Piezo Diaphragms and 1x Potentiometer (used for adjusting sensor sensitivity).

  2. User Interface and Dashboard (I/O)

    Role: Manages the menu system and displays live scores and training data.

    Components: 1.8" SPI TFT Display and 3x Tactile Push Buttons (for navigation and selection).

  3. Haptic Feedback System (Output)

    Role: Provides immediate visual and audio alerts to the user when a target is hit.

    Components: 3x 16-LED RGB Rings and a Passive Buzzer.

  4. Wireless Telemetry Bridge (Connectivity)

    Role: Sends performance results and hit data to a remote web dashboard via Wi-Fi.

    Components: ESP32-C3 (RISC-V) Module.

Log

Week 5:

  • Research, decided on an idea
  • Asked lab assistant about it, decided to improve it

Week 6:

  • Started to look at components
  • Decided on what I wanted to buy

Week 7:

  • Waited for lab feedback
  • Placed the order

Week 8:

  • Some components came, started to look into Ubuntu for this assignment
  • Having problems with Windows/Linux environment but fixing them
  • Received help with soldering some wires to my piezo sensors and RGB LED rings

Hardware

The main component is the Nucleo STM32U545RE-Q board that acts as the central unit, analyzing real-time vibration data based on signals from three piezoelectric diaphragms taped underneath the training cups. To protect the microcontroller's ADC pins from high-voltage spikes caused by physical "thumps," each piezo is connected through a protection circuit using BAT41 Schottky diodes and high-value resistors. A potentiometer is integrated to provide a variable voltage signal, allowing the user to manually adjust the "Global Sensitivity" threshold for the training session.

For user feedback, the STM32 controls RGB LED rings to provide instant visual cues—turning green for a perfect hit, yellow for soft, and red for too hard—while a passive buzzer is tied to a PWM channel to generate audible warning tones. Detailed performance data, including reaction latency and impact force percentage, is transmitted via SPI to the display, which serves as a real-time scoreboard. Finally, the ESP32-C3 module handles Wi-Fi and Bluetooth connectivity, allowing the training data to be transmitted wirelessly for long-term progress tracking.

Schematics

Diagram

Bill of Materials

DeviceUsagePrice
STM32U545REThe microcontroller107 RON
4 * 35mm Piezoelectric Diaphragm SensorSensor to convert physical thumps to electrical signals47 RON
12 * Schottky DiodesPart of protection circuit to protect from high-voltage spikes from sensors(I might get a voltage stabilizer but I don't know yet)12.84 RON
6 * 10M Ohm ResistorsResistors for piezo sensors13 RON
20 * 220M Ohm ResistorsResistors for LEDs3.42 RON
20 * 330M Ohm ResistorsResistors for LEDs2.6 RON
2 * PotentiometerFor adjusting sensitivity threshold of sensors7.52 RON
10 * RGB LEDVisual color feedback (I bought simple LEDs as a backup in case the rings don't work)10 RON
10 * Push ButtonsUser input for the display3.6 RON
6 * CapacitorPart of protection circuit to protect from high-voltage spikes from sensors3.54 RON
2 * Passive BuzzersAudio feedback (success/failure)2 RON
4 * RGB LED Rings (link is not the same one)Visual color feedback38.36 RON
ESP32-C3Wi-Fi communication34 RON
Breadboard + Jumper WiresConnecting components34 RON
ST7735 1.8" TFT LCD Display ScreenDisplay for scoreboards64.59 RON
~20 MTM Jumper WiresConnecting components15.74 RON
~40 MTM Jumper Wires (different lengths)Connecting components21.63 RON
40 MTM Jumper WiresConnecting components10 RON
40 MTF Jumper WiresConnecting components10 RON
**I bought many spares because this is my first project and I might need them if I break something + many other components like jumper wires for future components (also bought from different sites because of quality differences)

Software

LibraryDescriptionUsage
stm32u5xx-halUsed for STM32ADC for piezos, PWM for the buzzer, GPIO for LEDs etc.
embedded-graphics2D graphics libraryDrawing, scoreboard, percentage bars to the display.
embedded-halEmbedded hardware"Translator" between sensor code and the screen/peripherals.
cortex-m-rtARM Cortex-MTells the processor how to start up and manage the basic execution loop.
st7735-lcdDriver for the 1.8" TFT LCDSending pixel data to screen.
nbNon-blocking multitasking supportChecking for "thumps" while simultaneously running the game timer.
micromathFast math operationsConverting raw electrical spikes into force percentages to display on screen.
heaplessMemory-efficient data structuresStoring high scores or last hits without using dynamic memory.
panic-probePanic handlerError debugging.
**TBC
  1. Embassy book
  2. Piezo sensors guide
  3. STM32 Datasheet
  4. Information on protection circuit with diodes
  5. RGB LED Rings guide **TBC