On-device AI — fully offline
CAREC — Smart Wheelchair Safety
Open-source AI safety system for electric wheelchairs — real-time obstacle detection with directional alerts, built for children and designed to run entirely offline.
Built as a real embedded accessibility project combining edge AI, modular firmware, and caregiver-focused UX.
Sub-200ms obstacle-to-alert
Free iOS & Android app
Problem
Children in electric wheelchairs — especially younger users still building spatial awareness — can struggle to judge distance to obstacles in time to stop safely.
The safety system must run entirely on-device with no cloud dependency, produce alerts in under 200ms, survive hours of continuous use, and attach without modifying the original wheelchair.
System Architecture
The architecture is centred on a four-stage pipeline with clear module boundaries — motion gate, AI inference, distance estimation, and alert output — so each layer can be validated and extended independently.
Detection Pipeline & Alert Zones
Four-stage pipeline: motion gate → AI vision → distance assessment → alert decision, with three proximity zones (CRITICAL / WARNING / CLEAR) mapped to distinct beep patterns, display colours, and Bluetooth log events.
Three-Zone Proximity Model
CRITICAL (0–60 cm, fast beeps, red), WARNING (60–100 cm, slow beep, yellow), CLEAR (100 cm+, silence, green) — graded urgency without alert fatigue.
Mobile & Smart Home Integration
Free iOS/Android companion app for live status and event logs via Bluetooth; optional Home Assistant and Node-RED integration for caregiver notification dashboards.
Hardware & Software Stack
Detection & AI
- On-device AI inference (no cloud)
- Computer vision — object detection
- Motion gating (optical flow, stationary suppression)
- Bounding-box proximity heuristics
- Confidence threshold filtering
Connectivity
- Bluetooth 5 (mobile app, event logging)
- WiFi 2.4 GHz (OTA firmware delivery)
- MQTT (telemetry, Home Assistant topics)
- Home Assistant + Node-RED integration
Alert & Interface
- Three-zone directional audio (beep patterns)
- Color-coded visual display (RED / YELLOW / GREEN)
- iOS + Android companion app
- Remote configuration via Bluetooth
Development & Delivery
- C++17 — 7 modular header-only firmware modules
- Python 3.11 — host tooling and integration tests
- GitHub Actions CI/CD — build validation on every push
- Unit + integration test suite
- MIT open-source license
| Detection approach | On-device AI object detection — no cloud |
|---|---|
| Alert latency | < 200ms from detection to audio output |
| Proximity zones | CRITICAL (0–60 cm) / WARNING (60–100 cm) / CLEAR (100 cm+) |
| Detection accuracy | 85–92% in indoor environments |
| False positive rate | < 5% (motion gate + confidence threshold) |
| Battery runtime | 50+ hours continuous operation |
| Mobile app | Free iOS + Android (Bluetooth, live status + logs) |
| Firmware updates | WiFi OTA — automatic, no cable required |
| Connectivity | Bluetooth 5 + WiFi 2.4 GHz |
| Mounting | Non-invasive tube clamp — removable in 2 minutes |
| License | MIT open source |
How It Works
Motion gate filters idle frames
When the wheelchair is stationary, optical flow detects no motion and the inference pipeline is skipped — conserving processing budget and eliminating false positives from a static room.
On-device AI identifies objects
When the wheelchair moves, the AI accelerator runs object detection on the camera frame in real time. No cloud call, no internet required — inference completes in ~76ms on the local NPU.
Distance zone is classified
The apparent size of detected objects is used to estimate proximity. Objects are classified as CRITICAL (0–60 cm), WARNING (60–100 cm), or CLEAR (100 cm+) before the alert step.
Alert fires and event is logged
The appropriate beep pattern plays and the display updates within 200ms of detection. The zone event is logged over Bluetooth so the caregiver's mobile app stays current in real time.
Build Resources
Supporting artifacts for architecture review, collaboration, and follow-up implementation planning.
Architecture diagram
Open linked artifact
System specification
Open linked artifact
Firmware API reference
Open linked artifact
Caregiver guide
Open linked artifact
GitHub repo
Open linked artifact
Firmware source
MIT licensed — firmware/main/ contains all 7 modules.
Open resourceFirmware API reference
Public API for all 7 modules with types, function signatures, and hardware pin notes.
Open resourceSystem specification
Full functional and non-functional requirements.
Open resourceArchitecture decision record (ADR-001)
tf_module_ops vtable migration plan and rationale.
Open resourceCaregiver guide
Non-technical guide for caregivers covering alert interpretation and pre-use checklist.
Open resourceDeveloper setup guide
ESP-IDF environment, Python venv, build and flash instructions.
Open resourceNeed help building or extending a smart-device prototype?
Get support with architecture, firmware structure, validation, and production-minded IoT design.