Skate-Mate: Smart Roller Skate Tracker With Brake (MCT Howest)
by Kjell Berghmans in Circuits > Raspberry Pi
16 Views, 0 Favorites, 0 Comments
Skate-Mate: Smart Roller Skate Tracker With Brake (MCT Howest)

Hello, i'm Kjell a student at Howest MCT (Multimedia and creative Technologies) and welcome to the Skate-Mate project! This guide will help you build a smart roller skate tracker with an integrated brake system. Skate-Mate combines hardware (electronics and mechanics) and software (Python, JavaScript, HTML, CSS, and SQL/MariaDB) to track your skating sessions and enhance safety with an electronic brake. The enclosure fits into a shoulder bag or tote with a laser-cut insert for the electronics. The servo brake is mounted directly onto the skate using glue and a screw.
All code is available on GitHub, and a detailed Fritzing circuit diagram is provided for easy hardware assembly.
Supplies
- Raspberry Pi 5 (1x) – main controller
- USB-C power supply 27W (1x) – for the Raspberry Pi
- 9V power supply (1x) – for the servo motor
- Jumper wires (1 set) – for all connections
- Push buttons (2x) – for manual brake activation
- LCD display DFR0063 (1x) – shows status information
- Gyroscope/accelerometer module MPU6050 (1x) – for fall and movement detection
- Servo motor PowerHD PHD-LF20MG, metal gears (1x) – operates the brake
- GPS module (1x) – for location tracking
- Breadboard (1x) – for prototyping
- Step-up converter (1x) – converts 9V to 6V for the servo
- Set of resistors (1 set) – for various connections
- Roller skates (1 pair) – base for mounting
- RTC module (1x) – keeps time when the Pi is off
- Cable (1x) – connects the servo to the enclosure
- Shoulder bag or tote bag + laser-cut insert (1x) – enclosure for the electronics
Database Design and Setup

The Skate-Mate uses a relational database (MariaDB) to log users, trips, GPS positions, brake events, and sensor data.
The Entity-Relationship Diagram (ERD) below illustrates the structure:
The structure is as follows:
- Users:
- Fields: userID, name, email, max_speed
- Purpose: Stores user profile and preferences
- Trips:
- Fields: tripID, userID, start_time, end_time, avg_speed
- Purpose: Logs each skating session per user
- GPSData:
- Fields: gpsID, tripID, latitude, longitude, timestamp
- Purpose: Stores GPS location points for each trip
- ServoData:
- Fields: servoID, tripID, status, timestamp
- Purpose: Logs each brake event (manual or automatic, with time)
- AcceleroData:
- Fields: acceleroID, tripID, accel_x, accel_y, accel_z, gyro_x, gyro_y, gyro_z, timestamp
- Purpose: Stores sensor data per trip
You can find the full SQL database creation scripts and ERD diagram in my GitHub repository.
Circuit Assembly (Fritzing)
- Use the included Fritzing diagram for all wiring details.
- Key connections:
- The servo is powered via a 6V step-up converter from a 9V supply.
- The MPU6050 (gyroscope/accelerometer) and RTC module connect to the Raspberry Pi via I2C.
- The GPS module connects via Serial pins
- The LCD display is connected directly to the pi.
- Push buttons are attached to GPIO pins for manual brake activation and trip start
- Enclosure:
- Place all electronics in a laser-cut insert inside a shoulder bag or tote.
- Route the servo cable from the skate to the enclosure.
Mechanical Assembly




- Mount the servo motor to the roller skate using glue and a screw.
- Make sure the brake mechanism can move freely and is robust for outdoor use.
- Use your custom laser-cut insert and bag (or adapt a tote bag) to hold all electronics.
- Ensure the LCD and buttons are accessible from outside the bag.
Coding


Backend (Python):
- Clone the code from your GitHub repository.
- make a venv, use pip install requirements and install additional dependencies like instructed below
- Install dependencies (GPIO, I2C, MariaDB connector, etc.).
- Backend tasks:
- Read sensor data (MPU6050, GPS).
- Log data to the MariaDB database.
- Control the servo for braking (manual via button, or automatic on fall detection).
- Serve data to the frontend via REST API or WebSocket.
Frontend (HTML, JS, CSS):
- The web dashboard runs locally on the Pi and is accessible via browser.
- It displays:
- Live session data
- Brake events
- GPS route
- Sensor data visualization (e.g., using Chart.js)
- Communicates with the backend for real-time updates.
Circuit and Software Testing

- Test all sensor readings and button inputs.
- Ensure the servo responds triggers.
- Check that all events are recorded in the database.
- Verify that the web interface displays updates in real time.
Usage
- Power on the Raspberry Pi and servo supply.
- Start a skating session from the web interface.
- Skate as usual; the device tracks your route and logs all brake events.(if you want to skate you'll have to make sure to use a portable power supply)
- Activate the brake manually with the button
- Review your session data on the dashboard.
Documentation and Source Code
Tips and Customization
- Personalize your enclosure (color, logo, extra pockets).
- Add more sensors for expanded functionality.
- Improve the software (user profiles, export options, notifications).
Happy skating!