Project Overview
The Sunrise Medical Empulse R90 is an under-seat power-assist unit for manual wheelchairs. The stock control interface is intentionally minimal: speed increase, speed decrease, stop, and wheel actuator control. A replacement remote was quoted at approximately $1,000, which motivated a lower-cost interoperability prototype using commodity embedded hardware.
This project tested whether an ESP32-S3 handheld controller could communicate with the R90 over Bluetooth Low Energy, issue remote-equivalent control actions, and display useful status feedback while leaving the R90 service unit physically untouched.
Successful Test Result
The custom ESP32-S3 controller successfully connected to the Empulse R90 and controlled the unit during a live demonstration. I tested the system while seated in the wheelchair, demonstrated the controller functions, and used the R90 to travel up the street without observed controller errors during the recorded demonstration.
Live Controller Validation
The demonstration moved the project beyond protocol theory. The handheld controller was able to communicate with the R90 and produce real motion from the power-assist unit during a short functional test.
Wireless-Only Integration
The R90 was not physically opened, modified, probed internally, rewired, or reflashed. The prototype stayed on the wireless communication side of the interface.
Next Engineering Step
Remaining work includes enclosure refinement, longer-duration testing, battery-life validation, improved fault handling, and conservative review before any practical mobility use.
Problem and Objective
Problem
The stock R90 controller is a compact wireless remote with a small number of discrete controls. Replacement cost and limited feedback created a strong reason to investigate whether a transparent, low-cost handheld controller could be prototyped using commonly available embedded hardware.
Objective
Build and test a personal ESP32-S3 controller prototype that can locate the target R90, establish a BLE connection, transmit remote-equivalent control actions, handle push-button input, and show connection/status feedback on a small OLED display.
My Role
I handled the application-layer protocol investigation, controller hardware plan, ESP32-S3 firmware development, OLED integration, button mapping, BLE scan/connect logic, live testing strategy, and project documentation. The work combined embedded firmware, Bluetooth debugging, physical controller layout, and safety-focused command sequencing.
BLE Protocol Review
The R90 communication path was investigated from the application layer. The companion application indicated a Nordic UART Service (NUS)-style BLE interface using readable text-style messages rather than opaque binary packets. That made the controller path closer to a BLE serial-console interface than a custom low-level radio protocol.
Implementation-specific command strings and reproduction details are intentionally summarized here. This page is meant to document engineering scope, validation, and system integration work without publishing a step-by-step assistive-device controller recipe.
Service Discovery
The ESP32-S3 scans for nearby BLE devices, identifies likely R90 targets, connects, discovers the relevant service and characteristics, and subscribes to notifications where available.
Remote-Equivalent Controls
The first-pass controller focused on the basic stock remote control set: speed adjustment, stop, and wheel actuator behavior. Administrative or configuration-style commands were kept out of the user-facing control workflow.
Notification Handling
Incoming messages are treated as completed status lines. The firmware parses selected feedback and displays useful state information on the OLED and Serial Monitor for debugging.
Technical Summary
BLE Scan and Connect Logic
The controller scans for nearby BLE devices, filters for likely R90 targets, connects through the ESP32 BLE stack, discovers the expected service structure, enables notifications, and requests status after connection.
Discrete Command Control
The physical buttons map to remote-equivalent actions. Button input uses debounce logic and guarded transmission so control actions are only sent after a confirmed connection state.
OLED Status Feedback
A small SSD1306 OLED provides local status feedback such as boot state, scan state, connection state, last action, and selected notification responses. OLED initialization is non-fatal so BLE testing can continue even if the display is disconnected.
Safe State Handling
The firmware avoids sending motion-related commands before connection, preserves a dedicated stop action, applies button debounce, and treats link loss as a separate state instead of silently continuing as if connected.
Prototype Architecture
Handheld Controller
- ESP32-S3 development board used as the wireless controller core
- Four physical buttons for remote-equivalent control actions
- SSD1306 OLED display for local feedback
- Battery-powered handheld layout planned around a small perfboard prototype
- USB access preserved for firmware flashing and serial debugging
Design Boundary
The public portfolio version intentionally avoids publishing an exact wiring recipe, command table, or controller clone procedure. The page focuses on the engineering method, validation milestone, and system-level result rather than reproduction details.
Key Lessons
Application-Layer Protocol Review
Useful communication details can sometimes be identified without touching the target hardware. In this case, the key discovery was the readable message behavior over a BLE serial-style interface.
Human Interface Design
A low-cost controller still needs clear physical controls, debounced input, display feedback, safe state handling, and conservative testing. Hardware simplicity does not remove the need for careful sequencing.
Accuracy and Safety Matter
Assistive and mobility-related systems require especially conservative wording and testing. This project is presented as a successful interoperability prototype, not as a certified replacement medical-device controller.
Project Scope and Disclosure
Important: This was a personal prototype and interoperability investigation. It is not a commercial product, not a certified medical device, and not affiliated with, endorsed by, or sponsored by Sunrise Medical. Empulse R90 is a product of Sunrise Medical.
The prototype did not modify R90 hardware or firmware. Any real-world mobility use would require conservative validation, risk review, and compliance work far beyond a student prototype or portfolio project.
Related Work / Contact
This project connects to my broader embedded systems, BLE firmware, sensor integration, mobility-interface, and human-interface hardware work.