Mailbox pairing system
← Back to Work GitHub →
Interaction Systems · Embedded Systems · 2024

Mailbox Pairing System

A proximity-based pairing system that replaces UI selection with physical interaction and LED-based feedback cues.

ESP32 BLE RSSI Embedded Systems Physical UX

Pairing physical devices is typically treated as a UI problem — users select from a list of device names. That interaction ignores physical context. If a device is directly in front of you, it should pair with you without navigating menus.

This system replaces selection-based UI with proximity-based interaction. Devices broadcast identity continuously, and a central node determines pairing based on signal strength. No screen, no list, no manual selection — spatial context drives system behavior.

Built at Tufts CEEO as part of the Smart Playground Initiative, the system uses a three-node ESP32 architecture: a mailbox node (interaction controller), a relay node (network coordination), and a plushie node (output device). I designed and implemented the full interaction logic and firmware across all nodes.

Wearable devices continuously broadcast identity data (MAC + RSSI). The mailbox scans and maintains a live model of nearby devices. On user trigger, it selects the device with the strongest signal and establishes a connection.

Broadcast → scan → select strongest signal → pair → send command

Once paired, the system shifts from discovery to interaction. The mailbox sends commands to the selected device, triggering LED-based feedback that communicates system state back to the user. These cues make pairing visible and legible without requiring a screen. A relay node manages message routing and keeps communication consistent across devices.

I designed both the interaction model and system behavior: RSSI-based selection, pairing logic, and the LED feedback system that communicates state to users. This included defining how users trigger pairing, how the system responds, and how feedback reinforces what the system is doing in real time.

The LED cues were critical to making the system understandable. I designed feedback patterns to signal scanning, selection, successful pairing, and active connection, ensuring users could interpret system state without ambiguity.

The networking layer was built on an existing CEEO framework, but all system behavior — how devices discover, select, pair, and respond — was designed and implemented by me. The system operates as a distributed architecture where each node has a defined role and communicates through structured commands.

I also developed and tuned the selection logic to handle real-world signal noise. This included signal averaging, thresholding, and stability checks to ensure that pairing behavior aligned with user expectations rather than raw signal fluctuations.

RSSI is inherently unstable. Devices at similar distances produce nearly identical values, and readings fluctuate even when nothing moves. Early versions of the system would occasionally select the wrong device or switch unexpectedly.

Solving this required designing for uncertainty. I introduced signal smoothing, minimum delta thresholds, and a stability window before confirming pairing. These constraints reduced erratic behavior and improved consistency.

The harder problem was aligning system behavior with user perception. Even when the system selected the “correct” device, it needed to feel correct. The LED feedback layer became essential in bridging that gap, making invisible system decisions visible and understandable.

Full interaction loop — wake, pair, select color, confirm, transmit

Refined form factor — smaller footprint, integrated camera for QR-based programming

Previous Project ← COMPONENTIZE
Next Project ROBOTIC CAFÉ →