
Brailed
A phone-mounted Braille keyboard and agentic controller for private, accessible phone use.
Read the full build story
What I built
Six capacitive touch sensors capture Grade 1 Braille chords, and a separate Send button makes text entry reliable. An ESP32 chord state machine sends input over a custom BLE GATT service, while an OLED returns connection state, captions, and command results.
The problem I worked through
The device had to turn simultaneous touch inputs into one unambiguous character, keep the hardware compact enough to mount behind a phone, and prevent an AI-generated command from directly triggering an unsafe phone action.
How I improved it
I separated chord capture from submission, added explicit BLE characteristics for each message type, and routed Jac byLLM output through structured capability nodes and an allow-list before the Android companion app executes an action.
Tools: ESP32, C++, capacitive touch, BLE GATT, OLED, Android, Kotlin, Jac, byLLM, Fusion 360


















