Rohaib’s Status Report for 10/10

This week, I focused on refining the desktop app UI design and software documentation for the design report (adding control flow diagrams + high level architecture). Building on the BLE research and interface scaffold, I organized the Python/PySide6 interface around live upper and lower-back readings, baseline calibration, and adjustable angle and duration thresholds. Settings changes require an MCU acknowledgment, while feedback decisions remain on the wearable.

The app is currently being tested with simulated angle readings (randomly generated), including individual and combined regional deviations. These scenarios let me check the live displays, calibration controls, and settings acknowledgment flow before connecting to hardware. I also refined the proposed guided calibration process, which will let users trial their thresholds by turning left, turning right, and stretching backward. With the updated single-motor design, the desktop will identify which back region exceeded its threshold.

My progress is on schedule with the software design and initial prototype. The current implementation supports continued UI testing while preparing for hardware integration. Real BLE communication and E2E performance still need to be tested (but our timeline for this fits into the first week of November).

Rohaib’s Status Report for 10/3

This week, I began implementing the desktop app using Python and PySide6, focusing on the Bleak interface scaffold and UI design. I separated wearable communication from the interface so the app can run on simulated MCU readings (while we are working on our hardware development). The scaffold covers connection, notifications, settings writes, and disconnection. I also implemented simulated settings acknowledgments, ensuring changes are only marked as applied after a matching response. Feedback decisions will remain on the MCU so reminders work independently of the app.

The UI includes a mocked 3D posture visualization, separate upper/lower regional angle readings, calibration, and configurable feedback thresholds. I also added SQLite session summaries and initial tests for data validation, acknowledgment handling, and persistence. Real BLE communication has not yet been tested.

I am on schedule with the initial software prototype. Next week, I plan to finalize the MCU message format and BLE configuration, document these decisions in the design report, and prepare the app to receive hardware data.

Rohaib’s Status Report for 9/26

This week, I worked through our IMU orientation calculations and documented a simplified approach for the design presentation. I clarified how VQF’s quaternion output can be converted into a rotation matrix to calculate each sensor’s forward/backward tilt. Comparing these angles at T3, T12, and L5 gives us upper and lower regional angle differences, which we then compare against the user’s calibrated baseline. I also outlined the calibration sequence and clarified why a stationary neutral position is sufficient when the sensors have known mounting directions (accelerometers output proper acceleration, and so in this ideal case the z-component would be +g).

Also, I expanded last week’s desktop app plan into a software block diagram showing the BLE interface, live posture display, settings manager, history view, and SQLite database. I also specified the proposed message formats in both directions. The MCU sends regional deviations, timestamps, and haptic activity through posture_update messages. The app sends angle and duration thresholds through set_thresholds, and the MCU confirms changes through settings_ack. This makes the interface concrete enough to begin development with simulated messages while keeping angle calculations and haptic decisions on the MCU.

I am on schedule with the software design work. Next week, I plan to begin the desktop app prototype using simulated MCU messages, focusing on packet parsing, live regional angle displays, and SQLite logging. I will also work simultaneously on the design report sections regarding the BLE communication and IMU orientation calculations.

Rohaib’s Status Report for 9/19

This week, I worked on the desktop app design and how it will communicate with the wearable. I outlined the main features: live posture readings, calibration, feedback settings, and session history. The proposed stack is Python with PySide6 for the interface, Bleak for BLE, and SQLite for local storage.

I also drafted the data the MCU should send to the app, including upper/lower angles, posture states, and device status. Settings changes will require an acknowledgment from the MCU. Feedback decisions will stay on the MCU so reminders still work when the app disconnects.

I am on schedule as the initial software plan is outlined, and I can start building with simulated data while the hardware is being developed. For next week, I need to agree on the initial MCU to app data format with Carys and then finalize all related design documentation for the software components + BLE communication.