Shize’s Status Report for April 29

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

I wrote and tested a new firmware that supports the receiving of large data packet in data mode. The new firmware enables whole-matrix update as well as Fram-defined moving pattern. I also added the password functionality into the firmware where user needs to send password first to program the matrix. The firmware will be further updated to support push button triggered interrupt to receive ble data. In doing so, the microcontroller doesn’t have to poll for ble data and therefore has less power consumption. I also participated in the team discussion of new hardware design.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

My progress is on schedule.

What deliverables do you hope to complete in the next week?

The firmware needs to be updated to accommodate software and I will also add support for push button and GATT for customization and battery measurement.

Team Status Report for April 29

What are the most significant risks that could jeopardize the success of the project? How are these risks being managed? What contingency plans are ready?

We are pushing toward a much more refined design in both software and hardware than the current MVP. There’s still plenty of work to be done integrating the user app and hardware. The user app is unfinished and the build of new hardware design is contingent on the arrival of new components, which we expect to arrive by May 4. These risks are managed by having the team working together more often than before and choosing shipping options that can arrive on time. Contingency plan is the current MVP.

Were any changes made to the existing design of the system (requirements, block diagram, system spec, etc)? Why was this change necessary, what costs does the change incur, and how will these costs be mitigated going forward? Provide an updated schedule if changes have occurred.

Lots of changes are made to the design of the system as we try to integrate the hardware with the soon to be finished user app. The ble firmware now uses data mode to receive about 750 bytes defining the display state of the LED matrix. The firmware now also requires user to send password to unlock the earring. On the hardware side, we are reducing the thickness of the earring by placing the battery and matrix both on top of the feather board and we plan to add a switch for turning on and off the system as well as a push button for receiving ble data packet so that the microcontroller doesn’t have to poll for data. (The push button is for power saving purpose). The software is under development to allow frame-defined moving pattern and ble data transfer between hardware and user app.

Please enumerate how you have adjusted your team work assignments to fill in gaps related to either new design challenges or team shortfalls.

Madi is working on the software and Shize keeps firmware updated to accommodate for software. The firmware now prioritizes software as it takes more work to develop the software and it’s easy to rework the firmware. The team discussed and agreed on the changes on hardware design and Saniya will assemble the new design once the parts are arrived.

Madi’s Status Report for April 29

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

This week I primarily focused on Bluetooth integration for our project. This initially involved familiarising myself with the Adafruit feather bluefruit library that enables the microprocessor to utilise BLE functions. I noticed that firmware code that had been developed utilising the bluefruit library was not equipped to handle large streams of data as it was requiring the feather board to operate in command mode as opposed to data mode. I worked with my team members to address this and develop a communication protocol that would allow large amounts of data sent from the mobile application to be parsed effectively and securely. I also looked into some alternate firmware libraries such as circuit python that would allow us to reduce unnecessary complexities and jargon our firmware code.

On the software side of things, this week I worked on developing the ble module using CoreBluetooth. I set up custom protocols for the manager,  peripheral and their respective delegates, as well as a central “Controller” class to control the relationships & communication between these modules.

Unit Tests for Bluetooth Integration:

This week I also started performing unit tests to evaluate the functionality of our bluetooth system. This first involved setting up my iphone in developer mode to enable me to run and test our application outside of the native xcode simulator. I am currently developing our BLE module in a separate project to the rest of the code to allow us to validate everything before it is integrated with the rest of our code. I have created a couple of quick mock views to initiate scanning for nearby peripheral devices, reading/displaying peripheral devices  & their services/characteristics, as well as connecting to and disconnecting from nearby peripherals. Thus far using these mock views within the BLE test module, I have been able to successfully recognise and connect to the Adafruit feather & read from its services. I am working with the rest of my team to develop custom services via GATT (Generic ATTribute Profile), to permit me to more effectively filter through all nearby peripherals during scans and to be able to efficiently extract relevant information from the feather such as battery life.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

Whilst I am behind from our initial Gantt Schedule, I have made a large amount of progress and adapted my goals for the remainder of the project to ensure we have sufficient work to present on demo day.

 

What deliverables do you hope to complete in the next week?

As I have been able to pass tests for BLE recognition & connection, and I have worked with my teammates to realise a communication standard, my next logical step is to work on adapting my existing BLE module to accomodate RX/TX via UART. After this I will work on integrating the BLE module in with my existing code and making some final modifications to the User Interface.

Saniya’s Status Report for April 29

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

This week I met with Madi and Shize to work through putting our parts together. I worked with the Feather code that Shize put together and added various movement and animation functions. I have also been researching and running tests for using UART with iOS Core Bluetooth in order to help Madi with the app. I worked up a new circuit design for adding an external switch and battery to the earring and received preliminary CAD designs from Madi, which I hope to elaborate on soon.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

My progress is on schedule.

What deliverables do you hope to complete in the next week?

I hope to finish working with Madi to integrate the BLE functionality with the UI of the app she has already built and complete the design report.

Shize’s Status Report for April 22

The version built with feather m0 board is done. I’m now finalizing the code to make moving patterns.

The current design of the earring have the LED matrix and the feather m0 board soldered closely together and the whole thing plus battery weights 20g. The battery (350mAh) is rechargeable by just plugging in to USB and it lasts more than 2hrs.

The current settings for user including choosing pixel color on their phone and typing letters in Bluetooth uart to define how they want the pattern to move. The types of moving and their corresponding ascii letters are: up (^), down (_), left (<), right(>), rotate left (l), rotate right (r), expand (e), shrink (s), and stop (.). Stop (.) is used to make the moving pattern stop. By using this current setting, users should be able to design interesting patterns for different moving styles.

We will make our attempt on using our customized PCB that fits the LED matrix better, but to account for the possibility that we couldn’t get the PCB working, our final project will just be the feather m0 version.

Team Status Report for April 22

What are the most significant risks that could jeopardize the success of the project? How are these risks being managed? What contingency plans are ready?

The key risks for our project at this point in time are primarily related to integration. In particular, as we are behind with the development of the mobile application, we are concerned about having enough time to fully flesh out and test the iOS Bluetooth Code. Additionally we have had some delays in the production of our PCB board, so we are concerned about having enough time to test everything works.

Were any changes made to the existing design of the system (requirements, block diagram, system spec, etc)? Why was this change necessary, what costs does the change incur, and how will these costs be mitigated going forward? Provide an updated schedule if changes have occurred.

We have made some simplifications to our overall design by removing some of the more complicated features for pattern design and editing, to focus on getting our subsystems integrated

Madi’s Status Report for April 22

What did you personally accomplish this week on the project?

1 –  Working on Implementing Bluetooth Module

Although I had not fully finished creating the custom design control widgets for the application, this week I switched my focus to working on the code required for BLE communication to prepare for integration over the next couple of weeks. This involved running some tests with apple’s CoreBluetooth code to determine the best way to configure my code, what functions & classes I would need for our project etc. I also started writing the main code module that will contain all the core logic for the bluetooth functions.

2 – Working on outer enclosure

This week I also started making some progress on the design for the casing of our earring. I worked on developing a basic CAD model for a square shaped case with the following constraints -> button to allow the user to turn the device on/off, attachment for a CR2032 battery, compartment to fully enclose the PCB & prevent user access/tampering. As the user will need to replace / charge the coin battery, we have decided to also design an outer decorative casing, separate from the PCB compartment that will attach the device to the ear. This outer casing will contain a hinge and lock system that the user will be able to open to access the battery.

3 – Working on Final presentation

I was assigned to present for our group this week, so I also spent a lot of time preparing the slides.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

As I was working on the slides this week, I did not make as much progress as possible. I am planning on simplifying the application so I can focus on testing and finalising the core functionalities

What deliverables do you hope to complete in the next week?

Next week I hope to have the Bluetooth code working so I can focus on testing and integration.

Team Status Report for April 8

What are the most significant risks that could jeopardize the success of the project? How are these risks being managed? What contingency plans are ready?

Our key concern for our project continues to be integrating the Bluetooth modules for the software and hardware portions of our project. As we are running behind schedule according to our Gantt Chart, we have been left with less time than previously planned for combing our work and testing the final product.

Were any changes made to the existing design of the system (requirements, block diagram, system spec, etc)? Why was this change necessary, what costs does the change incur, and how will these costs be mitigated going forward? Provide an updated schedule if changes have occurred.

Whilst we have not made any major changes to our overall design, we have decided to prioritise working on our MVP LED Matrix Device. Previously we were working on both the LED Matrix and our stretch goal, the LCD Screen, in parallel, however as all of our group members have had a busy semester, we have collectively decided to focus on producing a single, functional final product.

Please enumerate how you have adjusted your team work assignments to fill in gaps related to either new design challenges or team shortfalls.

Madi’s Status Report for April 8

What did you personally accomplish this week on the project?

This week I continued to work on developing the mobile application for our project. Specifically I continued working on fleshing out the front end, focusing on mapping user interactions to data model updates and making custom components and views.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I had a couple of issues at the start of the week with getting my database migrations to work without corrupting my code. However I was able to make some good progress by putting in additional hours during the back end of the week. Whilst I am still slightly behind as mentioned in previous status reports, I believe I have been able to catch up over the past couple of weeks. Our group as  a whole has chosen to make some simplifications to our project by just focusing on achieving our MVP.

What deliverables do you hope to complete in the next week?

Over the next week I hope to start looking more closely at Core Bluetooth so I can make preparations for integration.

Now that you are entering into the verification and validation phase of your project, provide a comprehensive update on what tests you have you run or are planning to run.  In particular, how will you analyze the anticipated measured results to verify your contribution to the project meets the engineering design requirements or the use case requirements? 

  • Functionality Tests => Across the past couple of weeks I have tested the performance of the mobile application using XCode’s built in simulator. This has enabled me to test the mapping between my constructed view & view models, and the navigation/user flow of the application. As the simulator enables the application to be run on different phone screen sizes (iphone X, iphone 12, iphone 14 etc.), I have also tested the responsiveness of our application design to ensure our product is accessible to a broad demographic of users. Moreover I have created test functions and dummy models to ensure all database operations are working. Over the coming weeks I hope to simulate the application on my phone,.
  • UI/UX Tests => To test the usability of our applications at this point I plan to gain feedback from my teammates. As they have not been involved in the software side of the project, their insights will provide somewhat of an unbiased perspective in regards to the successful and disadvantageous aspects of the current design. Specifically to evaluate our Setup Time Use Case Requirement, I plan to ask them:
    • How easy it is to create a new design?
    • How legible the design/pattern editing controls are?
    • How intuitive are the bluetooth connection controls?
    • How informative is the information on the home-screen?
  • Bluetooth & Integration Tests => To evaluate our Setup time  and Update Speed  user requirements I plan to work with my teammates to test the how effectively we can send information to the LED Matrix.

Saniya’s Status Report for April 1

What did you personally accomplish this week on the project?

This week I built the circuit with our RGB matrix and tested it first using basic Arduino demos. I also worked through some Bluetooth examples for the STM32WB using Zephyr, which is the software that my 349 TA showed us. I also spent a good amount of time laying out the basic schematic for our PCB using the Nucleo board’s design for reference. However, since the Nucleo board has far more subsystems and functionality than we require, I have had a little difficulty in understanding which sections of the power management circuitry I need to integrate into my design, and which of the many STLINK programming options I need to add. I hope to clear these questions up in our meeting with Professor Nace on Wednesday.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

We were a bit behind schedule due to issues working with the STM board, but this week Shize and I will meet with Professor Nace to finalize our PCB design and try to get some basic patterns working with STM control.

What deliverables do you hope to complete in the next week?

This week I will work with Shize to make sure the circuit works properly with the STM32 and finish out the PCB design.