I know I'm cutting it extremely close to the deadline, but I think it'll be fine. Had some time this weekend to get through the laundry list of PCB mistakes, and sent off another board to JLC pcb. Needed to tweak the enable pin on the initial DC-DC boost converter so I can toggle it on and off, added the inrush current limiter, and jumpers to the 3v3 and 5v 'clean' LDO lines. This way when I do board bringup I can test each power supply separately. I had a hell of a time troubleshooting my circuit when the DC-DC shorted 5V to ground. This will make any mistakes like that less time costly. Also added more vias to the power supply components. Using chipquick as solder is probably a ~really bad~ idea for these components.
The knobs were wired in backwards, ground and 3v3 had to get switch around. Their footprint was also awful, with the output being a good 2mm off. The LQFP 48 packages had absolutely no pad footprints extending beyond the actual pins of the package, which makes hand soldering/drag soldering/troubleshooting very very frustrating. I changed the pad length from .9mm to 1.7mm, and adjusted their origins. The STM32 and audio codec should be a breeze now.
The "aux" button and the first C of the keyboard were switched around. I fixed that. Oddly, the 11 and 13th pins of the mux both register as 11. I think this is an issue with my muxing code.
Due to flipping the nanopi the right way, I had my SPI lane running across the board in an ugly way, so I made it slightly less ugly by flipping the display as well. I purposefully left all that room under the rotary encoder for some tiny blower fans, which aren't exactly necessary, but I'll feel a lot better about constant performance with one installed. It'll blow across the CPU first, power supplies second. The listing said they're about .7cm tall, 4cm square, so hopefully its true. Not much room to play with.
I hesitated on switching out the entire CM6206 codec with a PCM2906, but the PCM doesn't have any headphone driver. Since this is an extremely late revision I'd rather just stick with what I know will work.
Threw together the github repo for the linux side of things. Really creative name. I pumped the Puredata version up to 0.49.3, since it just came out and looks really promising, feature-wise. Nothing DSP related, but with ease-of-use like infinite undo/redo, intelligent autopatching, and some other niceties.
I updated the files part of this project with the last board revision, and Things are Looking Good.
Thanks for reading!