Yamaha PSS-80 (squarewave keyboard with simple synthesizer & accompaniment)

This Yamaha PortaSound keyboard from 1989 is quite unique, because it combines coarse unfiltered multipulse squarewave sounds with a simple synthesizer (320 sound variations), reasonable polyphony and grainy electronic percussion.
 


(old eBay photo; mine has no box.)

The whole thing sounds quite C64-like, but has its own character. E.g. there is a nicely unique squawky "trumpet" sound. Less nice is that decaying sounds ignore key press duration. The 8 rhythms are made from interesting semi-metallic blip percussion and have optional single finger accompaniment.

(Note: This keyboard sounds great, but don't buy one of these so far your only intention is to get a keyboard with faithfully imitated natural instrument sounds. Remember, this is a squarewave instrument and though many of its sounds sound not even remotely like what is written on its buttons, though bought with wrong expectation it may disappoint you.)

 An even greater variant of the PSS-80 (that includes the same sounds, but has each 16 sounds & rhythms) is the Yamaha PSS-100.

main features:


eastereggs:

notes:

Like with Yamaha PSS-20, the volume control of this instrument steals bit resolution from the sound, which dramatically truncates some envelopes and thus even turns some sustaining tones into short blips because only the attack and decay phase stay audible at low volume setting. Thus it is strictly recommended to add a real potentiometer for volume control and treat these buttons rather as an additional envelope control feature. Also a sound output jack needs to be added for reasonable use.

The sounds are digital multipulse squarewave with audible zipper noise (similar like the Letron/ MC-3). Decaying sounds like 'piano' unfortunately ignore key press duration. The 'clarinet' sounds normal. The 'trumpet' is most remarkable; it starts with a strange scratchy smack during attack (different waveforms), has a fast and strong vibrato and its harsh timbre is at least slightly more natural than trumpets on other squarewave instruments (roughly like a cupped jazz trombone). The 'accordion' is a simple squarewave toot. The 'vibraphone' has a slow tremolo with such a high amplitude, that with most volume and envelope settings it completely mutes the tone in the quieter phase. The 'rock guitar' is rather a thin and harsh organ tone that starts with a click and resembles bagpipes timbre. The 'mandolin' rings fast. The 'fantasy' is a sort of slower ringing mandolin which fades silent while it keeps ringing.

The "voice variator" synthesizer buttons {bright, mellow} change the pulse patterns of the square wave in 8 steps and thus permit to select any of the 8 existing timbres for the sounds. The {short, long} buttons permit to select among 5 different preset envelopes for each preset sound. Unlike the timbres, the 5 envelopes differ among the preset sounds, thus every sound has an own set of 5 envelopes. The longest envelope typically softens also the attack phase while the shortest envelopes reduce not only the decay phase but also the sustain level (with "fantasy" this disables ringing). The {bright, mellow} buttons also change the timbre of still held notes, while {short, long} only affect new pressed keys. Selecting a preset sound always mutes held notes and resets "voice variator" values to defaults. All button presses on the soft touch panel cause a blip sound, which limits their use as a realtime sound control.

The cymbal consist of a metallic digital waveform, similar like MC-3 cymbals. The base and tom drum are a very low and a slightly higher short popping noise. The "16 beat" rhythm has an accent on the cymbal and "tango" features a drumroll. Rhythms can not be switched immediately but always wait until the pattern ends. The single finger accompaniment plays only 3 standard chords. The sequencer can be used to playback a monophonic voice while playing to it. (Rhythm does not reduce polyphony, but sequencer playback always starts the rhythm it was recorded with. The sequencer can not be used without rhythm, and always plays with the sound that was selected first during recording. The accompaniment is not recorded.)
 

circuit bending details

The Yamaha PSS-80 is based on the CPU "Yamaha XF877B0" (crystal clocked @ 2.78 MHz) with squarewave sound IC "Yamaha YM3427". The power amp IC is "Toshiba TA7368P".
Empty PCB holes indicate that the PSS-125 is the same and only has additional drumpad buttons. Like in Letron MC-38 the dual D flip-flop IC "TC40H074P" divides the clock rate (here by 2) for the sound IC. Strange is that despite the almost identical Yamaha PSS-125 in service manual has the same main PCB, its CPU software was changed to support drumpads.

The CPU is apparently a "Hitachi HD6305V0" 8 bit microcontroller with internal 4 KB ROM and 192 byte RAM.

Good is that the foil button panel has ordinary rubber contacts underneath (touching carbon traces on a PCB), which makes it safe to dismantle and modify without risk of tearing delicate contact foils.
 
waveform multipulse pattern in preset sound
0 (mellow) 1:1 clarinet, vibraphone
1 3:5 fantasy
2 1:3 piano, accordion
3 1:7 mandolin
4 1:15 trumpet
5 1010000000000000  
6 1010100000000000 rock guitar
7 (bright) 1010101000000000  
The main voice is made from multipulse squarewave of 16 steps length. (For readability, simple patterns are written as ratio.) 5 of them are simple squarewaves with different pulse widths. The rest contain 2, 3 or 4 of the shortest spike to make the timbre even brighter. I sorted them in the order of the "voice variator" function (from dull to bright).

The logarithmic volume envelope is about 31 unequal steps high. Preset sounds can contain complex grainy LFO modulations, those may be partly generated by the CPU.

(The ratios were estimated on an analogue oscilloscope, which isn't very accurate, but I think they are correct.)

Apparently the brightness (waveform) can be also modulated by envelope. So the 'trumpet' rapidly switches waveforms during attack to produce a smacking noise.

Aaron Howald had e-mailed me the following info:

"I got a damaged Yamaha PSS-80 as my 3rd bend attempt nearly 2 years ago. I found that the key press beep CAN be disabled! It comes from the CPU, at pin 5 (I just cut the line) also try playing with switching the 4 data lines in/out between the CPU and sound generator - you can get weird beats, alternate keys sounding different, etc..."
 disable button click

The button press blip sound comes through an 4.7k resistor (next to the sound IC) from an own sound channel at CPU pin 5. You may disconnect this nuisance if you don't like it.

shitshot

The PSS-80 is very software controlled and makes lots of crazy stuff (as strange and variable as Casio SK-1 or TI Speak&Spell) by shorting clock pins with a resistor (e.g. 1k) or even touching them with fingers. This can make it play by itself bizarre random endless synth compositions (those don't repeat at least for 20 minutes) resembling weird C64 music.

analogue tempo control?

The sound IC pin 7 outputs serial data to CPU pin 33. Despite the bit pattern is more complex (binary counter?), likely only one bit is polled as a timer, because pulling this line lo (tested through 1k resistor) pauses rhythm and demo. Removing the pulldown wire continues rhythm where it was; wiggling it even steps through them faster, so it is likely the timer interrupt signal for tempo control. Thus it is likely possible (not tested by me) to feed CPU pin 33 with an external squarewave oscillator (e.g. an IC NE555) with potentiometer to build a stepless analogue tempo control with wider speed range. The sound IC pin 7 likely has to be disconnected. (In Yamaha PSS-100 this pin is not used anyway, so it is not necessary for making sound.)

keyboard matrix

The keyboard matrix is grouped by 6. Except 4 lower note keys I found no eastereggs. The unused places at pin 16 do nothing, but connecting both through diodes disables the panel buttons (likely to prevent mess by omitted diodes). 

The CPU pin 17 is wired as key matrix out on the PCB, but in my PSS-80 it does nothing (stays lo at high resistance), so at least mine has no drumpads easteregg (matrix entries added from PSS-125 panel schematics). I tried pulling hi to enable pin 17 without success. Also putting diodes in the 2 empty matrix places doesn't help. The CPU of PSS-80 and PSS-125 in service manuals have different part numbers and thus likely changed software. But my PSS-80 also fails to enter the mentioned "test program" (service mode), so there may be PSS-80 with different CPU revisions, of those possibly others do support drumpads. (With Casio SA-series there is also a matrix compatible CPU version with and without drumpads.) The "accomp." switch is outside the matrix; it enables single finger accompaniment while CPU pin 19 is pulled lo.
 
22
23
24
25
26
27
 
CPU pin
in 1
in 2
in 3
in 4
in 5
in 6
out / in
 
o
C#1
o
D1
o
D#1
o
E1
o
F1
o
F#1
out 1
11
o
G1
o
G#1
o
A1
o
A#1
o
B1
o
C2
out 2
10
o
C#2
o
D2
o
D#2
o
E2
o
F2
o
F#2
out 3
9
o
G2
o
G#2
o
A2
o
A#2
o
B2
o
C3
out 4
8
C#3 
o
D3
o
D#3
o
E3
o
F3
o
F#3
out 5
7
o
G3
o
G#3
o
A3
o
A#3
o
B3
o
C4
out 6
6
volulme
-
volulme
+
tempo
-
tempo
+
R.
8beat
R.
16beat
out 7
12
R.
start/stop
R.
waltz
R.
12beat
R.
march
R.
swing
R.
tango
out 8
13
O.
fantasy
O.
mandolin
O.
rock guitar
O.
vibraphone
demo
R.
samba
out 9
14
play/stop
rec/end
Sy.
mellow
Sy.
bright
Sy.
long
Sy.
short
out 10
15
-
-
O.
clarinet
O.
piano
O.
accordion
O.
trumpet
out 11
16
P.
clave
 
P.
cymbal
 
P.
snare
P.
base
(out 12)
(PSS-125: 17)

The input lines are active-low, i.e. react on GND. Any functions can be triggered by a non- locking switch in series to a diode from one "in" to one "out" pin.
 

legend:

"o"
= keyboard key
R.
= preset rhythm
O.
= preset sound ('orchestra')
Sy.
= synthesizer
P.
= drumpad
orange
background 
= easteregg (unconnected feature)
 

pinout YM3427 (GE12)

The Yamaha YM3427 (16 pin DIL, schematics name also "XF357A00") is the "GE12" sound IC of Yamaha PSS-80, PSS-100 and PSS-125. It was the last squarewave sound IC made by Yamaha. Apparently it can share its 6 polyphony channels among percussion and melody voices. The blip percussion has sounds made from squarewave and hissy or semi-metallic waveforms. Both are output multiplexed through a time slice DAC (6 internal channels) on a single pin. The waveforms not even return to a center voltage, but are only pulled into one direction (up from GND, to save battery?). Unlike older Yamaha keyboards, the volume envelopes of the internal generator are logarithmic; the nonlinear envelope DAC has 31 steps (5 bit) of varying height (upper end is higher). The official melody waveforms are 5 pulse widths and 3 multipulses (i.e. 2, 3 or 4 repeats of the shortest pulse followed by a pause) as "brightness" settings, but apparently the IC can produce intermediate timbres between percussion and main voice (seen by shitshot) and modulate everything in realtime under full software control of the host CPU. Pitch is transmitted as note and octave numbers (internally translated into frequency) and 2 bit detune. The ADSR envelope generator can e.g. replace release with reverb and do mandolin ring by itself, but each section seems to be controlled by only 1 bit (present od absent). There is also an internal LFO for vibrato (4 depths, 8 speeds) and tremolo and a 3 bit volume control. The waveform ("brightness") seems to be also a modulation target for envelope (e.g. 'trumpet' attack phase) and LFO (PSS-100 'honky-tonk piano'), so perhaps the concept was even to approximate a VCF. The 3 pin data bus has a 7 bit(?) serial protocol and likely includes an IRQ timer for tempo control.

Thanks Skidlz (Zack Nelson) for analyzing the protocol and registers of this undocumented sound IC. This pinout was initially measured and concluded by me, because I only had very grainy incomplete service manual photo fragments of Yamaha PSS-80 and PSS-100, but I later found the complete PSS-100 service manual PDF and so could correct it.
 
pin name purpose
1 ø clock in (1.39 MHz)
2 sI serial data in
3 NC  
4 NC  
5 NC  
6 NC  
7 SO serial data out
8 Vss ground 0V
9 SCK serial clock in
10 /IC reset
11 NC  
12 NC  
13 NC  
14 NC  
15 AO audio out
16 Vcc supply voltage +5.2V

The center 8 pins of YM3427 ("NC") are fake and completely unbondet (verified with diode mode of multitester), i.e. this sound IC is genuinely only 8 pin! The rest is camouflage to confuse the Russians (or Chinese?) - or did Yamaha consider a too small package embarrassing?? (It is really strange that on PCB pin 3 is wired to 7, 4 to GND, 13 to 9 and 14 to 10 despite they have no technical function and certainly also were not routed this way for shielding to tweak its at that time top edge highend timbre quality. ;-) )

In PSS-80 pulling pin 7 lo (tested through 1k resistor) pauses rhythm and demo (with accompaniment switching mainvoice monophonic?) while standard envelopes keep working normal, which makes me conclude that pin 7 is a timer interrupt output for tempo control. Removing the pulldown wire continues rhythm where it was; wiggling it steps through them faster. The mandolin ring is independent from this timer and internally retriggered by the envelope circuit. The pin 7 bit pattern speed on oscilloscope does not seem to change with tempo setting, but the bits between the start bit seem to vary - this may be a binary counter counting down with adjustable rate to trigger an event (IRQ?) when it reaches zero; then the counter restarts. In PSS-100 the pin 7 is not used (lo), but with pullup resistor it shows data, which hints that it is always enabled and does not need special initialization.

Pin 10 looked like digital supply voltage, but is wired to what appears to be the CPU reset pin, which in normal operation stays hi at fairly high current and even slightly higher voltage (+5.3V) than pin 16. So I am not sure if pin 16 is the genuine supply voltage input, or if a crashed YM3427 can draw excessive current and so reset the CPU to prevent damage. (During shitshot I saw no such conditions.) Skidlz identified pin 10 as reset. Also in PSS-100 it is wired to the reset pin of its CPU.

Data clock rate is 86875 kHz (clock of pin 1 divided by 16). Many shitshot states (strange garbled demo or accompaniments) by touching crystal pins seem to be caused by making sound IC bits run out of sync with the CPU and so interpreting them wrongly. Thus after several shitshots it tends to coincidentally re-align itself and so melody or note pitches get audible again (often with very messed up timbres).

A close relative of YM3427 seems to be the sound hardware of Yamaha PSS-20 (CPU "YM7108"), which main voice is only monophonic but has the same waveforms.
 

pinout XF877B0, XG724B0

The "Yamaha XF877B0" (40 pin DIL) is the CPU of Yamaha PSS-80. It controls the sound IC YM3427 and has on own sound output for button click (waveform is 3 periods of plain squarewave). It is very software controlled (visible by shitshot) and genuinely an 8 bit microcontroller "Hitachi HD6305V0" with internal 4KB ROM, 192 byte RAM and HD6800-like software features.

The CPU of Yamaha PSS-125 supports additional drumpad buttons (absent in XF877B0), and while in schematics both are mentioned as "XF877B00", the "electrical parts" section in service manuals list the PSS-80 CPU as part number "XF877B00" and that of PSS-125 as "XG724B00"; in "Description" column both are refered "HD6305V0***P", which makes me conclude that the part number is the software number, while HD6305V0 refers to the generic CPU type. (The rightmost "0" seems to be not printed on components but only fill the column.) 

This pinout was examined by me. I only have very grainy incomplete photo fragments of Yamaha PSS-80 service manuals. I first thought it was Motorola HC05 (pinout from HC05 Programming Reference Guide by Freescale Semiconductors Inc.), so I wrote a column for pin comparison, but the Hitachi HD6305V0 datasheet matches the blurred photo perfectly.
 
pin name Motorola purpose
1 /RES /RESET reset
2 /INT /IRQ (wired to supply voltage)
3 NUM NC|Vpp (wired to ground)
4 A7 PA7 (lo, wired to ground)
5 A6 PA6 button click out
6 A5 PA5 key matrix out
7 A4 PA4 key matrix out
8 A3 PA3 key matrix out
9 A2 PA2 key matrix out
10 A1 PA1 key matrix out
11 A0 PA0 key matrix out
12 B0 PB0 key matrix out (buttons)
13 B1 PB1 key matrix out (buttons)
14 B2 PB2 key matrix out (buttons)
15 B3 PB3 key matrix out (buttons)
16 B4 PB4 key matrix out (buttons)
17 B5 PB5 (lo) | in PSS-125: key matrix out (drumpads)
18 B6 PB6 (lo, wired to ground)
19 B7 PB7 accomp. switch in
20 Vss VSS ground 0V
pin name Motorola purpose
21 C7 PC7 (lo, wired to ground)
22 C6 PC6 key matrix in
23 C5 PC5 key matrix in
24 C4 PC4 key matrix in
25 C3 PC3 key matrix in
26 C2 PC2 key matrix in
27 C1 PC1 key matrix in
28 C0 PC0 (lo, wired to ground)
29 D0 PD0|RDI (lo, wired to ground)
30 D1 PD1|TDO (lo, wired to ground)
31 D2 PD2|MISO (lo, wired to ground)
32 D3 Tx PD3|MOSI serial data out (to sound ic pin 2)
33 D4 Rx PD4|SCK serial data in (to sound ic pin 7)
34 D5 /CK PD5| /SS serial clock out (to sound ic pin 9)
35 D6 /INT2 TCMP (hi?, wired to supply voltage)
36 /STBY PD7 (lo, wired to supply voltage)
37 TIMER TCAP (lo, wired to ground)
38 XTAL OSC2 crystal out
39 EXTAL OSC1 crystal in (2.78 MHz)
40 Vcc VDD supply voltage +5.2V

The keyboard matrix inputs and outputs of Port B {12..16} need external pullup resistors (resistor array "13X473J"). In my PSS-80 pin 17 is not connected (wire bridge and 47k pullup resistor omitted) and does nothing due to different software number. The lo pulse of pin 16 is a bit longer than others (due to disabled pin 17??). The accomp switch input pin 19 is not in the matrix; it enables accompaniment while pulled lo, but does not respond on keyboard matrix outs, thus it is likely polled only in-between or debounced to ignore too short pulses.

The unused CPU pins when desoldered are mostly lo at high resistance (I tried pulling hi to enable pin 17 without success. Also putting diodes in 2 empty matrix places doesn't help.) Pulling pin 2 lo (tested through resistor) resets the CPU at falling edge. Pulling pin 35 lo (?, even touch by fingers) locks up the CPU (no key response, partly strange static noise loops).

The NUM pin 3 is a test pin (must be grounded according to HD6305V0 datasheet). It outputs a serial bit loop (frequency about 3.4 us) when pulled hi trough a 1K resistor. Reset during pullup puts it into a strange (test?) mode where most port pins (even the unused ones) are hi outs and pins 12 and 14 output serial data. Pressing certain keys changes the pin 3 bit patterns and partly makes strange high beeps or locks it up. It may be that like with Intel MCS-48 the ROM can be dumped this way. (I found a similar mode in the single chip CPU CIL-51 of Penrod AJ-430.) But because there might be a risk (if PROM) of erasing or overwriting ROM contents, I resoldered this pin back to GND.

The pinout initially suggested a variant of Motorola HC05 series 8 bit MCUs (one of MC68HC05C4/C8, MC68HCL05C4/C8, MC68HC705C8, MC68HC805C4, MC68HC05C9). The HC705 is PROM and the HC805 EEPROM based. Variants "C4" have 4 KB, "C8" 8 KB and "C9" 16 KB ROM. SRAM is 176 bytes (HC705C8 supports also 304 bytes and HC05C9 352 bytes). With most Motorola variants the Port D (pin 29..36) seems to be input-only (marked "fixed input register"), which would not match the sound IC wiring. Apparently only MC68HC05C9 can use it for output, which makes it the most plausible type. This IC would contain 15936 or 15760 bytes ROM and 176 or 352 bytes SRAM. Otherwise it is the only variant with clock monitor watchdog function, which would (if enabled) make shitshot impossible. Port D seems to be useable as serial "SCI" port, which would match the serial sound IC communication. But in block diagrams arrows at pins 30..33 are marked always bi-directional, which may mean that these 4 pins can output also in other variants, so the "fixed input" note may refer only to using Port D for non-serial purpose. Pin 3 in variants with PROM or EEPROM is the programming voltage input Vpp; the XF877B0 had here its only apparent 4 letter pin name, which I considered "TEST", but I think it is "NUM" of Hitachi HD6305V0.

A PSS-80 with 4 additional drumpad buttons {snare, cymbal, base, clave} came out as Yamaha PSS-125. An even greater and more advanced variant was the Yamaha PSS-100 (same case, each 16 sounds & rhythms, better sequencer, no OBS buttons). A somewhat similar but simpler Yamaha squarewave instrument like PSS-80 (no synth, no accompaniment) is the small Yamaha PSS-30.
 

 removal of these screws voids warranty...    
WarrantyVoid
back to tablehooters collection
 
 
back