[sdiy] Keyboard scanner

Neil Johnson neil.johnson97 at ntlworld.com
Wed Jul 29 14:09:29 CEST 2009

Hi George,

> I'd be interested in this for my polysynth as I've yet to design one for it.
> I like AVRs and for 8bit micros I'm a big fan of them.  I'd much rather a
> system that outputs midi format data over uart though.. I assume this might
> be more useful for others too.  

Yeah, I had thought of that, but rejected on several reasons:

1/ I don't have enough pins on the ATmega8 - at the moment it just nicely fits.

2/ UARTs are a 1-1 connection, so this would take up an entire UART on the master processor, which may or may not be available.  SPI on the other hand is a bus architecture, so its easier to bolt on an additional block to SPI than UART.

3/ SPI allows the master processor to set the speed of comms, rather than have it hard-coded in the scanner module.  If I were to go MIDI-compatible I would be stuck at 31250 baud, which could get a little clogged with lots of note on/off and controller data.

> The diode matrix arrangement could be made compatible with FATAR keybeds like
> the ones from doepffer,

I don't have the details for the diode matrix on Fatar keyboards, but it may be possible to support those too.  I assume they have two contacts per key so you can measure time-of-flight for velocity calcs.

> and I would also very much like the keboard scanner to have inputs for
> pitch/mod wheels and also sustain and control pedals...

Yep, got those already.

> I guess this isn't quite what you had planned and it amounts to a complete
> keyboard controller interface, but it would be a great circuit.. the ones
> doepffer do aren't quite complete.

To recap/repeat:

- 61-key two-contact scanning for note-on/off velocity
- 3 analogue inputs (0-2V5) intended for pitchbend, mod.wheel and expression pedal
- 1 switch input for sustain pedal
- one SPI slave connection to master processor
- 5V powered

> The user could interface via MIDI or just direct UART, or you could even add
> SPI.. having the MIDI standard protocol already in place makes it easy for
> others to use, and it's all there to be used or ignored.

A MIDI UART connection would not be easy for me (quite the opposite).  And moving one signal around to expose the TxD pin would necessitate using the internal crystal, which would affect velocity measurement with temperature (would that really be an issue???).

Thanks for all the comments so far.


More information about the Synth-diy mailing list