Chaitanya’s Status Report for April 26

What did you personally accomplish this week on the project? Give files orphotos 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 got the PCB this week on Tuesday. After some initial testing with Nick’s test code, I decided that the PCB may not be fully functional. For the time being, we have shifted our attention to using the back up parts to get a working dev board implementation. This process involved placing components and resistors on dev boards and soldering them along with soldering wire connections. We have made significant progress and are looking to complete this tomorrow to do full system testing with the newer dev board options. Most of my time this week was spent in the HH labs and Tech Spark working with Nick to solder all components. 

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

We are not completely on-schedule, but it is still likely that we will have everything as desired by demo day. Our prototype was fully operational last week so the there should be minimal debugging for this implementation pivot. We should be hopefully wrapping up most implementation related tasks tomorrow and complete full system integration soon after.

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

With the demo on Thursday and video due Monday night, we are looking to have a demo-worthy project to showcase our hard work throughout the entire semester. Despite our numerous hardships throughout this project, we are aiming to have full-system integration done by tomorrow or Monday, so that we can put the finishing touches/get the appropriate measurements done for all documentation-related submissions that are due this upcoming week.

Chaitanya’s Status Report for April 19

What did you personally accomplish this week on the project? Give files orphotos 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.

Chaitanya’s Status Report for April 12

This week, I completed the schematic and layout for our PCB. I resolved several issues with the PCB including fixing one of the LED button footprints to allow me to control the LED for the button via microcontroller GPIO. I placed and routed the PCB, uploaded the files to JLCPCB, ordered the PCB, and received confirmation from Quinn regarding the PCB order. The PCB should be arriving by the middle of this week. The back half of this week was dedicated to testing Nick’s GPIO code. All connections are still on the breadboard. There were some issues with getting the Daisy Seed to connect with Nick’s computer, so he created a Github to track test .cpp files that I pasted into my editor and downloaded onto the micirocontroller. His code successfully interacts with the 4-mode switch and is very close to working with the 7-segment display (on segment of led not working). Nick has implemented a timer-controlled flashing feature that flashes rapidly between all characters of the display, giving it the effect of all characters displaying at once, which he and I were able to verify was displaying. The button code seems to not be working likely due to the way they are being initialized. Nick has updated the code, and I will be testing it this weekend.

For my portion of the project, verification will come in the form of PCB validation. This means ensuring that once soldered, the code that we have found to work with the breadboard prototype will also work with the I/O components on the PCB board. Due to the uncertain nature of the PCB board, there is a slight possibility that the board malfunctions due to certain faulty connections. Due to this possibility, I am dedicating the beginning of this next week to building the same breadboard prototype on devboards where we can solder the components and wire components. This will serve as a backup to ensure that the user can properly interact with our pedal. Further testing will involve measuring currents and voltages along all GPIO pins to ensure that the proper current is supplied to I/O components. In my PCB, I have placed surface mount components to serve as current-limiting devices, but this is still important to avoid breaking components close to demo day.

In relation to our timeline, I think my portion of the project is coming together fine. The biggest issue would be if the PCB is not working as desired, in which case we might have to pivot to the dev board soldering for the specific components that have faulty connections. After getting the switch and 7-segment displays to work at the end of last week, I am more confident that the hardware components of the project will be finished in time. I will also need to potentially add hardware for the input and output audio, but I should be able to figure that out by the end of this week. The window is getting narrower, but I still feel that we can get a solid pedal in the end.

Team Status Report for March 29

Primary risks involve not being able to get the systems integrated on time. Josie has made good progress prototyping the pitch shifting and delay features in python and is working to get them in C++ for the microcontroller. Chaitanya is looking to wrap up prototyping with the Daisy Seed and I/O components on breadboard in the coming week. Nick has preliminary casing 3-d models. The integration of these different parts will, therefore, be our next challenge. We are looking to address this next week once all of the different subsystems are fully functional. This will involve extensive discussion on the interfaces of our separate modules and a push in the next few weeks to experiment amongst our different parts.

No changes to the existing design. Potential changes could be made to the hardware in case there isn’t enough time for the PCB and the breadboard implementation is working (which seems to be the case at this point). Schedule should be sufficient but we will be heavily emphasizing system integration in this final chapter of our project. Please reference individual status reports for detailed pictures/diagrams of our individual progress.

Chaitanya’s Status Report for March 29

This week, I continued working on the PCB design. I attempted to resolve issues regarding the pinouts provided on the data sheet with Gordon but decided that testing of the physical component was the most efficient way of matching the schematic pins to physical pins for components that had vague data sheets. However, since there was an extensive delay in getting our components despite putting an order weeks ago (just got them on Wednesday), my progress at the beginning of the week was hindered. Once I got the components, I immediately started on the breadboard prototype. My goal for this week was to understand the pinouts of all components and set up the breadboard prototype with the daisy seed mounted. I was able to successfully test and identify the the functionality of all pins for all components. I did this using the DC power supplies in Tech Spark and an LED to verify that buttons, switches, and 7-segment display were working. Here is my current progress on the breadboard. The headerpins came with the daisy seed. We originally ordered a non-soldered microcontroller, but ordered another one recently with soldered header pins.

The delay in getting the components halted my progress on the PCB as I couldn’t proceed for some of the buttons until I was confident which pins in the schematic corresponded to the schematic pins. It also delayed my progress on the prototype. Hence, I am slightly behind schedule. My plan is to establish a connection between the daisy seed (goes on top of the header pins in the picture) and the I/O components by displaying print statements everytime an interaction with a button, switch, etc. occurs. I would like to be able to demo this during next week’s interim demos. However, we are also waiting on the the micro-usb cable used to program the Daisy. We had originally thought we placed an order, but when it didn’t come with the rest of the components, we realized that it was not placed and immediately placed another one. I strongly believe that my connections in the picture above are correct as I tested them with DC power supply/LED successfully. Hence, the primary concern is familiarizing myself with the daisy interface. While Josie will be primarily in charge of the 2 features of our pedal and getting them working with the microcontroller, I need to be able to program I/O features using the interface.

Given the limited amount of time we have at this stage, I will be heavily investing my time in getting a breadboard prototype fully functional over the next week. The PCB will serve as a bonus version of the prototype but getting a basic implementation working is my first priority. Once I am able to set up the Daisy Seed GPIO connections, I hope to resume work on the PCB, fixing the connections in the schematic/layout according to the testing of the physical pins I completed this week and early next week.

 

Chaitanya’s Status Report for March 22

This week was dedicated to making solid progress on the PCB. We wanted to get the parts ideally by this week as the order was placed last week. Ideally, we wanted to have an initial prototype done on the breadboard this week to use as input to the PCB before sending it off. As I worked through the PCB schematic, I realized that the number of GPIO pins might be a limiting factor to the pedal surface I/O that we had. Hence, we reduced the number of pitch shifting buttons from 4 to 2. Originally, we had 2 buttons for +/-1 octave and +/-1 semitone pitch shifting. I decided to remove the +/-1 octave buttons to free up some GPIO pins. After discussing with Nick, he also looked into 7-segment displays with potentially less pins. He found a 12-pin display that I downloaded an updated my schematic with. I was able to go through the datasheet for each component and figure out which pins corresponded to what functionality. After doing so, I was able to make the appropriate connections to the Daisy Seed microcontroller. I was able to get the schematic done for the pitch adjustment buttons, mode switch, and beat/pitch LED buttons rotary encoders, and ON/OFF LED. I also realized that I needed pull-up and pull-down resistors to make sure that I was sending good 1’s and 0’s. I added these in, adding 10kOhm resistors going into the GPIO pins and 10kOhm resistors for switch pins that were not ON. Please see the my current schematic progress:

I think my progress is back on track. I had doubts last week given my unfamiliarity with KiCad, but I spent a lot of time this week watching tutorials and reading the datasheets multiple times to get a solid understanding of the hookups. After getting most of the schematic done, I am more confident in the timeline to get the PCB out.

I still have to quickly do the hookups for the 7-segment display and 2-mode switch for selecting 3 vs. 4 beats. I have already looked through the datasheets to verify that the parts are good and that I have a solid understanding of the pins in the schematic. My next steps are to clarify some of the datasheet pinouts to make sure my hookups are correct. I will set up a time with Gordon early next week and finalize the schematic shortly after. Once this is done, I need to quickly place and route in the layout view and use Gordan’s help to get the PCB out as soon as possible. Hopefully, by the end of next week, I should have a nearly complete layout that can be sent out.

Team Status Report for March 22

Most of our risks still lie in the PCB manufacturing. Chaitanya is working to get the PCB schematic/layout out. We are mitigating this risk by having a functional breadboard-based implementation. All components have been ordered over a week ago, and we should have them early next week to make connections. The risks on the software side lie primarily in making our code compatible with the Daisy Seed microcontroller. Josie has been able to get functioning pitch shifting and delay algorithms to work using Python. The group was able to verify that the functionality of these algorithms. Adapting these algorithms to meet the Daisy Seed specs is the primary concern. We will have to make sure we are comfortable using memory and any other blocks on the Daisy. Having a working prototype in python is our main form of mitigation as it gives us a base for developing our C++ program for the microcontroller.

A few changes were made on the hardware side. With a lot of the schematic done for the PCB, we realized that there may not be sufficient GPIO pins for all of our components. Hence, we made a few small modifications to the user interface of the pedal (buttons, switches, etc. on the outer surface of the pedal casing). This included reducing the buttons the user can use to specify the amount to pitch shift. Previously our design had 4 buttons – 2 for shifting by +/-1 octaves and 2 for shifting +/-1 semitones. We removed the octave buttons. While a slight inconvenience to the user, functionality is preserved. In addition, we found a 7-segment display that required fewer pins to ensure that it didn’t take up an unnecessary number of GPIO pins on the microcontroller. These changes should not impact functionality, so we deemed them appropriate. These changes have not impacted our timeline as the PCB has not been sent out yet. Please reference individual status reports for progress screenshots.

Chaitanya’s Status Report for March 15

This week, I spent the majority of my time working with Nick to finalize the hardware design. This consisted of making a clear list of materials with digikey links to identify which components were available to implement our design and ideas. The list can be seen here:

This process included going through our design from our design report/presentation, listing out all of the components of our pcb (and other things we needed), and finding the proper components in DigiKey based on desired functionality.  We found all the components we needed and Nick put in the list mid-week. In addition, I have continued progressing on my PCB design. I had to watch a few videos on how to interact with KiCad as it is a new EDA tool. However, I was able to successfully download several of the components from DigiKeys and put them in my schematic. Now that I have overcome that initial obstacle, I am fairly confident in wrapping up the design within the next week or so. Nick and I also met outside of class time to decide any additional hardware changes we need to make before sending our PCB for fabrication. Last week, during our meeting with Professor and TA, we were told to consider some hardware to ensure that our input and output voltage match what is needed by the guitar input and the output. One concern that came up in our meeting was anticipating the proper hardware for this and including it in our PCB. We decided that we were going to have a separate breadboard (very small) inside our casing to handle this to prevent further delay in getting our PCB out. I also completed Steps 1-2 of the Ethics assignment and discussed Step 3 with my team. We have made our Slack submission and are ready for the discussion on Monday.

I am starting to fall slightly behind in my progress. I should be able to catch up given the progress of this week as I now have all components in my KiCad library and simply have to wire everything and double check the Daisy Seed Specs. I should be able to wrap this up hopefully within the next week. In addition, Nick and I will be putting together the prototype next week on breadboard or devboard (we have both – depends on which we find easier). All components should be coming next week. Our goal is to have an initial physical implementation of our hardware design within the next week.

Chaitanya’s Status Report for March 8

This week, I focused on getting the PCB layout off the ground. My first obstacle was finding the proper layout footprint in a PCB design tool. My familiarity with Autodesk Fusion360 led me to look into finding a footprint in the Fusion360 library. After conducting extensive research in the Fusion360 library and looking for download options online, I concluded there were no options to proceed with Fusion360. I looked into alternatives and settled with using KiCad for my layout tool as the Daisy footprint was uploaded to the open source library in KiCad. I have attached a screenshot of the print below.

I then looked into the standard sizing of guitar pedal casing to determine the size of the board. After conducting brief research, I decided to size my board with a width of 2.85” and a height of 5”. I have defined the board outlines in my layout. In addition, I contributed to the design requirements and system implementation portions of the design report, amongst other minor formatting contributions. As part of the report, we finalized an initial draft of the bill of materials. While further discussion is needed to determine if any more components are required for our product, this initial list allowed me to begin my search for layout footprints of materials in the KiCad library and online. My next goal is to use the pinout of the Daisy Seed to begin connecting the I/O pins and power pins to the appropriate components.

I am still on schedule as the barebones of the PCB are coming together. I hope to have a board layout next week. I also want to begin prototyping my components on a breadboard. However, this might temporarily be on hold until I can determine basic tests to prototype as waiting for full functionality of our desired features will take too long and limit the duration of time for which I can prototype.

Chaitanya’s Status Report for February 22

This week, I focused on ironing out exactly which models of components we need for our user interface. I researched switches, buttons, 7-segment displays, etc. and made a list for ordering. I also finalized the overall implementation plan involving the daisy seed and its interaction with i/o devices. I presented our design on Wednesday in class and answered questions as well. I began working on the PCB schematic/layout, finding the exact model of the Daisy Seed Microcontroller and other hardware components of our pedal interface. I have began to wire periphery based on pinout and desired function. I have not started prototyping, but I will do that once a PCB layout is somewhat finalized to make efficient use of time.

While I have made some progress, I am slowly starting to fall behind. I have been dedicating a lot of time to documentation (design presentation). However, in doing so, I have lost track of the actual project progress. My plan to get back on track involves dedicating some time over break to get a preliminary draft of the PCB done to show to group members, professor, and TA for feedback. Then, the following week or so can be allotted to finalizing the layout and sending for manufacturing.