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 was focused on integration and getting some software features working. At the beginning of the week, Nick and I worked on testing and debugging the user interface code. We were able to verify that we were capable of interacting with all buttons, switches, displays, and LED’s. One of the digits was previously not properly displayed in the 7-segment display. We switched the Daisy microcontroller that I soldered with a pre-soldered Daisy Seed and found out that the issue was with a pin that I didn’t solder well (oops!). By Wednesday, we were able to verify that all I/O components had working code that could be directly integrated into Josie’s sequencer code. All work is still with the breadboard prototype. We will be getting the PCB that I designed about 1.5 weeks ago this coming Tuesday. We will be using Nick’s code to test that board’s functionality and tend to any buggy components/connections on my board by incorporating (somewhat janky but functional) fixes on the PCB. The backend of the week was focused on integration and initial testing. Josie and I met on Friday to get the sequencer code working. After resolving syntax issues, I saw that there was an error with the way the data was being allocated on the microcontroller. It was being allocated as SRAM memory instead of SDRAM memory and was exceeding the total SRAM memory amount. Hence, Josie and I looked into ways to get the code to rely on SDRAM memory instead to give more memory to work with. After some research online, I found out that the Daisy Seed microcontroller has a macro that allows the use of SDRAM memory. After implementing this change in variable declaration, we hooked up Josie’s guitar to the audio input on the Daisy via an audio jack and hooked the output to an oscilloscope. We saw confirmation that hard-coded delay was showing up. We then used one of the small speakers in the 220 lab to verify the output by ear. Today, Nick, Josie, and I were able to integrate the button code with Josie’s code to create a functioning sequencer system that used the button inputs to specify the tempo and amplitude attenuation instead of using hard-coded values (big milestone achieved We have taken pictures of the oscilloscope and took latency, frequency, and amplitude measurements to verify functionality and measure validation metrics.
Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?
I am slightly behind schedule but on track to have my part fully functional pending the PCB coming on Tuesday. I will work to validate the PCB and build a backup devboard if needed.
What deliverables do you hope to complete in the next week?
While our group is doing well, I am slightly concerned about the PCB. The delay and getting it shipped has given very little time to validate full board functionality. However, I have leveraged JLCPCB’s component place and soldering service, so there isn’t too much to be soldered. The real challenge will be resolving any issues with specific PCB components. As a backup, I will immediately build a dev-board soldered implementation of our I/O circuitry after checking board functionality. Given that we have a functional worst-case backup option with the breadboard, this should not take long. This next week, I will continue to help Nick and Josie test the functioning pedal parts, validate my PCB, and build a backup devboard if necessary.
As you’ve designed, implemented, and debugged your project, what new tools or new knowledge did you find it necessary to learn to be able to accomplish these tasks? What learning strategies did you use to acquire this new knowledge?
When picking PCB components, I had to be able to work with Nick to search for components on Digikey. I developed this skill by playing around with different filters on the Digikey website and checking the results. The next step in implementing my PCB was identifying the correct tool to do my layout. I searched through forums to see if there were Daisy symbols/footprints available in Autodesk Fusion360, as it was the tool I’m most familiar with. After seeing that I needed to use KiCad to complete my layout, I viewed countless youtube tutorials to understand how to download EDA/CAD models and update KiCad symbol libraries, build my schematic, download corresponding footprints, passing ERC checks and DRC checks, producing Gerber and bom files, and, finally, sending out my PCB for manufacturing through JLCPCB. During the recent debugging phase, I had to find solutions to small problems in my partners’ code. I used discussion forums on the Daisy Seed microcontroller and kept searching until I found an exact viable solution. I also refreshed usage of the oscilloscope by playing around with the scope settings.