One of the things that has been the most helpful for me over the years in sort of syncing up my general understanding of electronics theory with understanding how synthesizers are actually designed is reading circuit descriptions in service manuals. A lot of the American companies especially wrote really great, detailed explanations of how their instruments worked, and reading them has helped me to both understand the specific circuits they discussed, and understand more broadly how different objectives in synth design can be achieved… and more quickly recognize what’s going on in an unfamiliar circuit.
Because I’m a nerd I guess, I thought it might be fun to make some step-by-step “circuit descriptions” like that for synth circuits that don’t have them. My first featured circuit –the system through which the Yamaha CS-80 handles preset, panel and memory switching– is sprawling, but actually fairly simple, much like the synth that it comes from. The CS-80 service manual absolutely does not have circuit descriptions and throughout provides very little context for what is ever going on. There’s a block diagram that helps you sort through it, but in the actual schematics the labeling of circuit blocks and connections ranges from nonexistent to needlessly convoluted, making it particularly difficult to familiarize yourself with it in a reasonable amount of time.
(Note: you can click on any image or diagram throughout this post to see a bigger version).
So how does the switching of sounds work in the CS-80?
The basic premise is to disable or enable the entire bank of slide potentiometers (for memories and panel) or fixed resistor voltage dividers (for presets) by switching on and off the high positive voltage that “feeds” them.
In the center of the front panel there is an array of 28 momentary button switches which are used to choose between the 14 sounds for each channel: 11 presets, the two groups of miniature sliders for each channel that Yamaha calls “memory” and the main panel setting. Yamaha refers to this group of switches as the “Tone Selector”. The so-called “memory” sliders are really just normal sliders, just like the bigger ones, and there is no actual logic-based memory functionality involved.
The button switches in the Tone Selector control 14 proprietary Yamaha switching ICs called IG00157s which now sell for about $80 each (the first one of them highlighted in this schematic excerpt).
This is maybe the single silliest Yamaha IC because what it is doing is so simple and basic. I haven’t been able to find a datasheet for it but it wasn’t hard to deduce what is in it or how it works. Each one of them could easily be replaced by a D flip flop IC like a CD4013, a couple transistors and diodes and a few resistors.
So I made this schematic of what is inside the IG00157. What is going on here is that each button controls a single D flip flop.
A D flip flop is an important type of basic logic block that will read a logic value, in the form of a high or low voltage, at its data input and latch (hold) that level at its output (typically identified as Q) whenever it receives a high voltage on what is called its “Clock” input. They also typically have a complementary output expressed as Q/ (not Q) which is always the opposite of whatever the main output Q is.
The source of the “data” input in this application is the momentary switch which connects to the 15V supply as seen in Yamaha’s schematic.
Within the IC, the data input is internally connected to the clock input, with the clock inputs of all 14 flip flops (on 7 ICs) in the channel bussed together on their ends.
So when a button is pressed, just that flip flop’s Data input goes high, but the pulse clocks all of them, causing all of them to simultaneously check their data inputs and latch whatever it is on their data input to their output. Only the one whose button was just pressed will have its output Q latch high, and all of the others will latch low.
The diode between each data input and the pins connecting to the clock bus inside the IG00157 prevents all of the other data inputs from being pulled high whenever the clock goes high.
Meanwhile, the complementary (not Q) output is used to turn the lamp on and off. With one lead of the lamp connected to 15V at all times, the lamp will only turn on when the other lead is at a low voltage.
So the output of the Tone Selector is 28 individual logic levels, one representing the state of each of the 14 tone selection buttons in each of the synth’s two channels, upper and lower.
These signals are then sent to a circuit board designated as the BA board, where they are applied to the bases of 28 individual transistors, 14 for the 14 sounds in each channel once again.
One of these for each channel will turn on, corresponding to which button is selected in that channel. The turned on transistor will output 10 volts and all others will output 0 volts and send them on to the next stage.
The outputs of the BA board coming from these transistors become the supply voltage buses for all of the parameter control voltages.
The main panel or memory sliders, or a preset’s CV setting resistors, will not have any voltage supplied to them until that preset or slider bank is selected with the Tone Selector buttons. As soon as you press Panel, all of these sliders receive about 10V of supply voltage. Then if you press Memory 1, all of these sliders receive 10 volts and the supply to the panel sliders is gone.
Here’s a closer look at the full CV generation path for channel 1.
The 14 possible supply voltage lines for the 14 sounds come from the BA board and go to five places.
6 of them go to this board T51 to be distributed to fixed resistor voltage dividers for the first six presets, each consisting of the resistors the buses connect to directly, plus the 10k ohm resistor drawn right at the CV output (1-26) on the schematic.
5 of them go to T52 to be distributed to similar voltage dividers for the remaining five presets. One of them goes to the wire bus that supplies all of the main panel sliders. And the last two go to each of the two banks of memory sliders for that channel. The fixed voltages from T51 and T52 and the wipers of the sliders are connected through diodes to what amounts to a mixing bus for each parameter’s CV output, 26 total for the 26 parameters controlled by this top row of controls.
So what’s going on with the actual CVs after they get created?
The wiper voltages of the panel sliders come in on the T51 board and each run through a diode here before being dumped on their respective CV mixing buses along with the outputs of the first six presets’ voltage dividers. For a few specific parameters, the outputs of both the main panel and memory bank sliders are sent to the BA board first and run through op amp buffers before being sent to the T boards. Then the 26 CVs on the T51 board are daisy chained to the T52 board where they meet up with the voltages from the other five presets and from the same point connect to the CV input points on the voice boards.
You may have noticed that the “memory” sliders were not yet mentioned in the above– their CV outputs are not added in in this area.
After all of the CVs on each of the 8 voice boards are daisy chained together, you’ll notice that even on the last board, Voice 8, there are two wires for each CV.
THIS is where the memory CVs are being dumped in. And the memory sliders have their diodes just soldered directly to the back of them to avoid having to put them somewhere else.
Though this system is very simple (repetitious but simple), it’s also very messy and very precarious. It’s a system in which there are a whole lot of ways for things to go wrong.
So what you have here is a system where the 26 CV buses have 14 inputs each and they’re all only separated from each other by resistors and diodes, but it shouldn’t matter because when any preset or slider bank is not enabled, it won’t be depositing anything onto the CV bus at all.
But if you have just one shorted transistor on the BA board, you can get the CVs from a certain preset, memory or panel “stuck on” and always being added to the CV from whatever is actually selected, making every single sound in an entire channel always sound wrong.
Or, if one of the diodes connecting a specific slider to the bus fails as a short, when that slider is set to a low voltage, it will pull that CV bus down and hold it there no matter what sound is selected.
And finally, you can get some weird symptoms arising from the fact that certain parameters are only used in a few of the presets. For example, the CS80 I was working on at the time of writing this had a problem where the middle presets of Channel 2, the 5th, 6th, 7th, and 8th did not produce sound. I noticed that the supply voltage buses for the CVs for those presets were never going high when they were selected, but by disconnecting their BA board outputs from all that followed, I confirmed that the switching was actually OK, meaning something else was pulling them down. Looking at the schematics a bit more, I discovered that those four presets had one thing in common, and that was that they were the only presets in which the input voltages was being sent to the CV bus identified as “4,” which was the oscillator pulse wave on and off setting.
This is a binary parameter, meaning that it can only be on and off, and these were the only presets that had this turned on, and sure enough, if I turned pulse wave on while the panel or a memory was selected, that slider bank’s entire supply bus would get pulled down too. So then I knew it must be something connected to that, and I eventually traced the problem to this transistor TR7 on one of the voice boards having failed.
So whenever the CV bus supply voltage was applied to this CV bus, as it was in those presets only, the entire supply would short through TR7 of that voice to a very low voltage.
My main takeaway in familiarizing myself with this system was that it is a rather primitive design that Yamaha really stretched to its limits, and the entire CS-80 is designed this way.
It’s astounding to contrast the clumsy, repetitious structure of the CS-80 with the lean, effective digital control system that Sequential Circuits debuted with the Prophet 5 just a few months later. It’s also interesting to imagine if the CS-80 had been made a year later and had been able to incorporate those advancements into its design– how it could have been a leaner, more practical, more reliable instrument while still retaining its legendary sound.
It seems you too like the circiut simulator from http://www.falstad.com
Thanks, that’s a great article.
That’s one of the synths that I wouldn’t never have to put my hands into. Legendary instrument, great sound, big pedigree but too much of an hassle when having to deal with its internals. I did read a website which was just about the CS-80’s calibration procedure, if I did find the Jupiter 8’s calibration procedure tedious, the CS-80’s one truly looked like an hell. I don’t dare to imagine what would mean diagnosing and repair issues inside this Yamaha beast.
Hi. Just found your site. Lots of great stuff! One question: it doesn’t look like your model of the IG00157 guts doesn’t handle the case of pressing more than one button at a time. I don’t have a CS80 here at the moment, but I’m pretty sure there’s some priority logic between the IG00157s.
Interesting point… it is indeed something I overlooked and never even thought to see what would happen if I pressed two buttons at once, but you make a good point, of course because the switches are not mechanically interlocking some consideration must be made for that possibility via priority logic. Next time one is here I’ll have to see if I can figure it out and update this post!