A friend was looking for something while we were browsing a store, I asked them what it was and they told me something to mix a couple audio streams together. Familiar with the teensy audio library I decided this was a good place to start and thus a project was born!
I just wanted to make something simple and not overly complex. Just take two stereo inputs, mix them into 1 headphone output. I'm not so skilled on the coding level yet so having the accesibilty to make what i want on the program side made the teensy audio lib and design tool an excellent starting point. On the hardware side there were many options but usually meant things designed for higher end audio or wayyyy more inputs/outputs than I was looking for. Originally I tried just using the teensy 3.5's built in adc/dac but I was having a lot of problems with noise and figuring out multiple inputs. When looking for other solutions I stumbled upon this blog post on SparkFun that involved connecting up 2 teensy audio boards together to have quad channel input and output. It was a bit hacky but i decided this was a good place to move forward on!
I used this dual audio board hack to test the code and see if it would be easy to function and after some trial and error i had a working prototype! I believe that i was still having some issues with noise but it was due to the cables i was using, since i had to use jumper wire to connect some trs breakouts to the audioboards the noise they picked up was much less than desired. With the code functioning for the most part i decided to move on to making a custom pcb which would at it's base just be two teensy audioboards and a few pots with necessary input and outputs for this project. This would be my first smt non homebrew pcb and up until this point I had always been worried about doing an smd/smt board. However now that I had a few or more months professional experience in pcb assembly I felt excited and capable to tackle such a project.
For the design I used kicad 5.1 and for the most part things went smoothly, originally since the chips were capable of a lot I was going to put more inputs and outputs but after deciding to save cost and space I cut them out and focused on the main purpose of the board of mixing 4 channels to one. That let me cut down from 4 trrs jacks and a bunch of pinouts to just 3 trs jacks and squish it down. However, I wanted to keep analog and digital noise as seperate as I could even though the digital signals would be relatively low speed It would give me a sort of piece of mind to design as such and I went a little overkill with it and made a 4 layer board with plenty of breathing room between digital/analog signals. I'm not a trained pcb designer so there's probably some glaring or less important gripes one could have with my board but I'm proud to say it's completely functional and sounds pretty decent for its inteneded purpose.
Saying that, there were some big dumb mistakes I made. It was my first time ordering from a board house and in my excitement I jumped the gun without properly checking my schematic and I had forgot to place some global labels on the teensy! they were on the audio ics but not on the teensy so they were just not present! Oops! I made an expensive mistake of the pcb equivilant to not connecting some wires, much harder to fix on a small circuit board though! So with that mistake figured out I put in a redesign and double checkecd things and sent this revision through. All good and done right? wellllllllll I made the lovely mistake of not paying attention to the DRC (design rules check and after trying to figure out why one of my potentiometers wasn't adjusting the volume like it should have, I went back and checked the schematic. Derp. Unconnected ground wire, probably visually it was off by like a milimeter on the schematic. Lesson learned! Lucikly this was a through houle part and as such could be fixed with the ol trusty solid core jumper wire to the teensy ground pin connection.
With this fixed evertying checked out and I'm happy to say mission accomplished, a simple teensy audio sketch and some multiple inputs later a working board was confirmed along with some classic I did it feel good feels!
I plan on writing more on some design and revision changes before I put up the board files and etc on github!
Update(June 21 2020):
Board files and arduino sketch up on my github