Results

The platform is assembled end to end. This page records what works and what is still unverified.

Working end to end

StageStateChapter
ESP32 firmware notifies the 9-channel GATT characteristicimplementedSoftware
Backend subscribes over BlueZ and parses frames per characteristicimplementedC++ backend
Frames broadcast to the dashboard over WebSocketimplementedReact dashboard
Every frame persisted to InfluxDBimplementedInfluxDB storage
Grafana reads InfluxDB for historyimplemented, dashboards provisionedGrafana
All four services start with one commanddocker compose up -dDeployment

Unavailable channels are handled rather than sent: the firmware writes 32767.0f and the backend drops it, so a missing sensor does not corrupt the stream.

What is not recorded

The repository contains no measurement data, so these are unknown:

  • end-to-end latency from sensor read to browser paint
  • sustained notification rate and packet loss over a real BLE link
  • signal quality of the ECG and respiration channels
  • backend throughput ceiling, that is frames per second written to InfluxDB
  • battery life of the wearable

hardware/README.md also states that the sensor front end is not finalised, so signal-quality figures would not be meaningful yet. See the outstanding hardware list in the Hardware chapter.