[sdiy] Keyboard scanner
Neil Johnson
neil.johnson97 at ntlworld.com
Thu Jul 30 11:27:52 CEST 2009
Hi Andre,
Andre Majorel wrote:
> Thanks for asking. I have two DX7 keyboards here waiting to be
> turned into a two-manual controller. Each keyboard is a 12 x 5
> matrix (actually 13 x 1 for the first octave). Each key is an SPDT
> with the anode of an 1SS133 diode connected to the SP. 34-way HE10
> connector of which 13 + 5 + 5 = 23 pins are used.
I've just had a look at the DX7 keyboard schematic, and while on the face of it is completely different, there are actually a lot of similarities. To hook up the DX7 keyboard would not be that much additional work, but would mean sacrificing two of the analogue inputs (or one analogue and one switched) for the additional two inputs needed. The scanning logic would need modifying slightly but would otherwise be similar. The annoyance factor is the 34-pin connector, when 26 pins would suffice.
> The analogue controls will be somewhat unconventional, with two or
> three bend levers per keyboard (one per zone), no mod wheels and a
> whole row of pedals.
Two bend levers would be fine.
> If your scanner PCB can handle a DX7 keyboard and enough analogue
> inputs, I guess three of them would do the job. The analogue
> inputs might be handled separately anyway because if they're going
> to be routed to analogue outputs, no need to ADC-DAC them (and clog
> the 100 kbps link).
If you can route the analogue signals away then it makes life a little easier, and gets you out of the 2-channel limitation.
I quoted 100kbps just as a starting point. With a short lead you could probably run at 1-2Mbps, maybe faster.
> For the brain, I was thinking a PC motherboard running some free
> Unix because that's what I know. But PCs don't speak SPI, do they ?
Unlikely, but there are low-cost USB-SPI interfaces with Linux drivers available, such as the TotalPhase "Cheetah" module.
Where possible I prefer to avoid polled operation, so as well as SCLK, MOSI and SS there will also be a host attention signal (HOST_ATN or similar) that tells the host processor when there is data for it to read. I guess if you want you could also poll the scanner at regular intervals, getting 00s if there's no key data.
> Whoops ! I always forget about that off-list part. :-)
That's OK - I didn't want to flood the list with any "me too" messages. Technical discussion is on-topic :-)
Cheers
Neil
--
http://www.njohnson.co.uk
More information about the Synth-diy
mailing list