# Arduino based VCOs?

**URL:** <https://lookmumnocomputer.discourse.group/t/arduino-based-vcos/3242>\
**Category:** DIY STUFF\
**Created:** [March 26, 2021, 3:06am UTC](https://lookmumnocomputer.discourse.group/t/arduino-based-vcos/3242 "2021-03-26T03:06:34Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![analogoutput](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/analogoutput/32/29663_2.png) [@analogoutput](https://lookmumnocomputer.discourse.group/u/analogoutput)\
**Post date:** [March 26, 2021, 12:23pm UTC](https://lookmumnocomputer.discourse.group/t/arduino-based-vcos/3242/5 "2021-03-26T12:23:51Z")

</div>

> [@fezmaster](#):
>
> I’m thinking, since I’m building my Kosmo system from my own modules, i could make sure that I keep CV within the 0v-5v range and not bother with this?

You could, but be aware that’s a big self limitation: It prohibits you from ever using a design from someone else that goes outside that range, and it limits you to a 5 octave pitch range. Yeah, you can do a lot in 5 octaves. But with just an op amp you can rescale and offset (or with just a voltage divider you can rescale) a larger CV range to 0 to 5 V and not have that limitation.

_Edit to add:_ There is a downside, which is that you have a 10 bit ADC and with a 0–5 V input an LSB is 4.88 mV corresponding to 5.85 cents pitch. If you rescale a ±5 V CV to 0–5 V and digitize that then an LSB is 11.7 cents, nearly an eighth of a semitone. That’s… not very good pitch resolution. Even 5.85 cents (and that’s in the ideal case, with no ADC nonlinearity) isn’t that great. An external 12 (or more) bit ADC would give better results.

> [@](#):
>
> The other part I’m not sure about is how to properly scale the 0-5v input to the correct frequencies for the oscillator to produce the correct notes.

For that you might look at this:

> [@Arduino Nano based DCO](https://lookmumnocomputer.discourse.group/t/arduino-nano-based-dco/2613):
>
> Motivated by the thread [The Design of the Roland Juno Digitally Controlled Oscillators](https://lookmumnocomputer.discourse.group/t/the-design-of-the-roland-juno-digitally-controlled-oscillators/2598) I dug more into this topic and built an Arduino Nano based DCO. The frequency it produces is quite accurate over several octaves. Frequency is controlled by a 16-bit timer overflow interrupt that counts every cycle of the 16 mhz clock. Amplitude compensation is done by DAC MCP4728. Ramp output is buffered and amplified to 10Vpp. Note: it only works on Arduino Nano/Atmega 328p because of the timer inte…

which is a DCO, not a wavetable, but maybe the CV scaling could be done similarly. _Edit to add:_ You notice that uses a 16 bit ADC and takes 0–10 V input.

---

_[View the full topic](https://lookmumnocomputer.discourse.group/t/arduino-based-vcos/3242)._
