Skip to content
Back to Projects

December 15, 2025

EECS 473EmbeddedPCBESP32

Carte Diem

Carte Diem is a modular add-on system that retrofits smart functionality onto existing shopping carts without requiring infrastructure replacement. Our team designed a custom PCB centered around an ESP32-S3 MCU to enable indoor navigation via RFID tracking, real-time item tracking, and boundary alerts. The system also brings full self-checkout capabilities directly onto the cart, including barcode scanning, a touchscreen interface, integrated item weighing, and a payment scanner—allowing users to complete their entire shopping experience without visiting a checkout kiosk.

I led the development of the RTOS-based firmware, implementing system-level integration of sensors and communication, contributed to the PCB design, and was responsible for assembling and integrating the complete hardware system onto the cart.

The Cart

Modified shopping cart

We integrated the electronics onto a standard shopping cart using a custom 3D-printed enclosure that houses the PCB, battery, and supporting components, allowing for easy installation and retrofitting. A weighing platform is embedded at the base of the cart for real-time item measurement, while RFID scanners are strategically positioned both inward—for detecting high-value items—and outward—for scanning store-mounted anchors to enable indoor localization. The entire system is battery-powered and supports a full day of operation on a single charge.

Custom PCB

Custom PCB design

My friend and I designed a custom 4-layer PCB centered around the ESP32-S3, focusing on robust power distribution and system integration. The board supports multiple regulated voltage rails—stepping down from a 12.8V battery to 9V, 5V, 3.3V, and 1.8V—to power various peripherals and sensors. It includes screw terminals for reliable external connections, an onboard IMU for motion sensing, and a USB interface to a Raspberry Pi, which drives the touchscreen user interface. The PCB was designed in KiCad and manufactured through JLCPCB.

Interface

System architecture diagram

I developed the full embedded interface layer on the ESP32, implementing a FreeRTOS-based architecture to manage and coordinate multiple sensors, peripherals, and real-time tasks. This included designing task scheduling, inter-task communication, and reliable data handling pipelines for concurrent sensor inputs. I also built a custom BLE communication protocol to enable efficient, bidirectional data exchange between the ESP32 and a Raspberry Pi server, which drives the user interface. The system integrates sensing, processing, and communication into a cohesive real-time platform that supports responsive interaction and seamless coordination with the higher-level kiosk interface.

Project Video

link