8 Bit VCDO!

This is a documentation page for my 8-bit VCDO (Voltage Controlled Digital Oscillator) prototype I am working on!


  • Voltage controlled pitch, 1v/octave!
  • Voltage controlled waveform selection
    • Sine
    • Triangle
    • Sawtooth-triangular
    • Ramp
    • Saw
    • Square
    • Noise
  • Voltage controlled tuning: can go up or down by an octave or more
  • Voltage controlled output amplitude
  • One digital pin that enables the output or not. If you send an analog voltage here, you can get some interesting glitchy effects when you give it a voltage *near* what it thinks is the boundary between zero and one

Here's a youtube video of stacking a few of these oscillators together to make a keyboard controlled synthesizer.

Project progress

Principal firmware is feature complete. Developed two variants based on ATTiny25 package availability. Designed SMT circuit (still needs testing and validation)

Project TODOs:

Here's my big list of TODOs for this project:

Need to clear out enough space in the back room to start making the reflow oven. I purchased an Adafruit EZ make oven kit but haven't assembled it yet.

Do some more research for current components and component prices -- haven't looked at anything for over a year now and the chip shortage is a constantly moving target

Re-calculate and verify all assembly timings

Do some over voltage tests now that we have a final circuit

Test and verify the three different VCDO pitch modes. (the three modes are "semitone" where the input voltage is quantized to semitones on output [This is the one that I think is not actually finished and I need to write more code for], "standard" where each semitone is forced into a discrete 8 bit value, so there exists at least one input where the output is an absolute musical note, and "natural" where I'm just going to calculate what 37 / 255 is and output that frequency (most notes will be rather detuned, but sliding through a number of tones will be more accurate.)

(I should note the modes are going to be set when I flash the firmware, they involve different delay tables and there is no way to switch between them dynamically)

Re-generate delay tables to accomodate 0 volts = C instead of 0 volts = A, because I think this is the default for the Arturia Keystep 37 that I got

Connect the Keystep 37 to my PC and figure out how to set the CV out mode to limit it to 5v on the pitch output

Figure out where I left off the 8 step Arduino Micro sequencer and pick that back up again

R&D some simple Arduino projects that can use the VCDO

2023-04-17: Order a roll of Kapton tape so I can finish the EZ Make Oven

2023-04-17: Need to purchase a solder stencil so I can use solder paste to put the SMT components on and reflow them. I tried just putting some on with a toothpick and it was a disaster.

2023-04-17: Mastodon recommends the ChipQuik room temp lead free solder paste from Digikey. I haven't bought it yet, but I did get another tube of Maker Paste from Adafruit for now. Need to purchase some solder paste (I am taking recommendations for something relatively easy to use for a small, home scale operation, if you have any ideas please let me know at @crazybutable@mastodon.social)

2023-03-22: Make a todo list on this page instead of keeping it in my head

2023-03-03: Buy or manufacture a keyboard so I can make the VCDO playable Edit: I STILL cannot find the midi->CV conversion circuit (I found it 8 or 9 months ago but put it somewhere "safe" and now I don't know where it is). So I bought an Arturia Keystep 37 which has CV/Gate output. And since I have an "enable/disable" pin on the VCDO, I can hook that right up to the Gate output!