Saturday, October 5, 2019

CEM VCO Part I: REF02 Based Octave Switcher

I've been using three DIY ASM VCO's for over 12 years now, and they work fine, but they drift a bit in hot weather, the PWM on one breaks, and they collectively use 9U of Frac, a lot of space.

Time to get some new VCO's going to complement the 13700 VCOs I built a while back....

How about basing them on reissued 3340 Voltage Controlled Oscillator ICs?



You may have heard 3340's before, they make VCO builds easy and fun: the tough parts--temperature stability, PWM, synch, 1V/octave response, etc., are all sorted within one IC. 

These ICs along with other Curtis offerings were popular in the late 70's to early 90's, in the Prophets and OB-X's and whatnot. Then they became harder to find for years; now with the resurging popularity of modular audio synthesis they have been cloned and/or reissued and are back with a vengeance.

Let's get building! 

Let's not start with designing an octave switcher. The MiniMoog has that; the SH5 has that, the MS20 has that..... 

On the SH5 this feature is called "Range". the rotary switch lets you quickly choose octaves: clunk chunk chunk--I like it!

That means somehow producing 0V, 1V, 2V, 3V etc, accurately, and presenting this stepped voltage as a modulation source to the 3340 VCOs.

But how, Scotty, how?

I studied schems for Minimoog and a few others, and based on that, here is the idea:



OK, the reference voltage IC, in this case TI's REF02 5V, feeds a voltage divider consisting of 10K .1% resistors that stay stable in spite of  hot and cold, an octave select rotary switch, and finally a buffer for the output voltage, which means a decent performing op amp configured for unity gain. 

In this case for the buffer I will use a TI OP07--mainly because I got a bunch of OP07 SMT's at a good price from Tayda.




Breadboard Time: I had a REF02 DIP in my parts box as well, no idea where it came from but it's been there a long time. OK, let's put that chip into the unflappable Radioshack learning lab with some 10K 1% resistors. 

It seems to work!  I can safely assume the rotary switch won't add any resistance and wiring up an OP07 as unity gain buffer is simple, so I didn't bother bread boarding those.  

Whipped up a schematic in Eagle:


....and came up with this board design:


I want to keep each VCO to 2u Frac so I decided to use SMD for as much as I can for this board. I did this to save space and make to things more challenging.  

OK sent that off to China for fab, and it's back:



( I know--IC2 is backwards...fixed in the photo below)

What you see:

  • The Yellow box out is the REF02. 
  • The red shows the location of the voltage dividers, I used an incredibly tiny 4x 10K .1% 10ppm resistor array  from Vishay (ACASA1002S1002P1AT) and a 10K .1% SMT resistors.  
  • The Blue box shows the location of the OP07 op amp.


Here it is in a vice ready to test:
  


....and that's where the problems began:

  • The rotary knob selected the wrong voltages, at least partly because the Eagle footprint I used matched the geometry of the banggood rotary switch, but not the way the switch is wired up electrically. So what should have been pin 3 on the switch was really pin 1, 2 is 2, 3 was 1, 4 was 12, and so on. A mess! I checked three times to make sure the switch would fit physically, but assumed the pin out would match. "When you assume"....OK I needed to fix that and redo the PCB design.
  • I burned up a few REF02s and one OP07 because there is a mistake in the silk screen. From the photo above: on the bottom left where you see GND: The V- and V+ are silk screened backwards.  DOH! Easily fixed, I wired it opposite the silkscreen, still....dumb mistake.
  • I burned up another REF02 because I shorted out its input supply voltages, this was due to sloppy wiring from my bench power supply. That one was avoidable!
  • OK with all that fixed, here was the bad news: The output voltages were just WRONG
  • Wrong, wrong, wrong!!!
To address these issues I used a Sparkfun hot air rework station to extract the SMD parts one by one. I lifted some traces under one of the REF02's by overheating, thus ruining the entire PCB, but at least the parts could be reused.

After a lumbgurius amount of cursing, fear and loathing I discovered the problem has something to do with the rotary switch itself. 

When I removed it from the PCB I could put a DVM on each step of the voltage divider ladder and my DVM would read 5V, 4V, 3V etc, to about 3/500th of a volt, which for me was probably adequate. 

But why the switch (or the buffer? the traces? something else?) was introducing crazy errors in output voltage is a mystery to me. I had to redo the board anyway to accommodate the banggood switch pinouts but still....I wasn't sure if fixing that would fix the voltage issue. 

I confirmed that the rotary switch was at least part issue; after removing it from the board and spinning it I would get unreliable continuity from its inputs to its output. 

Wiring it up back up to the board with pin out errors fixed didn't help things at all. I felt that it was extremely easy to overheat the switch's contacts, which might have happened when soldering the part to the PCB. I am pretty sure I melted the switch's guts with what I thought to be normal soldering. Oops....



I also noticed that the unity gain buffer daughter board was having its own reliability issues, so I swapped the OP07 for an SMT TL071. 

To my bemusement I found the TL071, purchased from Tayda, didn't have any designation re: where PIN1 was (no dot, no line--nothing) which may account for the bargain basement price of USD35c each. I figured I had a 50% chance of getting it right so I flipped a coin and dropped it in with the mgr. logo facing where pin1 should be? UPDATE: Not Tayda's fault, **my fault for not researching this carefully enough**. the Tayda chip has, upon close examination, a sloped side and a flat side. The sloped side "points to pin 1" on SMD chips. Read about how to find PIN1 for SMDs on the webpage here.

OK now presenting 1 to 3V DC into the unity gain buffer board's input, the tiny op amp PCB worked flawlessly.

But still: Employing the rotary switch the circuit's output remained spotty--it worked occasionally but most often was unreliable.

Not one to give up....I got an old 6 position switcher from my junk box:



After throwing in this ancient rotary switch the circuit worked perfectly. No hiccups, no dropouts, no issues. 



Test time: I soldered a 3.5mm jack on the unity gain board and a set screwed a chicken head knob on the repaired REF02 circuit's NOS switch, and tested it using a Mutable Links to accurately sum the output of my octave generator and the output from a Kenton Midi to CV converter.  Plugging this into a couple of 1V/octave VCO's the octave tweaker prototype worked well enough, I felt, to proceed with redesigning the PCB for a more reliable rotary switch. I had to bump a VCO's fine tune slightly after changing to a new octave every now and then, but I have to do that now on my beloved 1978 Minimoog and ancient Roland SH5 as well--so: good enough.

Bang-Good-Riddance: It's time to put the cheapo Banggood rotary switches into the e-waste recycle bin. Once again I spent all day trying to fix a problem with a poorly made component and maybe I saved $10 on the "affordable" component vs. something more reliable.  Not a good decision.  I am finding good hardware is worth the extra money.

And I also have an entire VCO to build. Stay tuned.

UPDATE: I got new boards made for the REF2 based octave switcher design. For this I planned on using prepurchased, relatively expensive switches: NKK MRK206's. There is an eagle symbol for it, that's one of the main reasons I used this switch vs. all the other ones you can get from say Digikey.

Got the boards, got the switches, guess what! The expensive switch DOESN'T FIT!  Turns out the NKK MRF206 symbol fits the MRK206 switch and visa versa.  I think whoever was creating the NKK library for Eagle got the 2 parts mixed up. 

Go figure--the lesson learned again: never trust an Eagle symbol! Print out the PCB before fab, lay the parts on top, and make sure everything lines up.  Oh well...toss the boards and try again.....

Pins don't line up!


UPDATE 12-8-19: PCB has been redone (again) to fix the pin issue above. For the new board everything lined up and worked. But--a design flaw I hadn't considered--1V, 2V, 3V all all within 3/500mV to each other, but GND is one of the selections as well, and it's not privy to the relative tuning coherence for the rest of the output V's.  So 1V is 0.95666, 2V is 1.95623, 3V is 2.95362, etc., which is fine, since there is a "master tune" tweak on the main VCO board, but also, GND is -6mV!!  I am thus concerned that the "2 foot" setting will be out of tune with the other octave settings. I can't see why it won't be, but I guess we'll see.

Finished Octave switchers, with NKK fancy 6 position switches.  


UPDATE 1-5-20: not a bug a feature! I cut the trace allowing me to choose ground as one of the "V/octave" settings and wired a jack to it. See the update immediately above--GND is not in lockstep with the switched voltages so using it as a switch setting was not feasible. But 2' or whatever isn't a useful setting anyway. Now, with this EXT switch in play, we have LFO, "external", 2', 4', 8', and 16'.   

UPDATE 1-22-20: VCO is done and the ref board (with the mod above) works! More info in the finished VCO post, here.  Part II of the VCO build, where I troubleshoot stupid mistakes on the main PCB, is here.

UPDATE 3-22-23: Hope this is the last update?  I just realized a dumb mistake I have been making for my VCOs incorporating the switch in this post: in the pipe organ world, 2' is the highest frequency, not 32' which is the lowest!  So, the panels I made have this silkscreen on incorrectly. Doh!




No comments:

Post a Comment

Rotary Encoder Expermenter's Board: Improving the Hardware

Quick one this time....I have posted a few projects lately that incorporated a Raspberry Pi Pico, rotary encoder, and .96" OLED:  here ...