Raspberry Pi Pico DCO

Thanks for the reply, yes I had considered 2 boards as a solution but how to keep them in sync as I need the same 4 outputs to play on each note press.

I’ve never used a PICO and to be honest I’ve only used a Pi4 once and it was not my design.

I can do Teensy and Arduino stuff, how difficult do you think it might be to port to a Teensy 4.1?

I will study the Pico and learn about it. I was also considering 12x Seeed Pico xr2040 single oscillators which would continue to work with my existing CV setup.

I mean both boards got the same function for voice assignment so output should be the same on both boards. At least in principle.

I heavily rely on the PIO feature of the Pico to get a stable reset frequency for the DCO. So porting it to Teensy directly won’t work. Maybe PWM of the digital output pins can be used instead. Other logic like processing MIDI and voice assignment should be easy to port.

Providing both boards never went out of sync then it’s a possible solution.

Pi Pico would be an excellent choice, but if you want CV control you might need to add an external ADC chip(s). There are/where design issues with the onboard ADC and only 3 ADC pins to boot.

If you do 3x voices (6 osc) per Pico then there should not be many syncing issues.

PIO is amazing, in short 8 simple microcontrollers that can directly manipulate gpio pins independent of the main processor. I’ve even seen someone implement a 12/16bit DAC (16-but needs overclocking IIRC) using PIO and a passive filter!

Thanks for the reply but I think splitting across 2 boards that way also gives me more problems, like how to handle portamento etc, if I glide between two boards how will it know how to time that glide, it adds more complexity. I’ve ordered 2 picos for testing and I will let you know how I get on. I could keep my existing midi to CV converter and try to use that to tell the Pico boards over SPI note on/off commands etc or add a midi out to the board and pass midi notes and cc messages to the boards.

So I’ve built a board and I have a few questions.

  1. Where does the LFO input to the DCO’s appear, I know you have LFO of the PWM, but I cannot see LFO for the DCO frequency and I cannot see any control of that on your synth. I can see LFO into the filter, PWM but not frequency.

  2. Is there documentation regarding the stack/detune connections, I’m guessing 0-3.3v on some of the mod pins.

If you are referring to the circuit at the top of this topic, it appears it does not take any pitch CV at all. Pitch is controlled only by MIDI.

1 Like

yeah it seems a limitation of this design is there is no FM input. Jan has no intention of adding FM to the DCO’s and I’m sure it’s beyond my skill set.

The stack and detune are on the mod pins ADC1 and ADC2

Here’s my Pico DCO test bed. I’ve only built one waveform converter so far for testing, it wasn’t working at first, I got a clipped sawtooth. Replacing the TL074 fixed that issue after checking my wiring.

I have a linear FM code mod to test as well but I need to build an LFO to test it with.

Also I want to implement octave switching up/down like the Juno. That shouldn’t be too hard as there are spare gpio pins.


Thank you. Your chaotic workbench fills me with hope. I must learn to embrace the entropy!


I got a bit further and finished the board, added a level converter for the gates and buffer. LEDs showing the note order. Need to breadboard a second one with LEDs only to see if they stay in sync.

Also what I have noticed is that the detune pot is not read in real time, it only gets read when a new note is played. Shame you can’t hold a note down and set a detune.


I hope this is OK to post - I had a go at making a strip board layout from the oscillator voice schematic. I’ve done one with PWM and a ‘dual’ layout with no PWM.

Both currently unverified, but hoping to build the dual layout soon as thinking now about using this as the base for a poly/paraphonic build.


This is the progress on the dual DCO boards, the controls are now realtime and includes an FM input.


Second board DAC now functional, each time a key is pressed a CV is generated on the corresponding channel. Yet to calibrate the output but so far looking good.

So now this second board can be used for filter tracking in a polyphonic system.


Still thinking about putting together a full poly build on stripboard. Here’s what I’m thinking so far…

Planning on using stacking headers to connect multiples of the same boards on top of each other. When I get going I’ll start a separate thread to not hijack this one.


Looks good, do you plan to add filters?

1 Like

I’m currently just thinking about running it straight through a single ms20 filter with its own envelope generator.

My plan was to put the gates through OR gates and send the output to the envelope generator, so that if any note was played, the filter would be open, and it would only close when no notes were being played.

I have been toying with the idea of building individual filters… but it adds quite a lot on as I’d really like the filter on a separate envelope. What would you do?

If your going to the trouble of building all of these other modules then adding multiple filters would be the best solution, you will soon get tired of paraphonic operation unless you specifically want a monopoly style synth. Also I don’t see an LFO or noise source


Hmm, OK. Now that I’ve got my head round the other pieces I’ll turn my head to the filter. I think before I’d just thought… how can I do this easily? But I think you’re right, it’d be best to do it properly.

You could look at simple 24db low pass filters with voltage controlled resonance like the CEM/AS3320 designs used in the pro 1, digisound 80 etc. If you want to get more involved you can look at pole mixing filters which can provide up to 16 types of filter states depending on configuration of low pass, high pass, band pass and all pass states. Or even you could build ladder filters if you want that Moog sound, but I heard people say that it was hard to get all the ladder filters to sound the same, wheras I don’t think that’s a problem on chip based filters.

I’m not sure what you are trying to achieve in this design, it looks like a 3 note poly synth with no filters, have 3 VCAs after a single filter if you do include one makes no sense. Before the filter yes, but that is overkill to eg the sound before any filter. The Ensoniq range could do that. Maybe draw a block diagram of what you are aiming for.