It's been five years since I stopped working on my
Maplin 5600 Synthesiser,
I had got to the point where I needed to fit a keyboard but the original parts were
not surpisingly unavailable. To get round this I built small circuit boards and spaced micro switches at the same spacing as a standard
sized keyboard. This worked well for testing and at that point I ran out of steam on the project and I moved on to other things.
I always had this idea that I could use an old Yamaha or similar keyboard to simply overlay the microswitches and so every now and then I would look
on the second hand sales web sites for cheap broken keyboads. Unfortunately most machines like this also have damaged or written on keys. A few months ago
I came across an old Yamaha PSR27 which fitted the bill.
So here it is..
On the outside it looks very clean..ideal.
Undoing a lot of screws..
reveals some cobwebs and a lot of grime..
Having given it a good clean the keybed looks easy to remove. The case has markings that place the manufacturing date of 26/09/1988 for the case and September
1989 for the assembly date.
Keybed removed and is looking good.
I was pleasantly surprised to see a very simple diode matix incorporated on the frame so I did a quick check and scribbled out some of the circuit.
I can definitely drop the idea of using my microswitches.
From this I have a few options. I could try and interface it directly onto the existing binary encoder or I could use a Raspberry Pi Pico to replace the
it completely.
The original binary encoder relies on single pole change over key contacts but this keyboard has single pole 'contacts'. I am looking at
re-using the diodes in a different configuration - not sure if the above will work or I could use the existing diode matrix and scan it from the GPIO of
a Raspberry Pi Pico and output the relevant codes to entirely replace the encoder.
decisions, decisions..
I decided I'd have a go at using a Pi Pico to emulate the binary encoder as it is the least invasive to the keyboard and it's also a good
challenge in programming. To this end I completed the reverse engineering of the diode matrix and it seems easy enough to interface to a Pico.
My first version of the code conversion list.
Whilst working out the necessary coding conversion I thought about the physical interface. Luckily the ribbon cable connector on the circuit board has
a similar layout to a 15 pin 'D' type connector so I will be able to solder that in place without removing the circuit board then I'll run a ribbon cable
to the Pico test breadboard.
The PSR27 keyboard uses the same data for each group of six keys and each group has a common Group Select bit - basically the keys are multiplexed. My aim
is to use the Raspberry Pi Pico to demuliplex the data and convert it to the 5600 key codes. It has also got me thinking about Midi but that will be
much further down the line.
I have set up a breadboard with a Pico, some LED's and the wiring ready to connect to the keyboard. The LED's show the codes for the key presses.
I've also written this simple test program to output the key codes. It simply declares all the I/O required and sets the outputs to a known value. It then
scans the keyboard diode matrix asserting a logic '0' on each row one at a time and reads the columns in as data each time. At the moment it just passes
the data straight out to light some LED's so I can see what is going on. Once I've tested this with the keyboard I'll write
the code to read each key and convert the data to what the 5600 expects.
I have moved the breadboard over to my other bench closer to the keyboard ready to connect it when the parts arrive. The Pico is connected to the RPi via a
USB extension to make it easy to do alterations to the software.
The parts arrived and it didn't take long for me to abandon the 'D' type idea. It would be very tricky to solder on and once a connecter is plugged
in it would be too tall for the keyboard to sit stable on the bench (or in the synth). I basically made the mistake of removing the original ribbon
cable from the wrong end - I should have left it connected to the keyboard then I could have simply crimped some dupont connectors on. I made more work for
myself!
So the next idea is to solder in some ribbon cable terminated in dupont connectors. To do this I have to do something I was trying to avoid and that
is to remove the key PCB and the connector.
Once again I'm waiting on parts..