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.

Chaitanya’s Status Report for February 15

Professor Sullivan and Gordan (TA) noted that our MVP lacked some details. Hence, my first priority was to iron out our MVP. I did this early in the week after meeting with my group, noting the following details in a Google Doc:

Input:

  • Sequence of notes played
  • Time shift (delay) specified by knob
  • Amplitude Modulation specified by knob 
  • Specify beat – 1, 2, 3, 4 

Output:

  • Sequence of notes delayed by specified time shift + indefinite amplitude modulation
  • Notes will be played based on beat specified 

Stretch Goals

  • Pitch Shifting – user specifies number of octaves 
  • Tap Tempo – specify delay based on how user taps guitar pedal
  • LED Buttons

This provided some clarity for the basic and additional functionality of our pedal that will be crucial when answering questions about the design next week. In addition, Nick and I began the brainstorming process for additional hardware functions. Being hardware-focused individuals we want to ensure that our contributions are meaningful and show in the functions of our pedal. We plan to have a list by coming Monday to present to Professor Sullivan during our meeting. The middle of the week involved drawing the diagram for our design, making notes of interface functionality, and specifying a clear user interface to promote maximum usability. The hand-drawn diagram below that I created from our group meeting early in the week will be used next week when explaining design details. I also drew the graph (originally created by Josie) in a clear and easy-to-understand manner to provide a presentable visual for next week’s presentation.

The late parts of this week were dedicated to ironing out further design details, particularly with our PCB. I contributed to our design review presentation that I will be presenting next week.

My progress seems to be on schedule at this point. It was noted that getting our pcb back in a timely manner is not a guarantee. My hope is that our slack provides me ample time to get the board back. However, we will be prototyping using a breadboard and/or a PCB dev board, which will serve as our backup. While this is not ideal as the circuitry will go inside our pedal that is moving up and down when pressed, it will ensure that we can deliver our MVP in the case that we cannot rely in a timely fabrication of our board.

In the next week, I would like to get a jump on the PCB design and finalize the schematic and specific use of the board by next week so that I can get the board to tapeout in a timely manner. I would also like to begin prototyping our board using the daisy seed to get a feel of how our circuitry will look. This will involve further study of the pinout of the daisy seed and relating that to the various design details that we will be finalizing prior to our presentation next week.

Team Status Report on February 8

Our team worked on finalizing our proposal (slides) and ironing out the schedule for the upcoming weeks. In doing so, we saw that some of the significant risks for our timeline include delays in getting our PCB back from fabrication. In addition, delays in getting our microcontroller and other hardware components could significantly impact our progress. From a design perspective, the PCB, 3D printing, and user interface don’t pose immediate risks. However, our choice of microcontroller (Daisy Seed) could prove to be a risk as none of us have previously used it (in contrast to other microcontrollers like STM32 or Raspberry PI). Our preliminary research indicates that this risk should be minimal, but our contingency plans involve using an FPGA or microcontroller from the school inventory that meets the specs that we desire.

Our decision to go with the Daisy was the only design “change” that we made over the past 1-2 weeks. This “change” was more of a narrowing of our options to a singular implementation. No changes in cost are to be accounted for as purchases have not been made.

The initial schedule was finalized this week. The schedule will be updated as needed in future status reports.

Our group looks to wrap up the research phase of our project and begin making order requests in the next few weeks.