PERSONAL ACCOMPLISHMENTS
- Lab meetings (4h): During our schedule lab meeting hours, I chatted with Alex about finalizing design decisions regarding the software framework of our project. I also learned how to make and flash code to the ESP32, as this would be necessary for building the Bluetooth APIs for both ends of the project to communicate with each other.
- Interim Demo Prep (19hr): I spent a large chunk of my week figuring out the ins and outs of ESP32 bluetooth connectivity. I created a simplified API for the ESP32 to do a variety of operations, including appending data to on-device queue, scanning and pairing with Bluetooth devices, and reading / writing from serial Bluetooth buffer. I also created a FSM for the device to follow a variety of strict states with respect to Bluetooth operations, (idle, collect data from sensors, send buffer to serial Bluetooth) where transitions are initiated by the smartphone app. This API was passed on to Josh to integrate his ADC interface onto it.
Speaking of the smartphone app, I spent most of the week developing the backend for the app. This included utilizing the Bluetooth connectivity permissions on my Android smartphone to sync with the ESP32, to initiate an ACK system with the ESP32 API to start / stop data collection and control the ESP32’s FSM, and a simple frontend for displaying this functionality for the demo. This also includes committing data collected from the ESP32 to permanent storage on the phone via a working SQLite instance.
PROGRESS
- The ESP32 code is fully fleshed out and complete. The Android app backend is complete.
NEXT WEEK TASKS & GOALS
- Begin verification and validation tests. Sync my backend implementation with Alex’s frontend elements to make the process more user-friendly. Help Alex set up AnyChart API queries for grabbing data from the database.

Android Studio Development: Modified mobile app codebase to conform to the Figma design docs I created, made significant progress with regards to the “Threshold Settings” updating functionality within the app (can now confirm updates and throw exceptions if the update was not processed) and reflect threshold changes on the home page. Additionally, the session start and stop timer was implemented successfully and calibration sequence frontend screens have been implemented and their functionalities will be connected to the wearable device soon.