X68000 to USB keyboard protocol converter ========================================= SHARP X68000 is a hobby computer released in Japan.(1987-93) http://en.wikipedia.org/wiki/Sharp_X68000 X68000 keyboard has ALPS linear switches. - DSETK0016CE01 green linear - DSETK0022CE02 yellow linear - DSETK0023CE03 yellow linear Hardware -------- Target MCU is ATMega32u4 but other USB capable AVR will also work. You can use PJRC Teensy as development board. http://www.pjrc.com/teensy/ Wiring: Mini-DIN Teensy ----------------------------------------------------- pin1 +5V VCC pin2 MOUSE - pin3 RXD PD2(RXD) pin4 TXD PD3(TXD) NOTE: Not supported yet. pin5 READY - pin6 REMOTE - pin7 GND GND Firmware -------- Build: $ cd x68k_usb $ make And load the binary to MCU with your favorite programmer. If you use Teensy you can load with PJRC Teensy Loader tool. http://www.pjrc.com/teensy/loader.html * * * * * * * * * * * * * * * * * * X68000 Keyboard Protocol ======================== http://kyoutan.jpn.org/uts/pc/pic/x68key/ Connector --------- Mini DIN 7pin(female connector on computer side) 7 6 5 o o o 4 o = o 3 o o 2 1 Mini-DIN ------------- pin1 +5V pin2 MOUSE pin3 RXD pin4 TXD pin5 READY pin6 REMOTE pin7 GND Signaling --------- - TXD,RXD Asynchronous, 2400baud, 1-startbit(L), 8-databit, 1-stopbit(H) - READY ready/not ready(1/0) Data from keyboard ------------------ bit 7 make/break flag(0/1) bit 6-0 following scan code Data from computer ------------------ - LED control ON/OFF(0/1) bit 7 1(fixed) bit 6 全角 bit 5 ひらがな bit 4 INS bit 3 CAPS bit 2 コード入力 bit 1 ローマ字 bit 0 かな - Repeat delay bit 7 0(fixed) bit 6 1(fixed) bit 5 1(fixed) bit 4 0(fixed) bit 3-0 delay REPEAT_DELAY = 200+delay*100 ms default: 500ms - Repeat time bit 7 0(fixed) bit 6 1(fixed) bit 5 1(fixed) bit 4 1(fixed) bit 3-0 time REPEAT_TIME = 30+time^2*5 ms default: 110ms Scan Codes ---------- ,---. ,---. ,-------------------, ,-------------------. ,-----------. ,---------------. | 61| | 62| | 63| 64| 65| 66| 67| | 68| 69| 6A| 6B| 6C| | 5A| 5B| 5C| | 5D| 52| 53| 54| `---' `---' `-------------------' `-------------------' `-----------' `---------------' ,-----------------------------------------------------------. ,-----------. ,---------------. | 01| 02| 03| 04| 05| 06| 07| 08| 09| 0A| 0B| 0C| 0D| 0E| 0F| | 36| 5E| 37| | 3F| 40| 41| 42| |-----------------------------------------------------------| |------------ |---------------| | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1A| 1B| 1C| | | 38| 39| 3A| | 43| 44| 45| 46| |------------------------------------------------------. 1D | `---=====---' |---------------| | 71 | 1E| 1F| 20| 21| 2l| 23| 24| 25| 26| 27| 28| 29| | ___| 3C|___ | 47| 48| 49| 4A| |-----------------------------------------------------------| | 3B|---| 3D| |-----------|---| | 70 | 2A| 2B| 2C| 2D| 2E| 2F| 30| 31| 32| 33| 34| 70 | `---| 3E|---' | 4B| 4C| 4D| | `-----------------------------------------------------------| .---=====---. |-----------| 4E| | 5F| 55 | 56 | 35 | 57 | 58 | 59 | 60| | 72 | 73 | | 4F| 50| 51| | `---------------------------------------------' `-----------' `---------------' LED Special Functions --------------------- http://homepage2.nifty.com/m_kamada/docs/unlistedx68k.htm#keyboard 1. Random Illumination Plug in with pressing F1, F2 and F3. 2. Sequential Illumination Plug in with pressing 記号入力(52), 登録(53) and HELP. 3. Scan code Display Plug in with pressing かな(5A), ローマ字(5B) and コード入力(5C). You can see its scan code on LEDs by pressing a key. +---------------------------------------------------+ |bit|6 |5 |4 |3 |2 |1 |0 | |---+----+--------+---+----+----------+--------+----| |LED|全角|ひらがな|INS|CAPS|コード入力|ローマ字|かな| +---------------------------------------------------+