This project started because I thought it would be interesting to build my own pocket operator. There are a few other projects diy projects that come do this as well, the Teensy Beats Shield, the Wee Noise Maker, and the polaron in particular are pretty nice!
The core was going to be a teensy 4, since it is wildly overpowered as an embedded audio platform, and I expect I can get a bunch of synth channels running at once. Outside of that, the goal is to make everything battery powered, pocket sized, and with a similar ui layout to the pocket operator.
The initial revision had the following modules:
- A boost chip to get the AA batteries up to 3.3v - I followed the boost section from the powerboost1000.
- A pam class d amp for the onboard speaker
- flash memory chip
- sgtl5000 codec (the same as the teensy audio shield)
- audio in / out over 1/8 inch jacks
I also build an io board that had
- 25 buttons
- 25 leds
- 2 encoders
- and a spot to drop in the oled 96x64 oled display I was using.
This io board just broke all the various parts out to a giant pin header, and I ran the matrix from an arduino pro mini clone I had lying around. The arduino pro mini was communicated with over i2c from the teensy 4. This was the part of the project that actually worked! I got nice pwm control of the LEDs, I could get fast button responses, all sorts of nice stuff.
The part that didn't work so well was the back board. I got the boost chip working, and the amp seemed to work (when I fed it external audio) but I irrecoverably messed up the power supply for the codec, so I couldn't get it dumping audio out. I tried changing the configuration of the codec (its a big blob of i2c nonsense you send it) but there was no audio no matter what I did. Turns out the issue was elsewhere.
You may notice this revision is dusty as heck. The front board was ordered in september, and the backboard was from november.
I didn't make a ton of changes to the main board on this one, other than fixing the issue with the power supply for the audio codec. Once I had that up and running though, I discovered that the audio still wasn't working. I went digging, and found that the in and out lines for the i2s interface were flipped. I had copied the schematic from the teensy audio shield, and those had them flipped. Luckily I was able to easily bodge a fix for this.
you will notice the front board is listed as r.1, I started numbering them at zero, but then changed it. Bad version control, whoops.
The front board went through more changes. I decided not to bring the pro mini onto the board, but rather use an i2c gpio expander. I didn't do the calculations up front, but it turned out that I couldn't push data to it fast enough to accomplish pwm brightness control of the LEDs.
I messed up the pin header for the oled, so I couldn't actually solder it into place, and due to the fact that I was adding female headers to socket the teensy, that meant it was too tall for me to mechanically assemble the sandwich anyways. I also ordered the wrong amp chip, it was a class a/b instead of a class d. I don't know that this really affected the output a ton, but I couldn't get a clean sound out of my speaker.
The good news was that the buttons and lights basically worked, the oled basically worked, and I could write software for it. I started building a sampling drum machine for it, but got kinda bored of writing dsp code I knew had been written a million times before. A few months passed while I worked on other projects, and then I came back to it and decided to port mutable instruments plaits so I could quickly get a ton of really nice sounds.
View this post on InstagramPlaits on teensy snare rush workout #synthdiy #mutableinstruments
A post shared by Jonathan Brodsky (@jonbro5556) on Apr 12, 2020 at 10:28am PDT
I also started thinking about what rev 3 for the hardware would look like. I have the hardware on hand now, and will post another log after I finish doing bringup.