Following testing of the one-channel CV/Gate controller and discussions with Stephen, I moved on and designed a four-channel version. The MCP4725 DAC converter used in the previous version can be combined with another DAC on the same I2B bus by removing a connection on the breakout board. However, the I2C bus won’t scale further.
I first explored the possibility of multiplexing the analog output of a single DAC using LF389N sample-and-hold ICs. In principle it worked, but the maximum output voltage was far off from the desired 5V, and actually closer to 2.5V. Then I realised that the LF389N needs a dual rail power supply, rather than the 0V and 5V that I was supplying. I tried creating +5V and -5V with a ICL7660N voltage doubler/inverter, but did not manage making the whole setup stable. In hindsight, I probably should have used some 0.1uF capacitors to stabilise the power for the ICs.
Realising that I needed more ICs anyway, I opted for switching from the breakout board with the MCP4725 I2C DAC to an MCP4822 IC. The single pin interface (SPI) bus of the MCP4822 is much easier to extend, since every device has its own “slave select” line by which you can enable/disable it.
Another request was to scale the control voltage up from 5V to 10V. The MCP4822 has an internal reference and outputs a precise 4V as maximum value. Amplifying this with an operational amplifier circuit with 2.5x amplification results in the desired output. I had some TL072CN dual Opamps lying around. Again, these require a dual rail power supply.
Failing in making my own +10V and -10V dual-rail power supply delivering enough uA for all ICs, I searched further online for a DC-DC converter and found the HN Modul SIM1-0512D-DIL8 at this online electronics shop.
The form factor is again a separate aluminium enclosure, which connects over mini-USB to the computer and which has eight (4×2) 3.5mm audiojack female connectors.
The whole electronics fits nicely in the 80x50x20 mm enclosure.
The perfboard is quite crowded with the Arduino Nano, 4 ICs, 16 resistors, 4 small ceramic capacitors, the DC-DC converter module and one large capacitor. The bottom side of the perfboard has a whole tangle of wires.
For testing, I implemented the cvgateOpen.m graphical user interface in MATLAB. It has 4 control voltage sliders and 4 sliders for the gates (which are either “off” or “on”).
Here you can see the control voltage output of the first channel at 7.5 Volt.