Sunday, July 13, 2025

3 Channel Bipolar CV generator Part I: Didn't Fit; Built it Anyway

Readers: this is a work in progress but you can get the files associated with this post from Github, here

===========

Back again! 

I wanted a synthesizer module that accurately outputted and displayed 3 independent control voltages ranging from -10V to 10V DC.  

The early prototype used a 3D printed front panel conforming to PAIA Frac format. Camera Synch issues meant my digitial camera couldn't capture all 4 lines of the working OLED.  

There were a lot of ways I could have done this--using a multiplexed bipolar digital to analog converter (post for DAC here; multiplexer here) but instead employed the 16-bit ADC features of the impressive ATTINY 1624 MCU, covered briefly in this previous post. Overall, design for version 0.1 was simple; I used the pots configured as voltage dividers, buffered by op amps, took the 0-5V wiper voltages from the pots and connected that to ADC inputs of the ATTINY, and had the MCU feed a 128 x 64 OLED display to convey the 3x voltages.

Finally I used inverting op amps to get 0-5V DC from the pots to the -10 to 10VDC needed at output:  

One of 3 identical buffer subcircuits. A simulation of this simple inverting buffer/amplifier can be found hereI have posted the files for this prototype at Github, hereWhen the design is further along I will post files to the PCBWAY Community.

CONSTRUCTION

I laid out the design in KICAD 9 and used Arduino Sketch to (quickly) create the firmware. Because the ATTINY isn't blessed with buttloads of flash memory I used Bill Greiman's memory-friendly SSD1306ASCii library (here) to provide functions needed for the OLED. 

I sent the gerber file to this blog's trusty and most-excellent sponsor, PCBWAY. Very soon the boards were back. They do great work! You can help out the blog by checking them out here.

The prototype used 1206 SMD components, a stencil, and a Eurorack formatted front panel. After years of trying different workflows, this combination seemed a decent mix for fast prototyping, flexibility in terms of modification, and small size. 

After unbagging and inspecting components I discovered a major mistake: the PCB was too tall to fit into a Eurorack or Frac enclosure:


I contemplated pitching the entire thing and starting again, but instead consulted the guys in my audio geek discord group. Could this be fixed? No, but, one member suggested I try to build it anyway, to shake out the first batch of mistakes, before going to Version 2. Good idea....

I got building....

Used my $35USB hotplate for SMD, works great.

 
Original design incorporated Eurorack power, but I adapted this to Frac Power using edge connectors, 22 gauge hookup wire, and shrink tubing. This allowed a fair amount of twisting and bending without breaking wires or shorting connections.

Same idea for the rest of the hookup wire....


Initial tests showed way too much current draw for the positive rail--should have been more like 4-5mA, but here it's 230mA. I pretty quickly traced this to a 78L05 regulator being installed upside down, due to using the wrong Kicad footprint--I used the 3N3904 footprint, not 78L05, so Pin 1 and 3 were flipped. Whoops. I pulled the 78L05 using a Hakko FR301, flipped it, and resoldered. Surprisingly this snafu didn't blow up the MCU, nor the regulator.  




With the power problems sorted, things seemed to work--albeit not terribly accurately -- off by as much as 5% at times--but OK for the first attempt.


I laid out a quick-and-dirty front panel for the PCB using FREECAD 1.01.

....then mounted the PCB to the 3D printed front panel:








Version 0.1, unpowered, in the flesh...



Version 0.1 seen through the lens of open source AI (ComfyUI + Flux Context Dev) with a 12GB Lenovo/Nvidia RTX2000 GPU.  This first and only pass through the AI algo took 50 seconds and beat the holy crap out of what I could have achieved if I had worked for hours in Photoshop--if this doesn't scare the hell out a tech professional, I don't know what does.

OK, quick post but enough for now. I will keep plugging away at this project and hope to have a revision with better accuracy in the coming weeks. 

So--until next time: don't breathe the AI.

3 Channel Bipolar CV generator Part I: Didn't Fit; Built it Anyway

Readers: this is a work in progress but you can get the files associated with this post from Github, here .  =========== Back again!  I want...