I'm not dead

A project log for Puredata Portable Synth

Buildroot-based puredata synth, using the nanopi neo core and a CM6206 USB soundcard

mitchelldokkenmitchell.dokken 02/05/2019 at 16:040 Comments

I haven't died, I just took a break. After adding some features like FM transmit and receive, I realized I really do need a 4 layer board. I added the transmitter and receiver on the I2C bus and I have bash scripts to control em. I upgraded the STM32F103C to an R series, which is a 64 tqfp instead of 48. To save room, I switched from 16 to 1 muxes to the good ol' 8-1 CD4051. Added a few more buttons so I can add features I want to add without ruining the organelle patches. Added some USB A ports to the bottom so you can plug in any other gear you want without having to solder to pads. 

On the software side, I've implemented the SPI screen drawing on the STM32 now, and send all messages over the UART with puredata instead of python. I'm trying to make everything run in puredata, which I understand is a fool's gambit, but I want to see if its possible. Using lists in pd 49.1 it does seem to be possible, as long as you're willing to put in the time to understand it. I've added a waveform drawing mechanism, which seems to work really well for showing samples. In the mother.pd main patch, I have logic for launching child pd processes, so mother.pd should never close. I'm adding a 4 track looper and some other features from OP-1 in the mother patch, so building full songs shouldn't require any external gear. 

Still very much a work in progress. Turns out C-media chips are only being sold by Symmetry Semiconductors, and they have MOQ of 1k sometimes. I can't get my hands on any of the USB 2.0 spec'd codecs, so I'm stuck with 48KHz 16 bit. Not a problem for now, but I do want lower latency audio. I've been on a wild goose chase reading about XMOS series USB to I2S microcontrollers, and they've really got something going there. Their XC code is readable and very deterministic, with threading and interrupts practically built-in. I do intend to follow along and create an XUF208 TQFP module with some TQFP codecs, which should all be USB 2.0. I dont intend to do any DSP on the XMOS series, but it could be a nice starting place for others.

Anyway, here is what the new design looks like:

The large empty space on the bottom of the board is for a fan.