I picked up a good-looking Yamaha Portasound PS-3 from Goodwill a few years ago. It's a nice sounding little keyboard, with 9 voices, percussion, and accompaniment. I'd been listening to a lot of Hidden Lands by Candy Claws, which uses a lot of 80s home keyboards, and the PS-3 gives a similar feel. I also have young kids and I'd like to get instruments into their hands as early as possible, and maybe circuit bend a few of them. Older toys are great for this as these days most similar noisemakers are keyboards wired directly to an inscrutable blob, very few points for modification.
The only issue I could find with this otherwise pristine ~40 year old keyboard was a constant high pitched whine in the background whenever a key was pressed, not super loud, but it was always there. Looking online, this was a common complaint with this keyboard. I decided to fix it, and in the process found that this keyboard had a ton of potential for mods, about as far away from the inscrutable blobs as possible, this thing had discrete tone generation, filter, and VCA circuits!
In this post I'll give a basic theory of operations of this keyboard, provide some ideas for modifications, and describe what I've done so far to my own keyboard. Hopefully this can help guide someone else who picks up one of these keyboards and wants to try tinkering. I found a lot of good resources, but nothing that tries to tie everything together as I've attempted here.
Theory of Operations
First off, I wouldn't have much idea how to approach this thing if someone hadn't posted the PS-1, PS-2, and PS-3 Service Manual a few years back. Find that here (send me a message if that link goes down). Additionally, all of the mods I eventually did do came directly from Evil Turtle Productions, who did the work and gave a good writeup of the keyboard function without the benefit of having the full schematic.
One note about the schematic, it doesn't always have the correct designator names, so double check your board before removing components. In particular, I think Tr4 is mislabeled.
Tone Generator
The main voice, bass accompaniment, and percussion sounds are generated by an ASIC, YM1104. This IC also scans the keyboard and adjusts its output based on various inputs, such as the voice or percussion selection switches. The main voice is generated by the MO1 (4' square) and/or MO2 (8' square) signals. These are square waves an octave apart which are sent to two buffers. The first buffer just takes the MO2 square wave and generates the Flute and Clarinet voices. The second buffer mixes the MO1 and MO2 signals to create a stair step or crude saw shape. This shape is used alone or in combination with the output of the first buffer to create the rest of the voices.
Looking at the switching circuitry and the description in the service manual, the Tone Generator has 5 unique output settings:
- Organ, Clarinet (sustained)
- Flute, Brass (vibrato small)
- String (vibrato large)
- Piano, Harpsichord, Guitar (plucked)
- Vibraphone (Tremolo)
Attack and decay also vary based on the Tone Generator setting.
Voices are selected by the user through a series of DPDT switches. When a voice button is pressed, a GPIO is toggled in the Tone Generator and the selected voice circuitry is switched to the input of the Mixing Amp. This allows the Tone Generator to change its waveform to one of the above settings and allows different signal shaping circuitry to be engaged depending on the selected voice.
Voice Shaping
Voices are shaped mostly using discrete components, some just use passive elements to form low-pass and high-pass filters. The Brass and Guitar voices are sent to the VCF IC, IG02612. The operation of this filter is pretty opaque, but it looks to be very similar to the IG02610 VCF IC of the Yamaha CS01 monosynth. In fact, it looks like a pin-for-pin match.
| PS-3 Filter IC IG02612 |
| CS01 Filter IC IG02610 |
In the PS-3, resonance is most likely set by the 2.2K resistor between K-OUT and K-NF. The VCF receives a cutoff frequency envelope from an envelope generator, triggered by the YM1104. I don't know if the trigger is sent on every note press, or if it's only sent when either the Brass or Guitar settings (2 or 4 above) are selected.
The Vibraphone voice is unique in that it passes through a VCA IC, which is modulated by the Tone Generator. This VCA IC is the same as what's used in the CS01, IC02602.
Mixer and Amp
The Mixing Amp receives the selected voice waveform and mixes it with the output of the selected rhythm and Automatic Bass Chord (ABC), if enabled. After that, the signal us passed through the master volume pot and sent to the power amp.Power and Support
The whole board is powered from 9 volts (or 9-12 wall adapter). The circuitry uses a positive ground, which I have not seen on most modern electronics. I'm sure there's historical reason for using this, but to me it just makes figuring out what's going on in the schematics that much harder.
The board has a -9V and -2V regulator circuit, which is the first thing one should look at when troubleshooting noise. The Tone Generator receives a 531 kHz clock, which can be tuned with a trimmer.
Other Stuff
I haven't spent much time on the Rhythm or ABC sections, I don't think these parts are particularly interesting. I've actually removed these functions from my own PS-3.
What's Possible
Above I pointed out that the VCF and VCA ICs are equivalent to what's used in the CS01, to me it feels like the obvious direction for Yamaha was to make a paraphonic successor to the CS01 and I'm a little shocked they didn't just go all the way.
It should be straightforward to rearrange the signal path such that the mixed M01 and M02 output are routed through the VCF and VCA. The existing LFO is pretty limited, but you could make a new one with just a few components and route it to the VCF or VCA as well. A rudimentary adjustable LFO could be made using the output from the Tone Generator to the Tempo Lamp, but I'm not sure it saves that much in parts or wiring vs a simple dual-op triangle/square setup.
Depending on the trigger behavior, one could make a real ADSR routable to the VCF or VCA. However, the most likely behavior there is that the envelope receives a pulse when a key is pressed, rather than a real Gate signal that stays active when a key is held. Attack and Decay controls are probably possible, however. Alternatively, to have something truly unique, replace the existing Voice Selection switches with 5 individual ones to allow any of the above 5 settings to be sent through the VCF/VCA. This might make up for the lack of VCA envelope, particularly since the Sustain switch could still be used. Speaking of sustain, the Service Manual alludes to the C1-C8 RC network controlling the sustain behavior, those values could be played with by someone more willing to risk damage to the Tone Generator
One industrious modder made this monster, I think the only things they kept from the PS-3 was the Tone Generator, keyboard, and maybe VCF: "circuit bent" yamaha ps-3What I've Done
Here are the basic changes I made:
- Replace electrolytics
- Add filter cutoff and resonance
- Add mix control to M01 and M02 waveform
- Remove ABC and Rhythm controls
I didn't do anything nearly as extensive or impressive as in the above video, but I definitely expanded its function. First off, addressing the whine. This was a 2.7 kHz noise that I could hear whenever a key was pressed, and could be made louder or quieter using the volume knob. I also noticed the whine when the rhythms were playing, which told me 1, that it was upstream of the mixer, and 2, that it was upstream of the voice shaping circuity (since the rhythm bypasses all of that). That left the Tone Generator. From modding Gameboys, I knew that noise making processors will start to whine if the power supply isn't stiff enough, so I just started looking for electrolytic caps on the power regulators and replacing any I found. I think the biggest change came from replacing the caps on the -2 V regulator. These parts dry out or leak over time, so that's a typical first step when troubleshooting any old circuits. Anyway, the noise is mostly gone. More capacitance on the -9V, -6V, or -2V rail may improve performance even more, but I'm pleased with where it is now.
Next, I added filter cutoff control. To do this, I removed the 47 kOhm resistor from the VCF envelope generator to the VCF IC. I could have adjusted this to allow the envelope to stay and add an Envelope Depth control, but I don't really care much for the Brass or Guitar voice (Vibraphone's where it's at). See Evil Turtle's site for a simple envelope depth control. Instead, I wired a pot to control the cutoff voltage signal anywhere from -9V to ground. There's also a current-limiting resistor in there for good measure. I actually didn't add a pot for this one, rather I hijacked the Rhythm Volume control since it was about the value I needed, had a ground connection, and had a spot for a current-limiting resistor right by it. I just had to remove one of the connecting wires as well as the jumper that joins the ABC Volume and Rhythm Volume pots. Then I added a wire to bring -9V where I needed it.
To get resonance control, I replaced the 2.2k resistor by the VCF with a 10k pot. I tore out the Tempo pot to make room for the 10k pot. This also required cutting away some of the plastic on the keyboard chassis since the stock pots are circular and the pot I added was more 'U' shaped. Not very difficult. Since the new pot is threaded, it doesn't need to be mounted to the board with the rest of the pots. The resonance control actually worked the opposite to what I expected, low resistance between K-NF and K-OUT lowers the resonance, and higher resistance increases it.
Last, I tore out the ABC volume pot and added a 10k pot to mix the M01 and M02 waveforms. The stock PS-3 has the mix set with an 8.2k and 3.9k which controls the relative amount of each waveform sent to the second buffer. I rewired this so M01 and M02 are on opposite lugs of the pot and the wiper is the input to the buffer, this allows me to set the output to all 8' square wave, all 4' square wave, or anywhere in between, including the original crude saw setting.
After all of that, I cleaned up my wiring and arranged everything so that the case could close back up (not easy!). I decided to rip out all of the battery wiring, C cells suck and I have a USB->12V converter I originally bought for my CS Reface (which frustratingly doesn't work with the Reface, but that's another story). This way I can just power the board with a USB powerbank. It also means that I have the whole battery compartment which could be used to house an internal powerbank or daughterboards for future modifications, pretty sweet since the rest of the chassis is so cramped.
Conclusion
I ended up with a cool toy keyboard that has a little more character than it started, while still maintaining its portability and basic form factor. The resonance control is probably way to sensitive and should be fine tuned. I think I may start re-routing the signal path, adding the potentiometer to mix the square waves pretty much makes the 8' buffer redundant, so I can probably cut the trace to that buffer's output and tie the Flute and Clarinet voice shapers to the second buffer. That may have some unintended consequences with the Piano voice, but whatever. Additionally, I'm going to look for a nice 5-position switch to hotwire the tone selection input to the Tone Generator, that will let me mix and match tone settings with tone shaping circuits. Eventually I may even get around to re-wiring the whole signal path as I described above.
Someday I may even upload sound clips, it's nice to dream.







