Need help with Arduino MIDI-to-CV

First, hello and thank you for this fantastic community. I’m just starting out on my diy synth journey and this community and the Youtube channel were a big motivator.

I already build a VCO based on the Moritz Klein/Erica Synth VCO and now I need something to drive it.

Based on the midi to cv circuit by HAGIWO I came up with this variation:

I am still a beginner in electronics so I have some questions and probably some errors or bad choices in my circuit. My biggest questions where I need advice are:

1 - I only have a MCP4922 without internal reference voltage so my plan was to use the ~5V Arduino supply as reference voltage and scale it up to 0-8V or 0-10V (and splitting the 0-4095 DAC values accordingly) via the OpAmp and trimming resistor. But I’m unsure if that is a good idea, even so it seems to work on breadboard. Any ideas here? And how precise is good enough? My current breadboard implementation is roughly ~10mV off per octave…

2 - I not sure how I should build the clock, trigger and gate outputs to include an LED. There seem to be different ways to do it that I have seen from different people. And should I include the diodes like in HAGIWOs circuit?

Feel free to comment on any other problems of my circuit, I’m eager to learn.

Without a solid reference voltage the CV could possibly be out each time you use it. I prefer the mcp4822 with it’s internal vref or a quality reference voltage generator.

Depends how good the regulator is on the Arduino. The UNO has a regulator but the Nano doesn’t.

Hi pgeh,
I am writing to let you know that you are not alone, and because I had to laugh a little because I found myself in exactly the same situation: I was building a VCO and realized that a VCO without a VC is just an O and not very interesting on its own. Instead of building a Midi2VC, I ordered a second-hand Arturia KeyStep and am now waiting for it to arrive and in the meantime I’m working on the StepSequencer from the MKI/erica synth series.

That depends on your ears !

B.t.w. add a text IN your picture that the circuit is NOT TESTED or TESTED/WORKING so that people know what they get when they pic up this image or find it via a search engine without the accompanying text.

Diodes are there to protect the inputs or outputs from accidental high or low voltages. I’m always adding these (with a series resistor), because I myself have accidentally connected output signals to an output by accident. But you also want to protect inputs, possibly from negative voltages in case of an arduino.

Thanks for all your replies so far.

Would something like a TL431, combined with a trim poti, be a possible solution for a stable Vref? That would be a cheaper and preferred solution than buying an additional mcp4922. But I’m too inexperienced to know if that would work.

What do you mean by regulator in this case? The arduino nano does have an LM1117 5V regulator, which I use via 12V on VIN. But my breadboard implementation of this circuit is not very precise, so I want to add a precision reference for the final circuit anyway.

That would be a nice investment for me for later. But I already have a Oxygen Pro Mini MIDI Keyboard and building the MIDI-to-CV module is quite fun and interesting, so that’s the way I want to go for now, and it’s cheaper too :wink:

For my ears it’s good enough to play around, but it gets noticeable over multiple octaves, so I’d like to improve it.

Sorry about that, I should have remembered that but it seems I can’t edit my post now and replace the image after someone replied? Any idea what I could to?

Do you have an example circuit with usable values? What diodes would I need for that?

Thanks again for help everyone!

You can ask the moderator to open the post for you I believe.

Here is an updated but not yet tested schematic of the circuit. I have not yet ordered a TL431 shunt reference to actually test the Vref part but would like to get feedback if that would even work.

Here is the Vref part of the circuit. The datasheet of the TL431 recommends adding a condensator for stability but no recommendation on the size. Would this 100nF ceramic be adequate? I have no idea what to base that guess on except that these 100nF caps are commonly used to stabilize IC power inputs.

For Arduino IO protection I now would use 1N5817s. But I’m not sure if the output circuit here is correct. And wouldn’t be a problem to clamp overvoltage to the ardunio 5V power rail? Wouldn’t that put the e.g. 12V overvoltage on the voltage inputs of the mcp4922? I don’t quite understand how that works.