Page 1 of 1
Epson Q503A Keyboard
Posted: 21 Mar 2020, 03:06
by OldIsNew
Re: Epson Q503A Keyboard
Posted: 21 Mar 2020, 03:38
by John Doe
How did you layout the ctrl and alt keys? Seems have to choose one for the key left the spacebar, and another one right the spacebar.
Re: Epson Q503A Keyboard
Posted: 21 Mar 2020, 21:05
by OldIsNew
John Doe wrote: 21 Mar 2020, 03:38
How did you layout the ctrl and alt keys? Seems have to choose one for the key left the spacebar, and another one right the spacebar.
I left the Ctrl and Alt keys the way they are on the board with Ctrl above and Alt below the left shift key and Caps Lock to the right of the space bar. It's the typical XT arrangement. I know a lot of people don't care for the XT layout, but I actually rather like it.
Re: Epson Q503A Keyboard
Posted: 08 Mar 2021, 21:15
by Mintymus
Sorry if this is a newbie question, but would you be willing to share the program you used for the Teensy?
Re: Epson Q503A Keyboard
Posted: 21 Dec 2024, 06:38
by MMcM
Should anyone care to convert without rebraining, it is not that complicated.
The DIN-8 pinout is as follows:
- 1, 8 Clock
- 2 Data
- 3 Reset
- 4 Ground
- 5 +5V
- 6 Busy
- 7 End
The protocol has eight bit key codes. A clock pulse signals each bit. Additionally, if the end signal is high, that is the last bit of the key code, ready for the computer to receive. While the computer is busy, it can optionally inhibit the keyboard sending by pulling busy low.

- epson-q503a-A.png (55.89 KiB) Viewed 6577 times
The eighth (high) bit indicates key release versus press.
Code: Select all
+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+-------+
|F1 |F2 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ |BS | |ESC|NUM|SCL LCK|
+-------+ +-----------------------------------------------------------+ +---------------+
|F3 |F3 | | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | | | 7 | 8 | 9 | * |
+-------+ +-----------------------------------------------------| | +---------------+
|F5 |F6 | | CTRL | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | | 4 | 5 | 6 | - |
+-------+ +-----------------------------------------------------------+ +---------------+
|F7 |F8 | | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | | 1 | 2 | 3 | |
+-------+ +-----------------------------------------------------------+ +-----------| + |
|F9 |F10| | ALT | | SPACE | |CAPS | | 0 | . | |
+---+---+ +-----+ +--------------------------------------+ +-----+ +-------+---+---+
+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+-------+
|3B |3C | |29 |02 |03 |04 |05 |06 |07 |08 |09 |0A |0B |0C |0D |2B |0E | |01 |45 |46 |
+-------+ +-----------------------------------------------------------+ +---------------+
|3D |3E | |0F |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1A |1B |1C | |47 |48 |49 |37 |
+-------+ +-----------------------------------------------------| | +---------------+
|3F |40 | |1D |1E |1F |20 |21 |22 |23 |24 |25 |26 |27 |28 | | |4B |4C |4D |4A |
+-------+ +-----------------------------------------------------------+ +---------------+
|41 |42 | |2A |2C |2D |2E |2F |30 |31 |32 |33 |34 |35 |36 | |4F |50 |51 |4E |
+-------+ +-----------------------------------------------------------+ +-----------| |
|43 |44 | |38 | |39 | |3A | |52 |53 | |
+---+---+ +-----+ +--------------------------------------+ +-----+ +-------+---+---+
The from-keyboard signals are open collector, coming from a 7407 buffer. So enable pull-up on the MCU inputs. Furthermore, it's fine to connect directly to a 3.3V pin.
The to-keyboard signals go to a MC14049UB inverting buffer. And there are pull-ups inside the keyboard, that is, to 5V. So one really ought to use a level shifter if driving from a lower voltage MCU. The standard Philips i2c one (bidirectional, open collector) kinda works, but a unidirectional one using a complementary buffer like a 74AHCT125 is simpler.