Jubahed Qayum’s Status Report: 10/05/2024

PERSONAL ACCOMPLISHMENTS
  1. Backend database setup (6h): I spent most of the week learning how to use SQL more robustly (this is the querying language for SQLite). I think I’ve gotten pretty good with it! SQLite comes pre-installed on macOS so I messed around with creating tables, storing data, querying data, and general analytics (like aggregation, JOIN / WHERE / HAVING clauses), as well as style guidelines. This allowed me to solidify the app database backend on Android Studio and input those queries into it. I did run into a challenge with Alex of potentially migrating to a different framework outside of native Android Studio, but I’ll build on this more later.
  2. Design Review Slides / Presentation (5h): I worked as part of the team to build finishing touches on the design review slides, as well as rehearsing for a few hours and improvising changes along the way to make sure my presentation went as smoothly as possible!
  3. Mandatory Design Review Feedback Meeting (2h): I went on Monday to the Design Review meeting and presented + gave feedback to other groups that presented. I found it very valuable that the audience seemed to agree that the use of bluetooth / solely-Android reliant database+compute without cloud services was a good idea in this project! It really affirmed the research I did last week. I missed the Wednesday meeting and didn’t do much work on Thursday sadly, but I was feeling ill, and I contacted the course staff about this.
Progress
  1. Alex and I discussed the potential of migrating our app framework to Flutter, rather than purely Android Studio, because of its more cross-platform agnostic features. However, for the purpose of backend, it doesn’t put me too behind, as the concern for me is less about writing code and more about the general data storage and retrieval ideas (which I have solid). I would have to take some time aside to learn Dart, however, if we do this change, but this should not take me long. I still feel like we’re in a good place here.
Next week task & goals
  1. Alex and I will be touching base frequently throughout next week to finalize the framework we will choose for the frontend and backend components, as well as how they will integrate together. I want to start unit testing the HC-05 bluetooth module, but this will require it to be delivered first. This will allow me to see what it’s like receiving real-time data (even if it is junk for now) so Alex can start testing the AnyChartAPI. We have a lot to do this week!

Jubahed Qayum’s Status Report: 9/28/2024

Personal Accomplishments
  1. MCU Refinement (2h): While in last week’s update I mentioned using Arduino for the controller, after discussing with my team members and learning more about the STM32 ecosystem (more specifically about its compatibility with Arduino modules / bluetooth), we decided to pivot that MCU. It’s nice because these are a lot more powerful than Arduino’s, but still relatively simple to write code for and deploy to.
  2. Design documentation, slides (8h): I spent the bulk of my week working on the design presentation slides, as well as relevant diagrams that went into that slideshow. This involved a variety of subtasks, namely:
    1. Backend app information: I did some research into various database management systems that would be relevant for our application. Originally, I wanted to check out DBMS’ like PostgreSQL, as it is very popular in the open-source community, and I think it would be a good learning experience to dive deeper into it. However, after filtering our device and app use cases down further, I realized that we would want to avoid an internet-connection required system. All computation should only happen on the STM32 ARM core (mostly for motor vibration controls), or the app (data store and analytics). With this in mind, I shifted my focus toward looking into app-embedded DBMS’ that worked best with Android Studio, and SQLite seemed to be the best option. Plus, we don’t intend to do any crazy workloads beyond bulk data store and retrieval on a time-bound (for displaying on charts), so SQLite is more than enough.
    2. Block diagram slide
    3. General slide tidying, rehearsal, prep (I am the student presenting the design documentation this week)
  3. Mandatory lab meetings (4h): Meeting with Jim and Tjun Jet, discussing with Josh and Alex on future steps toward integration.
Progress
  1. I’m on track accordingly to my GANTT Chart. I didn’t add this task to the chart, but I did spend some time looking into Kotlin. This is because I didn’t realize initially that Android Studio used it. I haven’t worked with this language / framework before, so I have some more learning to do.
next week tasks & goals
  1. Work with Alex to build first run of Android app: more specifically, set up SQLite backend
  2. Look into Bluetooth modules for STM32 and how they connect with Android. This video seemed really useful and relevant for our project, so I will dive deeper into this. At the same time though, I will probably work with Josh to at least get data to send over a wire at the start. We will move to wireless over time, that is less important than data send / receive and data storage.

Jubahed Qayum’s Status Report for 9/21/24

Personal Accomplishments:
  • MCU Platform Research (3h): I spent around 3 hours researching for potential platforms regarding the micocontroller the team should use for data collection and sensor readings. I came to the conclusion that we should use 1 of 3 platforms for data:
    • Arduino: This is likely what would be best for our device prototype, as it is the easiest to set up, gather readings, and basic compute.
    • Raspberry Pi: This is a very strong option and allows for significantly more compute. It may make it easier to communicate wirelessly, should we focus on that later beyond MVP.
    • ESP32: Probably the best option of the three, due to reduced power and better IoT capabilities than the Arduino. However, this is more complex to setup.
    • Based on these, I narrowed down to starting with the Arduino. It seems totally enough to run the tasks we are asking of the controller (send data to mobile device every few ms or so, and alert for over-exertion)

This video demonstrates that Arduino can actually reliably communicate over bluetooth . This makes me feel like it should be OK for us to stay on that platform for the foreseeable future of the project.

  • Mandatory Lab Meetings (4h): Listening to other groups helped me narrow down ideas regarding future planning and potential improvement plans (I didn’t think about the ESP32 until another group mentioned it). It was also valuable receiving feedback from other students.
  • Proposal presentation (5h): I spent a lot of time with Alex breaking our project future down. This went into making the GANTT chart (including making it as functional as possible, modifying it over time to make it more precise) and integrating it into the slides. I intend this to be a living chart and change with agility throughout the project as its needs evolve.
Progess:
  • I’m on schedule. This week, beyond the team tasks we wanted to work on, I did what I wanted to do. This should keep me ready to start integrating data collection into the prototype, with the ability to read and display sensor readings, within the next 2 weeks.
Next Week Tasks and Goals:
  • I’ll have to continue MCU research into the next week. This is because of the fact that for our MVP / initial prototype, communication is less of a factor. Therefore, as we start to build the device together and potentially go beyond MVP, we may have to worry more about compute capabilities on the controller.
  • I also want to try to start the assembly of first demo with actual sensor readings. Josh has been researching the sensor, and Alex has a good mock-up of the physical design. All that is left is integration via the MCU.