Synth pages
   Synth story
DIY modules
   A110 sine shape
A117 clock in
A127 LP/BP switch
A135 indiv outs
A140 self-cycle
A150 switch voltage
A151 2/3 steps
A155 16-steps
A161 clock in
A163 DC couple
IEC power inlet
Plan B summary
M9 bleed-through
M10 envelope
M11 filter
M14 crossfade
M15 sine adjust
M15 others
M17 timer
M28 upgrade
M32 joystick
M38A Expander
Diode Ladder Filters
Korg MS10/20 Filters
Moog paper refs
Fooled by SPICE
Filter pole animations
Serge VCS
EDP Gnat schematics
Old brochures
PE Synth/Minisonic
About me
Photo links
Purple Mountain
Contact details
What's new
Cheltenham Circular Footpath
The Trouble with Christmas
this night wounds time
Behold the Computer
Solartron scans

Site map

I have a Facebook page for occasional blog-like articles:

Tim Stinchcombe's Synth Stuff


Plan B M15 VCO sine adjustment/waveshape mod

[Update 26 Mar 2010: a number of sources have pointed out that what I have called 'feedforward' below is an established technique for 'cancelling the cusp' at the peak of the sine, which often arises in tri-to-sine shapers. The method dates back to at least 1977, and has been shown to give definite benefit to sine-shapers based on differential amplifiers—whether it gives similar gains to the FET-based Middlebrook & Richer method here is apparently not so clear cut. Thus it may be that Buchla's application of the method in the 258/259, which I have rather glibly thrown away with the deletion of the 220kΩ resistor R79 below, is in fact of some use (though my main motivation was alleviating the difficulty of the adjustment method itself)—I am continuing to look into this matter. Over the years I have gathered a large number of references to sine-shapers in both synth-related electronics books, and also the academic literature, and I'm considering putting them all together on a new page, if I can do so without too much effort, so watch this space...]

[The following relates to the 'Rev 2' variant of the module, specifically to 'Rev 2.4', from 2007, which has the main PCB parallel to the faceplate, with 3 smaller boards mounted orthogonally to it. There have been so many revisions to this module it is hard to keep up: from a Matrixsynth post, there was a change to the waveshaping circuit in moving to Rev 1.5; in addition the trimming arrangement was altered for Rev 2, according to message #1444 of the Plan B Yahoo group. An attempt at itemizing all changes to the M15 appears on this page.]


My module has undergone a considerable amount of man-handling whilst I have been working with it, so it was no surprise that the sine waveshape had become 'suboptimal'. When I came to re-adjust it, I found it almost impossible, as there is a lot of interaction between the two trimpots involved: Sine Amp and Sine Adj—the second pot is clearly intended to take the DC out of the triangle wave input (coming from the 'core' of the oscillator); the first pot sets a gain factor to increase the amplitude of the triangle. A few minutes analysis uncovered the problem—because of the way the circuit is arranged, the amplitude pot is also affecting the DC level, hence the interaction between the pots. So I decided to see if I could reasonably-easily do something about it...


The first place to start looking was the Buchla 258 and 259 schematics, upon which the M15 is largely based: all of these oscillators utilize the Middlebrook & Richer sine wave shaping circuit that uses a JFET (more discussion and detail on this circuit, including the original reference, can be found on the A-110 sine wave modification page). Key to the successful operation of this circuit is precise control of the amplitude of the triangle wave input, which must be about (but precisely!) 1.8 times the pinch-off voltage of the JFET used. Any means of adjusting the triangle wave amplitude is notably missing from both Buchla circuits—instead the JFETs are 'selected', and there is an adjustable 'feed-forward' of the triangle into the final op amp picking off the output from the FET circuit. Presumably this feed-forward is able to compensate for the lack of adjustment in the triangle amplitude itself—in any case, we know the Middlebrook & Richer circuit will perform admirably without it, and so this was the first thing I ditched in the M15 circuit. Due to the 1.8×pinch-off voltage criterion, using a 2N3819, as the M15 does, looks particularly undesirable: these devices can have a pinch-off down to −8V, and so even with the feed-forward bit, I'm guessing quite a lot of selection is necessary to find a tractable FET—without the feed-forward, their use is quite out of the question (as we might need to supply a triangle wave of amplitude up to ±14.4V!).

Another problem that is easily observable is the harsh loading that the FET-shaper places on the op amp feeding it, causing the output swing of the op amp to be very much more restricted than the normal 'few volts inside the rails'—whilst adjusting the 'sine amp' trimpot, the triangle output from the op amp can be seen to be clipped, to as little as ±7.5V.

Original shaping circuit

Here is the original (Rev 2.4) M15 shaping circuit:

The feed-forward part is at the bottom, with the triangle fed-in via the 6.8kΩs/220kΩ/4.7kΩ—not shown is a subtractor taking the 0-6V triangle output from the core, and turning it into a (roughly) ±6V bipolar signal (which is the main triangle output from the module).

The modified shaper

The first simple scheme I tried suffered from the same interaction of the DC levels via both trimpots—however I then realised there was an unused op amp section in the TL074 chip, which solved all the problems, but also made the mechanisation of the mod much more complicated. The final arrangement is this:

The first amp and trimpot take out the DC and amplify the triangle, which should now be able to cope with any BF245B JFET used, which has a pinch-off range of −1.6V to −3.8V; the second trimpot and unity-gain buffer (the previously unused section), should allow for precise trimming of the amplitude to accomodate the actual FET used; the output swing of the buffer, as required by the actual FET, should also be inside the saturation levels of the amp, and in any case the resistors either side of the FET have been slightly increased to more-closely agree with the 'on' resistance of the BF245 FET (thus reducing the loading and helping the allowable swing even more).


Having made the mod, the process of trimming the sine wave became a piece of cake: adjust 'sine adj' until the waveshape becomes a (very probably) slightly distorted waveshape, but symmetrical; then adjust the other trimpot 'sine amp' until a 'nice shape' is obtained, or the total harmonic distortion (THD) is the lowest. Here are traces from my Picoscope, for an approx. 250Hz wave:

And here is the corresponding spectrum:

I'm a little leery of just how accurate, around 0.5% THD, this appears to be, for several reasons: first, it is possible to do even better, i.e. to get it around 0.3%, but then visually the peaks and troughs look rather 'peaky'; secondly, if I export the raw tabular data from Picoscope and import it into my SPICE simulation program, SIMetrix, and get it to do the calculation, the figure it gives is more than double, i.e. it is around 1.3%. Thus I'm not quite sure who to believe—in any case the calculation is likely to be rather involved, (I'm guessing) includes an FFT, and as such probably has many other parameters associated with it, whose different values (between the two programs) possibly account for the different final values.

[Note also that there is quite a large DC component in the sine: some, but not all, of this will be due to the fact I didn't 'null' the Picoscope—I haven't been bothered to investigate how the rest arises...]

Performing the modification

First, be warned: the 'easy access' to the top of the board apparent from my photos is deceptive, and is due to the fact that when I first got my module I unsoldered the three smaller boards, and replaced all the headers with sockets, so that now I can merely pull the thing apart as and when I see fit to do so! (It took a long, long time to get the original headers off: the holes in the PCB are basically too small, and don't have enough 'play' between them and the connector pins on the other boards, so getting all the solder out took a huge amount of patience—this makes reworking/repairing one of these modules an absolute nightmare!) Thus even with the faceplate removed, you will still not have anywhere near as good an unobstructed view. In particular, getting some cutting implement in there to make the three track cuts will likely be a challenge—temporarily removing the 'waveshape morphing' pot might provide some respite!

New components required: 1 off each of 12kΩ, 39kΩ & 100kΩ resistors; 2 off 150Ω resistors; a BF245B n-channel JFET (though a suffix 'A' would probably be OK instead). (And some suitable wire of course for the straps.)

With reference to the top side of the main board:

the following needs to be done:
     - make the 3 track cuts as shown (a close-up of the two at right is given below);
- remove 220kΩ resistor R79;
- below that, replace 4.7kΩ R72 with a 12kΩ resistor;
- at bottom left, replace both 51Ω R46 & R48 with 150Ω resistors;
- replace 2N3819 FET (there is no designator on the silkscreen) with a BF245B type (the 'd-g-s' in the photo refers to the 2N3819 footprint on the board, and not the BF245B, which has a different pin-out and is thus rotated to match;
- moving right, replace 12kΩ R44 with a 100kΩ resistor.

A close-up of 2 of the 3 cuts, to show their exact location:

Turning to the bottom of the board:

the following needs to be done:
     - make the 2 track cuts as shown;
- add a strap from the 'sine amp' trimpot wiper to IC5 pin 10;
- add straps from the ends of R44 to IC5 pins 1 and 2 (with care the lead on the resistor may stretch to pin 1);
- strap between pin 1 and the via below the cut;
- add the 39kΩ resistor from pin 2 to the via the other side of the cut;
- add a strap which solders to both pins 8 and 9, the other end to the via as shown.
(I can supply higher res pics—which don't have the annotation—if needed.)


The modification certainly met my objectives, which was to make the adjustment method much easier: now it is a simple matter of trimming the DC level with the 'sine adj' trimpot, and then trimming for minimum distortion using the 'sine amp' trimpot—job done! Since I didn't spend any time fiddling around with the old method to see how good a sine shape I could get from that, I don't have anything which says how good the new arrangement is compared to the old: however, it is known that the Middlebrook-Richer method can deliver less than 1% THD, and I'd be willing to bet that this is better than that obtainable from the old Buchla 258/259-derived method which uses the strange feed-forward circuit. On the down-side, the mod is a lot of work, especially considering the access difficulties on an ordinary unit—thus it is probably not worth it unless you aren't happy with sine wave you currently get, and really want to see how good it might possibly be made!

[Page last updated: 5 Sep 2017]