Bring your Hot Wheels id Race Portal back to life!
An open-source tool to connect to the Hot Wheels id Race Portal after Mattel discontinued the official app on January 1, 2024. We reverse-engineered the Bluetooth protocol so you can track speeds, lap times, and build your car collection again.
- Detect cars - Reads NFC UID and serial number when you place a car on the portal
- Track speed - Measures speed as cars pass through (in "scale mph")
- Count laps - Tracks lap times and calculates best/average times
- Live dashboard - Beautiful terminal UI with real-time stats
- Multi-car support - Tracks stats for each car individually
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 🏎️ HOT WHEELS PORTAL DASHBOARD 🏎️ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━ 🚗 Current Car ━━━━━━━┓┏━━━━━━━ 📊 Recent Passes ━━━━━━┓
┃ NFC UID: 4A:8F:52:88:5D:81 ┃┃ # Time Speed Lap ┃
┃ Serial: 1102032557 ┃┃ 12 12:01:03 94.5 mph 4.2s ┃
┃ Laps: 5 ┃┃ 11 12:00:58 50.5 mph 5.1s ┃
┃ ┃┃ 10 12:00:52 46.9 mph 4.8s ┃
┃ ████████████████░░░░ 94.5 mph┃┃ 9 12:00:45 88.2 mph 3.9s ┃
┃ Best Speed: 94.5 mph ┃┃ 8 12:00:38 72.1 mph 4.5s ┃
┃ Best Lap: 3.9s ┃┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Status: Pass #12 │ Session: 5m 23s │ Cars Seen: 3 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
# Clone the repo
git clone https://github.com/mtxmiller/hotwheels-portal.git
cd hotwheels-portal
# Set up Python environment
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# Run the dashboard
python dashboard.py- Python 3.10+
- macOS, Windows, or Linux with Bluetooth Low Energy support
- Hot Wheels id Race Portal (Model FXB53)
- Hot Wheels id cars (with NFC chips)
| Command | Description |
|---|---|
python dashboard.py |
Live dashboard with speed & lap tracking |
python race_mode.py |
🏁 Lap Race Game - compete for best times! |
python portal_app.py |
Detailed event monitor with car data |
python scanner.py |
Scan for BLE devices |
python monitor.py |
Raw event monitor for debugging |
A competitive game mode where players race to complete laps:
- Select lap count (5, 10, 15, or 20 laps)
- 3-2-1 countdown to start
- Real-time lap tracking with best/worst comparison
- Results screen with full breakdown
- Leaderboard to compete with friends!
import asyncio
from hwportal import HotWheelsPortal
async def main():
async with HotWheelsPortal() as portal:
info = await portal.get_info()
print(f"Firmware: {info.firmware_version}")
print(f"Serial: {info.serial_number}")
# Get notified of events
portal.on_event(lambda e: print(f"Event: {e}"))
await portal.start_monitoring()
await asyncio.sleep(60)
asyncio.run(main())We've fully reverse-engineered the BLE protocol! See PROTOCOL.md for details.
Key discoveries:
- Device advertises as
HWiD - 3 BLE services for auth, data transfer, and control
- Car detection via NFC UID (6 bytes)
- Speed data as IEEE 754 float32
- Full NDEF records with Mattel car IDs
hotwheels-portal/
├── hwportal/ # Python library
│ ├── __init__.py
│ ├── constants.py # BLE UUIDs
│ └── portal.py # HotWheelsPortal class
├── dashboard.py # Live terminal dashboard
├── portal_app.py # Event monitor app
├── scanner.py # BLE scanner
├── monitor.py # Raw event monitor
├── PROTOCOL.md # Protocol documentation
└── requirements.txt
- BLE connection and event monitoring
- Car detection (NFC UID, serial)
- Speed tracking
- Live dashboard with speedometer
- Lap race game mode with leaderboard
- Persistent car database
- Car collection/garage view
- Achievement system
- Car name lookup from Mattel ID
We'd love your help! Here's how:
- Got a Portal? Run the tools and share interesting findings
- Know BLE/NFC? Help decode remaining protocol mysteries
- Want features? Check the issues and submit PRs
# Run the monitor and capture events
python monitor.py > my_events.logMattel discontinued the Hot Wheels id app on January 1, 2024, leaving thousands of Race Portals as paperweights. This project aims to restore functionality through reverse engineering, letting Hot Wheels fans continue to enjoy their hardware.
If this project helped bring your Hot Wheels Portal back to life, consider supporting development:
- ⭐ Star this repository
- 💖 Sponsor on GitHub
- 🐛 Report issues and suggest features
MIT License - see LICENSE for details.
This project is not affiliated with Mattel or Hot Wheels. It's a community effort to restore functionality to discontinued hardware. Hot Wheels is a trademark of Mattel, Inc.
