During my work on this project, I learned soldering a PCB, working with Arduino IDE in a working environment (before it was just messing around), especially on how to implement interrupts on an Arduino.
For soldering, I learned from my friends who I know had soldering experience. My friend was able to solder a few spots on my PCB while showing me how I should do it, and through that I was able to solder the rest of the components with no issue. For Arduino IDE, I learned by looking up information online, and experimenting with existing code to see what I can take from them and apply to my own.
Normal Report Portion:
This week, we advanced further into integration. We have finalised the communication protocols between our systems, and the communications are all up and working now. Specifically for me, I changed my code such that it accounts for keys that are not pressed but the sensors are activated. For example, when pressing certain right hand keys, a valve that is connected to a left hand key also gets triggered, even if the left hand key is not pressed. I changed it such that the left hand key would be excluded in the webapp. I experimented with all 22 keys and their combinations, and finalised the rules on that. Now when I press one key, only one digit in the data packet is changed.
I have also assisted my teammates in their integration efforts. For example, I added an interrupt that starts and ends data sending only when requested from the web app.
In terms of testing, my individual components pass all testing requirements. The delay from the Arduino serial monitor is negligible, but determining the specific timing would be extremely difficult. I would need to collect the exact that the key is pressed and the output shows up, which I am not sure how to do. However, the small delay is not noticeable to the end user, and all standard saxophone keys are confirmed to provide timely updates to the data packets when they are pressed.
In terms of deliverables next week, the focus is integration testing, to ensure that not only each component works, but the system works as a whole, and the user experience is smooth.