Monday, October 27, 2025

CEM3320 Based Voltage Controller Filter. RTFM.

"Read the freaking manual"--"freaking" may not be the right word.

This last week I built my second clone of the Sequential Pro-One VCF, reconfigured slightly for Eurorack:

After 2 revisions: works but more effort needed.


ABOUT THE IC

The CEM3320--the IC upon which this post's voltage controlled filter is based--is a strange beast. 

Read about its developer here; essential reading about the CEM3320 can be found on Electric Druid's page, here.


Specifics about the CEM3320 and the Pro-One, a classic mono synth that used this IC, are also found on Electric Druid's site, here

Mod wiggler pages focusing on this IC are found here and here.

PAIA (one of my favorites) made an experimenter's board for the CEM3320...cool! Get the PDF here.

And--didn't find this until a few days ago--a schematic for a complete DIY Pro-One VCF can be found on dslamnig's site, here.

Fortunately finding 3320's for sale is easy. Original early 80's CEM3320's are unobtanium, but there are clones and work-alikes available from CoolAudio and Alfa, and I read that CEM has reissued it.  

UNDER THE CERAMIC

To learn about what makes this chip go: two datasheets are found online--the 2 pager (here) and a 6 pager (here).  

At the heart of the 3320 lies 4 active filter building blocks--a current to current gain stage, whose input is held a diode drop above ground, feeding a pin to tie a capacitor to ground or to an input source, and after that, a buffer. 

A feedback resistor ties output to input. 

With no signal at input, the gain stage is set for .65V (diode drop) at input and .46*VCC at output. Ohms law reveals that for 15VCC, Rf should thus be 100K. Details here.

Resonance is taken from the IC's capacitor-coupled output and fed back into the initial gain stage. 


The amount of resonance feedback is controlled by an OTA--in this case, easier to implement than say a CA3080; current limit the OTA's resonance control voltage to a 0-12V DC signal and present it to Pin 9.

In general, even after reading, the 3320 didn't make a lot of sense until I redrew the layout for a few common use cases' resistor configurations. This information was already available online, but the exercise helped me better understand the IC.


Bandpass. Yes, the CEM3320's 4 active filter blocks have odd pin assignments.

Highpass


Lowpass


THREE TIMES' THE CHARM?


I have already created 2 revisions of a Eurorack Pro-One type VCF, sent them off for fabrication to this blog's ever-humble sponsor, PCBWAY, who sent PCB's back to me lickity-split, to see if my layout yielded a working filter or a smoking piece of charcoal.

For the first revision: sadly, its PCB layout turned out to be a non-starter because it contained a stupid error: the Pro-One schematic indicates that these 3 critical resistors get tied to the negative rail:


 .....but I tied them to V+.  

Very Nice!  

This foobar was indeed beyond all repair--it would have meant too many trace cuts and fixes. The REV1 build went into E-waste.

Fortunately after a redesign the good folks at PCBWAY rushed Rev 2 PCB's back to the USA.  

Double happiness is getting boards and stencils from the blog's patient sponsor, PCBWAY....please help this blog by checking them out.

 Stencil + paste + SMD parts, then I put the PCB on a hotplate. 150C > 215C > 150C did the trick.


Parts is parts

Testing....



More testing....


So--did REV2 work?  

Lo and Behold. Nope. 

If I had read the frigging datasheet with a bit more care it might have, but, well, I didn't.

In fact, looking over all the links above, what I was thinking? There was a ton of information about how to wire up a CEM3320 and I apparently ignored most all of it.

One critical detail missed: to control VCF's cutoff frequency you send the CEM3320 an inverted control voltage. Meaning: lower voltages meant higher cutoff frequencies while higher voltages meant a lower cutoff frequency. 

The suggested CV range is 155mv to -25mv. 

Did I read this before starting the layout and build?  Nope. 

For revisions one and two I had a CV mixer at input, then inverted the inverter:



For revision 2 I used a 24 gauge jumper wire to go from R4 to pin 6 of the TL074:

  


Which ended up looking like this:

                                                          



With this fix and some component value changes the filter now worked--it swept, got the famous shimmery resonance sound, and sounded funky with fast decay.

But the wiring fix bugged me; I finished a 3rd revision to clean up this mistake.

To not have to do a major PCB redesign I left a quad op amp on the PCB, even though only 2 op amp stages are used. Sorry.


The modified REV2 sounds pretty good, but not great, it may be a bit too bright with some unwanted grittiness when resonance is approaching oscillation.  

I noticed that changing the voltage rails (from -12V to -9V, from +12V to +15V, and so on), made the filter sound, well....different, and every now and then, to my ears, better; more tweaking of REV3 is in order. 

I'll do that in the next few weeks and post again. 

Until then avoid the CEM-icals.






Tuesday, October 14, 2025

AD5761: Arduino Library and S/H Mux--one worked, the other sucked

 

Two goals since last time: see if I could create an IC library for Arduino sketch, which was surprising easy, and breadboarding an Arduino based bipolar audio Sample &Hold multiplexer, which I never got working. 

A basic sample and hold circuit, aka S/H or just SH. The HOLD COMMAND is provided by a microcontroller switching multiples of this S/H circuit one after another in rapid succession, allowing a single DAC to produce multiplexed output voltages.

At the bench I used an AD5761 16 bit bipolar DAC IC (previous post here), an Arduino Micro, a library for the DAC I wrote for Arduino Sketch (get the library on github, here), and, for the mux switch, the ADG413 analog switch featured in previous post here.

Writing the sketch library took a lot less time than anticipated.  

I used the Helge Langehaug's sketch here as a starting point and combined it with embedded C code created previously--post is here

To get the C library working with an Arduino sketch IDE:

Worked first time--after initializing the DAC I could enter values into an AD6751_out() function and sure enough, correct voltages were present on my scope. 

You can get the working library file and a sample .ino sketch on github, here.

Whole thing took less than an evening to craft. Joy!

With confidence soaring I used the same library to create a 16-bit four-channel sample and hold. 

It's the idea found in this previous post, but employing Arduino sketch .ino/.h files instead of embedded C.

Guess what: the AD5761/ADG413 based S&H circuit never worked. At all.

I could get pretty steady sampled DC voltages out of the circuit, but the voltages at output were never close to being accurate, especially when voltages went below ground.  

I speculated that the issue was a combination of trying to breadboard the design (I read that accurate S/H circuits need to have caps and buffers close to one another which didn't happen here), using the AD5761 in bipolar mode instead of 0-10V, which I hadn't tried in a mux design before, and the lack of precise timing in the world of Arduino--I constrained my sketch to use only delay(), digitalWrite(), Serial.begin() function calls and the rest, in the best Arduino fashion; I could have called out Atmel registers in my code and slammed away, but I might have well have used embedded C for that.

And/or some really stupid mistake(s) I never figured out.  

After a too many evenings (four? five?) I gave up; easier to use unipolar dacs then level shift them with op amps.  

Or, use 3 AD5761's in parallel.

Or, buy a 4- or 8-channel DAC with the mux built in.  

Or, whatever.....

Thinking I had an issue with the ADG413 I tried a CD4051 Mux. Nope, that sucked too.  

The S/H worked, sort of, but the voltages were never close to accurate. I stripped things out and tried to use a Salae logic analyzer to sort the issue. Nope, it wasn't SPI.   


OMG, too many wires, too much mess.  

Overall: breadboarding is NO FUN

I am probably returning to ditching breadboards and getting small quantities of PCB's for experimentation from the blog's faithful and patient sponsor, PCBWAY

If said PCB's don't work because my design is crap, well, I will pitch them and try again.  

Even with the tariffs, I think time- and money-wise I would have come out WAY ahead this time. 

Overall a win in library land, but this was a lot bench time spent chasing what I thought was a cool idea with zilch to show for it. 

Enough! See ya next time.

Canva Affinity and Kicad 9: Graphical Madness for DiWhy Projects

Many thanks Elton at  Otter Mods  for introducing me to Kicad and Affinity . ============ When I look at professionally created front panels...