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.

Frantz’s Status Report for March 15

This Week’s Accomplishments:

This week, I completed the time-stretching portion of the pitch-shifting algorithm. I have started the phase vocoder portion as well, which is vital to keeping the sound coherent. I also completed Steps 1-3 of the Ethics Assignment. I discussed next steps with my team.

Status:

My progress is still slightly behind schedule, but since this week was scheduled as slack time, I have caught up a bit. The pitch shifter is unsurprisingly difficult, and I will need to focus significantly on the circular buffer used in making this a real-time operation.

Next Week:

Next week, I will complete and test the phase vocoder algorithm in Python, and I plan to begin the process of rewriting it in C++. My team and I will also test some of our materials with an oscilloscope in the lab. I will bring my guitar and some cables in provide input signals for this testing.

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.

Team Status Report for March 8

Our biggest risks remain that any of our components do not function. Thankfully, the Daisy Seeds have arrived, and they have no apparent issues, so we have a microcontroller and a backup. However, we still have more components that have yet to arrive. We have configured a list of materials that we will order, and we plan to test them rigorously so we know that they function as intended.

This week, our design has stayed more or less the same. We have configured some finer details, including the size of the PCB that will be housed in the pedal.

Our schedule has not seen significant changes. Some issues have pushed work into slack time, so we are somewhat behind schedule, but our order of operations remains the same.

 

Part A (Chaitanya Irkar):

​​When designing and conceptualizing our pedal, one of my primary initiatives was to deliver a compact, easy-to-use product that could be enjoyed on a global level. We understood that not all consumers of our product will have access to the same high-quality resources available to us as CMU students. Emphasis on portability removes an physical restrictions for transporting or even delivering the product to individuals around the globe. It can also easily be shared by bandmates, gifted to friends, and easily stored in any environment, making it catered to individuals of all musical backgrounds. We also spent a significant amount of time designing our pedal interface (knobs, switches, buttons) to make it easy to adjust and view pedal settings. The only “complex” component of our design are the pcb board and Daisy microcontroller. These components will be hidden inside the pedal casing, limiting access to any harder-to-use parts. While our product does promote usage amongst people all over the world, it does require a power supply which could serve as an obstacle for users in areas of unsteady electricity. Such a factor is difficult to mitigate in the context of a guitar pedal design due to the necessity of a power supply to operate. However, we hope that our basic user-interface and other design choices will compensate for any other shortcomings outside of our control.

 

Part B (J. Frantz): 

Our pedal will allowsfor users to subdivide the repeat period into either four or three portions, matching how most contemporary music uses binary or ternary meters. These encompass the most simple divisions of time in music, and there will be a wide range of customization granted by allowing the user to select a meter.

Notably, our pitch-shifting is planned to use 12-tone equal temperment tuning in order to calculate the intervals. This is a standard that is used throughout most contemporary music today, but this is not the only tuning system that exists. Microtonality is prevalent in genres like Indian classical music, but our pedal’s pitch-shifting will not account for this.

These simplifications are design choices made with a semester’s scope in mind. Our primary goal is to make a device that is useful for a wide range of musicians, and we wanted to keep our design simple enough. Allowing for a wider range of meters and tunings is a possible goal for further improvements beyond our capstone.

One important cultural factor to consider is that the general public would not like to be subjected to excessive noise. Therefore, in our delay mechanism, we will restrict the amplitude scalar for each successive delay to be not more than unity. This will ensure that the input sound will not grow exponentially loud and harsh for people in the vicinity.

 

Part C (Nick W):

The main environmental considerations for our project come in production and the energy efficiency of operation. For production the main concerns are the materials used, and how they are produced. Considering this, we are using mass produced interface parts, which don’t have much environmental impact, 3D printing our casing to minimize waste, and using a standard PCB manufacturer, but would likely search for an environmentally friendly manufacturer if these were mass produced. For energy efficiency, we can’t save power in many places since we need most components to be on while the effect is active, but we will turn off some parts such as the screen when the effect is off.

Frantz’s Status Report for March 8

This Week’s Accomplishments:

This week, I continued to make progress on the pitch-shifting algorithm. I retrieved the Daisy Seed microcontroller, and verified that it connected with my computer so I could load a program onto it. I also began teaching myself how to program in C++, as the Daisy Seed uses that language to be programmed.

Status:

My progress is slightly behind schedule since I haven’t finished programming the phase vocoder algorithm, but it is moving along steadily.

Next Week:

Next week, I will reconvene with the team after spring break. I plan to continue programming the phase vocoder pitch-shifting algorithm, and I will research how to rewrite it in C++, a language I am a beginner in. For example, I will determine if I need to write my own direct Fourier transform algorithm or if I could import one.

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.

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.