
Introduction:
Earlier in the year I posted an article about a modification for the SY85 that allows the player to get higher velocity values from the keybed.
For reference that article is here:
https://blog.sector101.co.uk/2019/06/30/yamaha-sy85-keyboard-velocity-modification
Recently I gave the floppy drive a service to keep it in check. Surprisingly the drive is still functioning perfectly on the original drive belt. Whilst the SY85 was open I was able to run some experiments on the PKS CPU. The Velocity Modification mentioned above reduces the normal clock speed of the PKS CPU to about 92% of the normal 8Mhz. At this lower speed the SY85 still functions normally – but what would happen if this was reduced further?
The PKS CPU performs these functions in the SY85:
1. Scanning the Keybed for pressed keys and calculating the velocity.
2. Scanning the Front Panel buttons.
3. Monitoring the Sustain pedal.
In these experiments the PKS CPU was driven at lower clock rates to see what would happen to the keyboard velocity values and panel buttons.
PKS Underclocking
Using a Function Generator I was able to clock the PKS CPU to different frequencies.
The normal 8 MHz clock from the Floppy Disk Controller was disconnected and the function generator was hooked up to the SY85’s PKS CPU clock pin.
I used MIDI-OX to monitor MIDI activity from the SY85.
Four different clock speeds were used. These were:
8 MHz – the normal clock rate in the SY85
4 MHz
2 MHz
1 Mhz
The Clock Experiment Results are below:
8 MHz (100%)
Nothing to report. As this is the standard frequency of the PKS everything was normal including the failure to get anywhere near 127 velocity from the keybed.
4 MHz (50%)
MIDI-OX now reports 127 velocity from the keybed. The keybed still reliably registers all keypresses ON and OFF. Large sections of keys were stabbed concurrently – no missing keys reported in MIDI-OX. Sustain pedal still detected reliably – I was hitting this on and off quickly with my hand. The front panel buttons still functioned but I did detect an occasional ‘miss’. If I very quickly pressed Program 1, Program 2, Program 1 in a loop it would miss about 1 press in 10. Pressing and holding the ‘+1’ button to auto-repeat to the next Program was down to half-speed.
2 MHz (25%)
MIDI-OX shows 127 velocity is easy to achieve. Keybed detection is still reliable with no latency in the sound. The Sustain pedal is now missing the occasional hit, and the front panel buttons are sluggish giving the impression that some are faulty. If you are used to quickly selecting programs & menus with a quick stab-stab-stab action then this is very noticable. Keeping a finger on the buttons a little longer still works.
1 MHz (12.5%)
MIDI-OX shows 127 velocity is very easy to achieve. Keybed detection is still 100% reliable with no latency in the sound. Sustain detection is sluggish. The front panel buttons are getting tedious to use – a finger needs kept on each one for a duration before detection. Pressing and holding the ‘+1’ button to auto-repeat to the next Program takes an eternity.
620 KHz (7.8%)
It appeared the lowest clock speed the PKS would take was around the 620KHz mark. Any lower and it stopped responding to keypresses and panel button pushes. Either the code inside the PKS crashed at this speed, or the main CPU gave up waiting for data. Increasing the speed did not bring the PKS back again – the SY85 needed to be power-cycled.
At 620 KHz the keybed detection was still very reliable. MIDI-OX showed all the Note-On & Note Offs for every key I hit, even when I quickly tramped an arms-length of them up and down.
Driving the PKS using the 4MHz clock was still usable and I was able to get 127 velocity without hammering the keys. A frequency between 4 MHz and 8 Mhz would be an ideal value for a velocity modification – the panel switches would still be responsive, and those higher velocity values easier to reach without key-hammering. Something around the 6 MHz would be useful.
As luck would have it the SY85 already has an onboard clock circuit giving out a useful 6.114 MHz. If we use this clock the PKS will be driven at around 76% of normal speed.
Velocity Modification using 6.114 MHz Clock
After a bit of tracking-down I found this 6.114 MHz clock comes from IC21 on Pins 12 & 13. It appears be used for the Effects Engine and other things. Scoping these pins showed this signal comes on immediately the SY85 is powered on. It is a square wave 0 – 5V pulse with 50% duty cycle.
The signal is buffered through IC43 and is output on Pin 10. This is where to tap into the 6.114 MHz clock.
For this modification the trace indicated by the arrow near the top left of the photo needs to be cut. This is the same trace cut detailed in the SY85 Keyboard Velocity Modification
A link wire needs attached to the signal source at IC43 Pin 10 and run to Pin 3 on IC12. A 120R resistor was put in series at the IC12 end of the link to kill some signal ringing that appeared there. The mod worked fine without the resistor but it is worth cleaning it up when it is easily done. Any value between 68R & 120R will work. Scoping the clock source at IC43 Pin 10 before and after the mod showed no degradation in signal quality.
The link was routed away from other high-speed signals as much as possible.
Trace cut is indicated at top left. Link wire runs from IC43 Pin 10 to IC12 Pin 3 through 120R resistor
6.114MHz Clock Source: IC43 – Pin 10
Trace Cut, 120R Resistor and IC12 – Pin 3
Disclaimer:
If you choose to do this modification be aware that it is at your own risk – I take no responsibility for any damage you may do to your SY85. It is assumed that the person doing the modification is experienced with working with PCBs and that full antistatic precautions are followed.
// Document End