Sharon’s Status Report for 10/26/24

WORK ACCOMPLISHED:

Bluetooth Functionality and Raspberry Pi Integration: This week, I focused on integrating Bluetooth functionality with the Raspberry Pi, which involved several setup challenges. Without an HDMI cable to connect the Pi to a monitor, I had to set it up headlessly, reimaging it with a specific network to enable SSH access. Once connected, I configured the Pi’s Bluetooth by enabling and testing it, then moved to set up Bluetooth on the mobile app. This required installing specific libraries and creating a BLE manager, which allowed the app to discover and connect to the Pi. Since Expo Go doesn’t support BLE, I had to split the native code for both Android and iOS, setting permissions accordingly.

On the Pi, I established a systemd service to automatically enable Bluetooth at boot, ensuring the Pi is always discoverable. After extensive testing, I successfully confirmed the app could reliably connect to the Pi. This milestone establishes a solid Bluetooth connection foundation, preparing us for future functionalities, including real-time controls.

Backend Preparation and Testing Setup: To prepare for backend integration, I continued organizing code for modularity and responsiveness, particularly for features that will connect to backend functionality. While full backend development remains pending, I focused on structuring the app’s Bluetooth connections and streamlined code for compatibility with the upcoming Raspberry Pi and mobile app control interfaces. I also started to make the API endpoints so that when my teammates are ready to connect everything system wise, they have an app to test with and connecting these two systems.

Raspberry Pi Setup: I worked on setting up the Raspberry Pi and making sure that the Github repository was on the Pi so that all my teammates can work on it without disrupting each other’s work and also be able to commit their work to Github from the Pi and so that there wouldn’t be any lost work and we are all able to see each other’s work on the Pi as well. I think something we could possibly setup is remote ssh on the Pi since only some team members need physical access to the Pi and others like me only need the remote capabilities of using the Pi to test software wise.

Code Refactoring: With this setup complete, the app is functionally ready for initial Bluetooth control testing, even though backend development is ongoing. I refined various elements across the app, particularly responsiveness and UI adjustments to enhance cross-device consistency. A systemd service ensures Bluetooth functionality on the Pi is seamless, and connection flows on the app are now stable. I also spent time refactoring code for future maintainability and responsiveness improvements.


PROGRESS:

Overall, I’m on track with Bluetooth integration, and the core Bluetooth connection functionality is operational. I overcame challenges with the headless Pi setup, expanding skills in network-based configurations and system services. While backend work has been delayed and I have been working on it still, foundational steps for future app and Pi interaction are complete, including BLE manager setup and systemd service automation. This enables us to move forward with Bluetooth-based features as scheduled in our Gantt chart. My next steps focus on backend setup and enhanced functionality for a polished user experience.


NEXT WEEK’S DELIVERABLES:

Next week, I aim to complete the following:

  • Finish setting up the API endpoints for button control and defining the acceleration curve as well by speaking with my teammates.
  • Once my teammates have been able to control their specific parts, I need to set up WebSockets and the backend on the Raspberry Pi to get the streamed data onto the app.
  • There’s some things that still look a tiny bit off on different screen sizes so need to make more dynamic.
  • Continue improving the visuals and animations for a more polished user experience.

Leave a Reply

Your email address will not be published. Required fields are marked *