qmk-keychron-q3-colemak-dh/converter/sun_usb
2012-10-18 10:41:37 +09:00
..
config.h Add Sun converter initial files. 2012-10-18 10:41:37 +09:00
keymap.c Add Sun converter initial files. 2012-10-18 10:41:37 +09:00
led.c Add Sun converter initial files. 2012-10-18 10:41:37 +09:00
Makefile Add Sun converter initial files. 2012-10-18 10:41:37 +09:00
matrix.c Add Sun converter initial files. 2012-10-18 10:41:37 +09:00
README Add Sun converter initial files. 2012-10-18 10:41:37 +09:00

Sun to USB keyboard protocol converter
======================================

TODO
----
AVR UART engine expect positive logic while Sun keyboard signal is inverted serial.
To use AVR UART engine you need inverter in front of RX and TX pin.
Otherwise you can software serial routine to communicate the keyboard.


Hardware
--------
Target MCU is ATMega32u4 but other USB capable AVR will also work.
You can use PJRC Teensy as dev board.
    http://www.pjrc.com/teensy/

Connector
  8Pin mini DIN
     ___ ___
    /  |_|  \
   / 8  7  6 \
  | 5    4  3 |
   \_ 2   1 _/
     \_____/  
   (receptacle)

Wiring:
Pin mini DIN        Teensy
----------------------------------
1   GND             GND
2   GND             GND
3   5V
4   RX/TX(Mouse)
5   RX              PD2
6   TX              PD3
7   GND             GND
8   5V              VCC



Firmware
--------
Build:
    $ cd sun_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 contorol 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|   |
       `---------------------------------------------'         `-----------' `---------------'