A SwiftUI + embedded hardware project for the Spring 2026 UW Madison BME Design Smart Walker project. The iOS app connects via BLE to three sensor modules mounted on a walker — two ESP32 load cells (feet) and a Raspberry Pi + TI AWR1843 mmWave radar — to display live weight, distance, and walking speed data. Trials can be recorded per patient and exported as CSV.
- Real-time weight (left/right foot), distance traveled, and walking speed from 3 BLE sensor modules
- One-tap start/stop with data captured at 200ms intervals
- Live elapsed timer (MM:SS.cc) during trial recording
Add patients via a popup picker; trials are organized per patient
- View past trials with summary stats (duration, distance, avg speed, avg weight)
- Speed chart — line chart showing walking speed over time
- Weight distribution chart — dual-line chart (left/right foot pressure) over time
- Delete trials from the detail page (trash icon with confirmation)
- Share trial data as CSV via the iOS share sheet for further analysis
- All patient and trial data saved to JSON, survives app restarts
- BLE manager identifies devices by name and reconnects automatically on disconnect
- Intuitive BLE connection status indicator
- Simulation mode — toggle simulated sensor data for testing without hardware
Smart Walker/
├── controller/
│ ├── swLeftFoot.ino # ESP32 left foot load cell → BLE
│ ├── swRightFoot.ino # ESP32 right foot load cell → BLE
│ ├── swRadar.py # Raspberry Pi AWR1843 radar via USB → BLE
│ └── AWR1843config.cfg # TI mmWave radar configuration
│
└── Smart Walker/ # iOS app (SwiftUI)
├── Smart_WalkerApp.swift # App entry point, injects dependencies
├── ContentView.swift # Main dashboard (telemetry, trials, patient selector)
├── PatientPickerSheet.swift# Patient selection popup sheet
├── TrialDetailView.swift # Trial summary, charts, CSV export
├── BluetoothManager.swift # CoreBluetooth multi-connection manager
├── DataStore.swift # Patient/trial persistence (JSON)
└── Models/
├── Patient.swift # Patient data model
└── Trial.swift # Trial + DataPoint models, CSV export
- Radar data parsing based on AWR1843-Read-Data-Python by Ibai Gorordo (MIT License)








