A Better SVF Preamp – Let's get Physical

Af­ter yet an­oth­er long pe­ri­od of ra­dio si­lence, I'm back with an up­date on my di­gres­sion in­to ana­log au­dio pro­cess­ing. So no pro­gram­ming again, sor­ry. But this time, we move from the the­o­ret­i­cal realm of ana­log elec­tron­ics to the phys­i­cal im­ple­men­ta­tion! Sounds in­ter­est­ing? Then read on!

First, let's look in­to a small mod­i­fi­ca­tion to our cir­cuit. In the pre­vi­ous post, I men­tioned that to adapt the wide-band­width poly­phon­ic pick­ups that I plan to use, we'll need a fil­ter to ad­just the band­width and a sum­ming am­pli­fi­er to make the sig­nal mono­phon­ic when us­ing them with a stan­dard amp in­stead of a true poly­phon­ic set­up. How­ev­er, since an SVF al­ready re­quires three op-amps, adding a fourth in an in­vert­ing uni­ty gain set­up just to get a vir­tu­al ground sum­ming node seems quite waste­ful and pow­er hun­gry, and you re­al­ly want your 9V bat­tery to last for more than a few dozen hours. But we don't ac­tu­al­ly need to do that! Re­mem­ber how we used the fact that the in­vert­ing in­put of the sec­ond and third stage ap­prox­i­mates a vir­tu­al ground? Well, so does the in­vert­ing in­put of the first stage to which the in­put is con­nect­ed! So in­stead of one in­put with one in­put re­sis­tor to set the in­put im­ped­ance (be­low the res­o­nant fre­quen­cy, at least), we can just use n in­puts with n in­put re­sis­tors and get vir­tu­al ground sum­ming for free!

Is that all we need to change to turn the schemat­ic from last time in­to a re­al-world cir­cuit? Of course not! What do we need? Let's see, we need to…

  • se­lect an op-amp;
  • con­nect the cir­cuit to the out­side world, so we'll need some con­nec­tors;
  • pow­er the cir­cuit off a sin­gle bat­tery (or phan­tom pow­er—more on that lat­er), so we have to use AC cou­pling ca­pac­i­tors and gen­er­ate a half sup­ply volt­age “ground” since we won't have du­al pos­i­tive and neg­a­tive sup­ply volt­ages;
  • fil­ter the pow­er sup­ply volt­ages, as re­al-world bat­ter­ies are not ide­al volt­age sources;
  • add sup­ply de­cou­pling caps near the op-amp's pow­er pins, since ev­ery wire or PCB trace has a par­a­sitic in­duc­tance which can cause trou­ble when a fast op-amp tries to sud­den­ly draw more cur­rent;
  • add re­verse volt­age pro­tec­tion to pre­vent ac­ci­dents from im­me­di­ate­ly de­stroy­ing the cir­cuit.

Oof, that's a lot. So let's fire up Ki­CAD 6 and get start­ed! At this point, I should men­tion that I haven't re­al­ly done any elec­tron­ics work in more than a decade, so I had to learn Ki­CAD first, so don't ex­pect per­fec­tion. In any case, here's the re­sult­ing schemat­ic (sor­ry for the size, you can click on the im­age and open it in a new tab):

Schematic exported from KiCAD 6 a three-op-amp state variable filter. The input is used as a summing amplifier with four inputs as well. A fourth op-amp in non-inverting unity-gain setup is used to generate a half supply voltage reference.

Re­gard­ing op-amp se­lec­tion, I de­cid­ed to go with the OPA1692, a low-pow­er, low-noise, low-dis­tor­tion, uni­ty-gain sta­ble, rail-to-rail op-amp. At on­ly 650 μA per op-amp, the whole cir­cuit should on­ly draw about 2.6 mA, which is not great, but not ter­ri­ble ei­ther. How­ev­er, like most mod­ern in­te­grat­ed cir­cuits, it is on­ly avail­able as a sur­face mount com­po­nent, so bread­board­ing is pret­ty much out of the ques­tion. So we'll have to de­sign a PCB straight away 😱. But one nice thing that hap­pened in the past decade: there are now some very in­ex­pen­sive PCB man­u­fac­tur­ers and per-via charges that I was used to from be­fore are gone too!

J1 is a 2 mm pitch pin head­er, as that's what Cy­c­fi use to con­nect their poly­phon­ic pick­ups. Pins 7 to 10 are not con­nect­ed, as my bass has four strings, so the re­main­ing four chan­nels are un­used any­way. For all oth­er con­nec­tors, I used 2.54 mm (100 mil) pitch pin head­ers, since those are more com­mon, eas­i­er to crimp with the tools that I have, and oth­er sol­der­less gui­tar pick­up sys­tems use them as well. J2 is used to pass through the sig­nals to my bal­anced out­put board that can pro­vide phan­tom pow­er (Vph) when in use, so that the bat­tery isn't drained un­nec­es­sar­i­ly. J3 goes to a TRS out­put jack, where a mono­phon­ic jack shorts Bat- to GND so that the bat­tery is on­ly used when the bass is in use. J4 is the bat­tery con­nec­tor. Fi­nal­ly, the res­o­nance po­ten­tiome­ter RV1 is al­so con­nect­ed via a head­er, not di­rect­ly on the PCB, since I didn't want to man­date a fixed dis­tance be­tween the two po­ten­tiome­ters.

C1 to C4 and C7 pro­vide AC cou­pling, i.e., they block any DC off­sets from the in- or out­put while pass­ing through AC, since we have to de­fine our own off­set Vref for sin­gle-sup­ply op­er­a­tion. The size of these caps is com­put­ed based on the in­put im­ped­ance de­fined by R1 to R4 (R5 and R6 need to match to get uni­ty gain in the pass-band) or the ex­pect­ed in­put im­ped­ance. How­ev­er, since I'm us­ing mul­ti-lay­er ce­ram­ic ca­pac­i­tors that suf­fer from DC de-rat­ing, i.e., their ca­pac­i­tance drops the more DC volt­age is ap­plied, of­ten up to 80% near their max­i­mum volt­age, I used some­what overdi­men­sioned cou­pling ca­pac­i­tors. See https://weblib.samsungsem.com/mlcc/mlcc-ec.do for de-rat­ing curves of a va­ri­ety of ca­pac­i­tors (se­lect the “DC Bias” curve).

U2A, i.e., one half of the sec­ond du­al-chan­nel op-amp, buf­fers the half sup­ply volt­age gen­er­at­ed by R14/R15, to cre­ate a low-im­ped­ance sin­gle-sup­ply volt­age ref­er­ence. The buf­fer is nec­es­sary as the im­ped­ance at all the Vref nodes lead­ing to the po­ten­tiome­ters, i.e., at R7, R12, and R13, can be quite low. C15 is much larg­er than the largest ca­pac­i­tance the OPA1692 can drive, but since Vref is DC it shouldn't cause is­sues and should in fact im­prove the per­for­mance at high fre­quen­cies. At least it does in sim­u­la­tion, but if it turns out to be an is­sue, the part can al­ways just be omit­ted.

Pow­er sup­ply fil­ter­ing and sup­ply de­cou­pling is pro­vid­ed by C8 to C12. C8 is the main fil­ter­ing ca­pac­i­tor. The small­er ca­pac­i­tors C9 to C12 are the sup­ply de­cou­pling caps that should be di­rect­ly next to the op-amp pack­age's V+ and V- pins. The lat­ter is of course con­nect­ed to GND since we're us­ing a sin­gle sup­ply, but a de­cou­pling ca­pac­i­tor to VCC here cer­tain­ly doesn't hurt, al­though it isn't strict­ly nec­es­sary ei­ther.

Fi­nal­ly, D1 is a du­al Schot­tky diode which serves the du­al pur­pose of re­verse volt­age pro­tec­tion and stop­ping the phan­tom pow­er sup­ply from the poly­phon­ic / bal­anced out­put board from driv­ing the bat­tery, which is po­ten­tial­ly dan­ger­ous as well. For pure re­verse po­lar­i­ty a MOS­FET would be more ef­fi­cient due to a low­er volt­age drop, but to get both re­verse po­lar­i­ty pro­tec­tion and to stop the phan­tom pow­er from driv­ing the bat­tery would be­come some­what com­plex.

Aside from that short 😉 list of changes—and the switch from 50 kΩ to 100 kΩ po­ten­tiome­ters and cor­re­spond­ing changes to shap­ing re­sis­tors and feed­back ca­pac­i­tors—the ba­sic cir­cuit is the same as be­fore.

For the PCB de­sign I went with tiny 0402 (1.0 mm × 0.5 mm!) and 0603 for all re­sis­tors and ca­pac­i­tors that I could cheap­ly get as­sem­bled by the PCB man­u­fac­tur­er. I se­lect­ed larg­er 0805 parts with over­sized hand-sol­der­ing pads for un­usu­al val­ues and low-tol­er­ance com­po­nents that I would sol­der on my­self, since I am both new to SMT sol­der­ing and have some­what shaky hands. For the PCB stack­up, I de­cid­ed to go with four lay­ers since it's not sig­nif­i­cant­ly more ex­pen­sive and should im­prove EMI per­for­mance, i.e., be less sen­si­tive to pick­ing up elec­tro­mag­net­ic noise from the en­vi­ron­ment, due to the small­er dis­tance be­tween ground plane and sig­nal traces.

The de­sign process was te­dious, po­si­tion­ing and repo­si­tion­ing com­po­nents again and again un­til I had a lay­out with min­i­mal lay­er changes and a small board size. I'm sure the next one will go much quick­er. In any case, here's the re­sult:

Three-dimensional rendering of a PCB with components and one semi-transparent dummy model.

And through the mag­ic of edit­ing, or rather the fact that a lot of time has passed be­tween this post and the last, here's what I re­ceived (9V bat­tery for scale):

Two PCBs and a 9V battery. One PCB shows the front of the circuit with some components assembled, the other shows the back of the circuit with a silkscreen “jsAudio SVF-4 V2”

Why does it say “V2” on the back, I hear you ask? Well, I may or may not have ac­ci­den­tal­ly swapped the in­vert­ing and non-in­vert­ing in­puts of the op-amps in the first ver­sion that I sub­mit­ted to the man­u­fac­tur­er. An­oth­er rea­son be­sides ship­ping times and Chi­nese hol­i­days that this post is so late.

Is that it? There are still a cou­ple im­prove­ments that can be made to the preamp that I thought of af­ter mak­ing this first ver­sion. By adding a con­nec­tor to the in­put sum­ming node, the preamp could be used both with a tra­di­tion­al, mono­phon­ic pick­up, and with poly­phon­ic pick­ups with four, six, or more chan­nels. By round­ing the ca­pac­i­tor val­ues (910 pF is quite close to 1 nF) dif­fer­ent­ly and by se­lect­ing re­sis­tors in E12, re­sis­tors and ca­pac­i­tors avail­able at the man­u­fac­tur­er in small sizes could be used in­stead, while on­ly in­cur­ring a small er­ror in ad­just­ment range. They don't cur­rent­ly have any op-amps that match my pur­pos­es in stock and un­usu­al parts in­cur an ad­di­tion­al cost any­way, so I'll stick to hand-sol­der­ing those for fu­ture re­vi­sions too. Al­so, it turned out that the po­ten­tiome­ters I chose have fair­ly short thread­ing and def­i­nite­ly won't fit a gui­tar with a wood top and not a pick­guard. Not a big is­sue, since their 2.5 mm pitch is close enough to 2.54 mm that I can use dif­fer­ent ones via a pin head­er, but it would be nice to be able to se­lect dif­fer­ent ones. Here's one po­ten­tial work-in-progress de­sign:

Three-dimensional rendering of another PCB with a custom footprint that allows different potentiometers to be used.

That's it for this post. No prop­er sound sam­ples yet, as I'd need to do some cus­tom rout­ing (and lack a router of the wood­work­ing kind) to get ev­ery­thing in­to the bass. Al­so, my first SMT sol­der­ing job looks so bad that I don't want to show you a pic­ture of that 😅. As per usu­al, feel free to fol­low me and send me a DM on Mastodon if you have any ques­tions or com­ments.