Inspiration
Every road trip has that one person riding shotgun who actually keeps the driver sane — warning them before a sharp turn, calling out when they're going too fast, reading the directions aloud so the driver never has to glance at their phone. We wanted to build that co-pilot in hardware. The name came first, honestly. Passenger Princess — the friend who sits in the front seat and just vibes while you drive? We made your friend useful! The idea was simple: what if your car could talk back to you, hands-free, eyes-on-the-road, in real time?
What it does
Passenger Princess is a dual device smart driver co-pilot mounted on both your car and wrapped behind your ear. It uses ESP32-S3s paired with MPU-6050 IMUs to monitor your driving in real time and relay navigational cues and safety alerts directly through your phone and dashboard— no screen-glancing required.
- Detects driving events — hard braking, sharp turns, aggressive acceleration, and lane changes using a trained on-device model.
- Phone dashboard — a WebSocket-powered server sends audio signals to phone speakers.
- Dashboard module connects with earpiece via ESP-NOW to compile MPU-6050 data from both our wearable device and dashboard movement.
How we built it
Our project consisted of two major units: our wearable earpiece and our dashboard unit. We began with designing and wiring all of the electronics mostly via I2C buses.
Dashboard Unit:
- ESP 32-S3: Handles all event signal recognition by compiling data from local MPU-6050 and received MPU-6050 data via ESP-NOW. When combined data indicates a significant event has occurred, the unit uses the websocket server to send stored audio files to remote devices and triggers coded animations to OLED screen.
- MPU-6050: Collects accelerometer and gyroscope data.
- LCD OLED 0.96'': Displays pre-coded animations.
Earpiece Unit:
- ESP 32-S3: Communicates via ESP-NOW to send dashboard ESP32 all of the earpiece's MPU data.
- MPU-6050: Collects accelerometer and gyroscope data.
The dashboard ESP32 hosts a WebSocket server. The phone connects to it, receives JSON payloads, and a vanilla JS frontend handles stereo audio panning via the Web Audio API. We integrated custom mp3 files created through ElevenLabs and stored through the ESP32 LittleFS storage system. This allowed for realistic voices coming from a higher quality speaker.
After designing the system architecture for our electronics and getting all of the communication working, we used Fusion and OnShape to CAD housing for our dashboard unit, a simple ear piece that could hold our MPU-6050, and develop other misc housing/structures.
Challenges we ran into
Early MPU-6050 sensor data was erratic and flimsy due to cold solder joints. To resolve this issue, we resoldered the MPUs which re-established connection. Our print-in-place hinge box for the dashboard mount warped and fused shut due to tight tolerances. With minimal time to reprint, we had to manually adjust the part using a hacksaw and a jobby knife to surgically seperate the hinge.
Accomplishments that we're proud of
Successfully synchronized two separate hardware units (dashboard and wearable) via ESP-NOW to create a unified sensor-fusion network that tracks both car and driver movement.
Bridged the gap between electronics and physical design by creating custom 3D-printed CAD housings in Fusion and OnShape that perfectly fit our MPU-6050 sensors and ESP32 components.
Developed a sophisticated alert system that uses an OLED screen for quick visual cues paired with hyper-realistic ElevenLabs audio via Web Audio API, effectively catching driver attention to correct behavior in real time.
Built a system that doesn't just log data but actively helps make the streets safer by providing immediate, actionable feedback during critical driving events like hard braking or sharp turns.
What we learned
WebSocket + Web Audio API is an underrated stack for real-time hardware-to-phone UX — no app install, no Bluetooth pairing, just a URL
What's next for Passenger Princess
Add a haptic motor for vibration cues — one buzz for left, two for right Package it properly: custom PCB, enclosure that clips onto car, rechargeable battery Explore integrating driver fatigue detection from the gyroscope data (steering micro-corrections slow down when drowsy)
Built With
- arduino
- autodesk-fusion-360
- elevenlabs
- esp32
- espnow
- javascript
- littlefs
- mpu6050
- onshape
- webaudioapi
- websocket
Log in or sign up for Devpost to join the conversation.