Overview
This team project began with a client who experienced limited mobility due to an amputated leg and rheumatoid arthritis. We focused on reducing the physical effort and number of steps required for common mobile-device interactions while keeping the product simple, reliable, and easy to understand.
The resulting prototype connected three large physical switches to an ESP32, transmitted their inputs over Bluetooth Low Energy, and mapped them to configurable actions in a React Native application. I served as project coordinator and took primary ownership of the physical system, electrical integration, and mobile application.
Designing around the client
We translated the client's needs into concrete engineering priorities: low activation force, clear feedback, reliable operation, wireless communication, and a compact enclosure. Early ideation produced a more complex autonomous product, but feasibility analysis showed that it did not fit the available time, resources, or technical risk. The team deliberately reset around the underlying accessibility need and selected the macro-pad concept.
That pivot improved the project because it replaced feature-driven ideation with a needs-first design process. Each major decision—from the number and size of controls to Bluetooth connectivity—could be traced back to reducing interaction effort and creating a system the client could operate consistently.
Hardware and enclosure
I designed the complete physical assembly in Autodesk Inventor, selected the ESP32 and Cherry MX Blue switches, developed the electrical circuit, and completed the soldering and wiring. The ESP32 provided a compact embedded platform with built-in Bluetooth connectivity, while the large switch surfaces created forgiving targets for users with limited dexterity.

The enclosure was designed to contain and protect the electronics while maintaining straightforward access to the three controls. Hardware validation covered button response, signal consistency, and practical ease of use. Testing led us to refine voltage thresholds and add input debouncing rather than treating occasional activations as unavoidable prototype behaviour.
Firmware and mobile application
I contributed to the ESP32 firmware that sampled the physical inputs and transmitted button events over Bluetooth Low Energy. I also developed most of the React Native application, which received those events and translated them into the corresponding user actions. Together, these layers formed a complete path from physical activation to digital output.
The firmware and application were organized into modular functions so input handling, wireless communication, and macro behaviour could be tested independently. This reduced debugging ambiguity across a system that combined mechanical, electrical, embedded, and mobile-software components.
Outcome and reflection
The team delivered a working prototype that demonstrated reliable physical input, wireless transmission, and configurable mobile actions. My contribution centred on making those subsystems function as one coherent product: coordinating the schedule, designing and assembling the hardware, supporting firmware development, and implementing most of the mobile experience.
The most important engineering lesson was the value of evaluating feasibility against the user's actual problem before committing to a concept. By changing direction and narrowing the design around accessibility, we recovered from an overly ambitious initial idea and produced a functional, testable system within the project constraints.
