Team Status Report 4/26

This week, we tested the PCB and found that it was having some issue, so we shifted to getting a functional implementation using perf boards to ensure that we have something to demo. If some members have spare time, they may try to find the PCB issue and fix it after the perf board implementation is tested, so we may return to a PCB implementation by the demo. We had planned for this situation, and used backup designs and backup parts ordered earlier to make the perf board version, but there will likely still be some effect on the noise within the signal due to this change. The main risks are that something with the perf board version does not work in testing, which is unlikely due to our previous prototyping but would be very bad for the project, and that something with the final audio processing code has an issue. As the perf board implementation was already the backup for the PCB, our options for backup plans are limited, but we do have some plans for how to manage certain issues if they come up.

Unit and System Tests:

Audio Processing Software Testing: Simulated the code in python with a premade audio signal, found that the delay was fully accurate and the pitch was shifted to the correct note.

Microcontroller Testing: Testing the Daisy Seed for latency and accuracy of delay effect, found minimal latency from the MC itself, and that the delay effect was providing the expected outcome.

I/O Testing: Testing the I/O code with a prototype circuit to make sure it functions correctly, had some issues with the library used for the microcontroller, but fixed them and got I/O fully functional.

Prototype Testing: Testing combine audio processing and I/O code with prototype version of the circuit, found that delay effect produces less than 0.5ms of latency, is accurate, and that the amplitude attenuation is accurate within 1 percent of the goal, all while the I/O code is fully functional.

Full System Testing: Testing final implementation for correctness and that all the metrics from previous tests are maintained, as well as testing for pitch shift accuracy on final implementation and for signal to noise ratio. Not finished yet due to delay from PCB issue, should be done Sunday or Monday.

Nick Status Report 4/26

This week, I had my presentation, so I prepared for that early in the week. Later, after Chaitanya tested the PCB and found that there was an issue, we decided to make a perf board implementation of the project for now to get something functional by Monday. We met a few times to solder the circuit and get a working implementation based on what we made for the breadboard prototype. I also fixed the last few issues the I/O code was having. We are almost done, just need to meet Sunday and early next week to finish putting the final version together and test everything, and then do the video, poster, and report. Next week, I have a final early in the week and at the end of the week, so I will have the least time to work, but will still meet with everyone to finish getting the perf board implementation completed and tested, and will do parts of the poster, video, and report.

Nick Status Report 4/19

At the start of the week, I worked on fixing the last major issue the interface code was having, and tested it with Chaitanya. Then, I tested inputs to the microcontroller from a function generator with Josie. Later in the week, I made an updated version of the interface code with all the implemented fixes for the major issues we were having, worked on the slides for the final report, and met with my group to test the combined interface and audio processing code on a breadboard prototype of the full circuit to check is functionality and test the output of the code for latency and that the audio processing code was accurately applied. After testing, we found a few small issues in the code, but nothing that prevented it from being mostly functional and providing the expected output. We seem to be slightly behind because of the PCB delay, but we will have time to implement that, fix the last few issues and have the full system completed and ready to test very soon. Next week, I will prepare for my presentation, fix the last few issues with the interface code, and meet with my group to implement the finished version of the pedal and test it.

As for what I individually learned, I first learned that hardware implementations run into many more issues than I expected. I learned how to design a schematic for hardware without any premade sections or guidance, as all of my previous classes related to this had either premade schematics or guidance with preselected components. I also learned how to find good hardware components and understand datasheets from spending so long looking through DigiKey for components that fit our design. Finally, I learned how to better understand and find issues with a software library, as the Daisy library is not fully functional and I spend a while looking through online references and forums to get the interface code working.

Nick Status Report 4/12

The past two weeks, I have assisted with verifying the circuit for the PCB, made the interface code for the pedal, created test codes for debugging the pedal, met with Chaitanya to debug the interface code, modified the plans for the 3d model due to changes with the PCB, and made designs for the input circuit. The interface code is mostly working, with only the buttons and the rotary encoder still having issues, but this is likely due to some confusion with the Daisy library, as the classes for switches and encoders seemingly are in progress. I have already made some alternate files to test possible solutions and am working on making versions of the code that use the standard GPIO class, which we know works as I used it for the other components, but I am hoping that we can get the Daisy classes working as their debounce function would likely work better for our pedal. For the 3D model, after learning that the PCB size would be much larger than initially planned, I remade the models to fit the new PCB and sliced them, and it seems that the base at this new size would be too expensive to print, so I moved the holes for connections in the base to the faceplate, and will find a premade plastic box that we can use as the base. Overall, this shouldn’t affect the functionality. Our progress seems to be slightly behind, although not by much, as we should be able to catch up early in the week and hopefully start testing. Next week, I will fix the last few things with the interface code, add the holes to the faceplate model and send it for printing, finalize the breadboard version of the circuit for testing, start testing once the audio processing code is fully converted to C++, do my part of the presentation slides, and prepare for the presentation.

As for testing of my own subsystems, as of now, I made most of the circuit in tinkercad while we were designing to test functionality and have made and modified multiple test files for the interface code to debug the individual subsystems of the interface. For the tests I plan to do in addition to the tests we are doing on the whole system as discussed in the team report, I plan to test the system with the full code and compare it to a preset input with just the audio code to determine if there is any significant impact from the interface code on latency, and plan to test the overall noise impact of some of the changes in our design.

Nick Status Report 3/29

This week, I was unable to work much, as I was sick and had a major lab for another class. With the time I had, I researched some other daisy projects to make a plan for the device code for our pedal, so that we can start integrating everything. My progress is slightly behind because of the setbacks from this week, but I have plenty of time in the next two weeks to make up for it. Next week, I hope to get the base of the main code done so that we can test the code Chaitanya has been working on with our audio processing code, and I also hope to get the 3D model finished if the PCB is done in time.

Nick Status Report 3/22

 

This week, we started by doing part 4 of the ethics assignment Monday. Then, I made the base of the 3D model for the pedal housing to confirm the initial design ideas with the group Wednesday. I can’t add the holes for the components yet, as the PCB layout isn’t complete yet, and will be mounted to the other side of the faceplate, but I discussed more with the 3D printing lab to ask about restrictions and design requirements so that I can add the I/O holes and send out the designs for printing once the PCB is finished. In lab Wednesday, we discussed the initial model and tested our audio input component to find if we needed to make any adjustments to our schematic. I also worked with Chaitanya further to fix some issues we had with the design, swapping out some parts and adding some components to deal with pin issues on our microcontroller. We are mostly on schedule, although we are having to shift some parts of the schedule around due to some work relying on other work to be completed. Next week, I will start on the implementation software, although one of my other classes has a major lab that will keep me busy early in the week.

 

 

Nick Status Report for 3/15

This week, I did the ethics assignment, worked multiple times with Chaitanya to help finalize our hardware design, made initial plans for the housing model, and discussed restrictions for the housing model with someone from the 3D printing lab. We needed to finish our hardware design before I could start work on the housing model, since the dimensions of the model will depend on the specifications of the design. I did rethink my original idea for the housing to reduce risk, now planning to split it into 3 parts, with the top faceplate being its own part. This is because the faceplate is the part that relies most on the hardware design, so making it its own smaller part that can be slotted in easily allows me to make multiple possible designs and quickly adapt and refabricate the design if we run into any issues with our PCB design. Our progress has caught up a bit from where it was last week, and we expect to be fully caught up by the end of next week. Next week I hope to finish the models for the lower housing and the functional pedal, make an initial version of the faceplate model, do the in class portion of the ethics assignment, prototype with my group in lab to test some components we ordered, and start helping with the software if I have enough time.

Team Status Report for 3/15

The current most significant risks are in our PCB and our interface components. For our PCB, because of the time and cost it takes to get it made, we are unlikely to be able to fix any issues that come up after fabrication. To mitigate this, we are working to look over any possible issues that could come from voltage mismatch or positional issues, and have backup plans in case an issue still arises, including full backup perf boards already ordered and plans for smaller perf board designs that could be easily implemented along with the PCB if the issues are coming from the input or output. For the interface components, the main risk is that they do not work at all or as intended, so we will be testing all of them in prototyping over the next few weeks to ensure that they work. One major change was made to the existing design, with us getting rid of the row of buttons for pitch shift and adding their functionality to the LED buttons we are using for beat selection, with the pitch shift option on the slide switch altered to allow for this change. We did this after realizing that physical switches for the pitch shift buttons would not work if only one beat could be modified at a time, as they would allow for multiple to be turned on. The LED buttons allow us to provide visual feedback for a beat being unselected as another button is pressed. There are no major costs from this change, as it requires no additional hardware and just shifts some of the software work left to do around.

Nick W Status Report for 3/8

I wasn’t able to accomplish much this week as I got sick at the start of the week and it lasted for the entire week. With the energy I had, I prioritized finishing my part of the design report and preparing for two midterms I had for other classes. We are still behind for the same reasons we were before, as with midterms and my illness we didn’t have time to catch up on work, but we will in the next two weeks, so we will try to get back on schedule in that time. In the next week, I hope to get an initial version of the 3D model done to revise with my group, and work with Chaitanya to help with PCB work.

Nick Status Report 2/22

I had less time to work this week, as I had a midterm, lab, and essay due. Sunday, we finished up the slides for our design presentation as a group, and in class, I did peer reviews for the others. I continued searching for the remaining components that we haven’t ordered yet, but need to confirm with the group that they are what we envisioned and that they will work with the microcontroller. Also did some research on how to add some additional features we were considering on the hardware side. We are technically behind, but this was planned for in the slack time we allocated in our schedule. Next week, I have two midterms, but still hope to get the parts ordered, work on the schematic in lab with the group, and finish my part of the design report later in the week when I have more time. I also need to talk to discuss the feedback from the design presentation at our meeting Monday.