usb_usb: Remove startup wait
[tmk_keyboard.git] / converter / sun_usb / README
CommitLineData
97ee1be5 1Sun to USB keyboard protocol converter
2======================================
b56717b8 3Target MCU is ATMega32u4 but other USB capable AVR will also work.
b56717b8 4
c4123005 5This converter will work with Sun Type 2-5 Keyboards.
97ee1be5 6
97ee1be5 7
c4123005
JW
8Tested on:
9Sun Type 3 Keyboard: http://blog.daveastels.com.s3-website-us-west-2.amazonaws.com/2014/12/27/type-3-keyboard.html
10CTCSP SHORT TYPE KEYBOARD(Type 5): http://imgur.com/a/QIv6p
11
12
13Keymap of Type 3(keymap_sun3.c) were impoted from dastels's repository.
14https://github.com/dastels/tmk_keyboard/tree/master/converter/sun3_usb
15
97ee1be5 16
97ee1be5 17
18Connector
b56717b8 19---------
97ee1be5 20 8Pin mini DIN
21 ___ ___
22 / |_| \
23 / 8 7 6 \
24 | 5 4 3 |
25 \_ 2 1 _/
26 \_____/
27 (receptacle)
28
b56717b8 29 Wiring:
30 Pin mini DIN MCU
31 ----------------------------------
32 1 GND GND
33 2 GND GND
34 3 5V
35 4 RX/TX(Mouse)
36 5 RX PD3
37 6 TX PD2
38 7 GND GND
39 8 5V VCC
97ee1be5 40
41
b56717b8 42Protocol
97ee1be5 43--------
3ee5f565 44Signal: Asynchronous, Negative logic, 1200baud, No Flow control
b56717b8 45Frame format: 1-Start bit, 8-Data bits, No-Parity, 1-Stop bit
46
47 AVR USART engine expects positive logic while Sun keyboard signal is negative.
3ee5f565 48 To use AVR UART engine you need external inverter in front of RX and TX pin.
b56717b8 49 Otherwise you can software serial routine to communicate the keyboard.
50
d3332d32
JH
51This converter uses software method by default, so you don't need any inverter part. But
52it can also be built with 'make HARDWARE_SERIAL=y' to enable hardware serial if there
53is an inverter present. Good results have been obtained using a 74LS04 and hardware serial.
b56717b8 54
55
56Commands From System To Keyboard
57 0x01 Reset
58 Keyboard responds with following byte sequence:
59 Success: 0xFF 0x04 0x7F
60 Fail: 0x7E 0x01 0x7F
61 0x02 Bell On
62 0x03 Bell Off
63 0x0A Click On
64 0x0B Click Off
65 0x0E LED
66 followed by LED status byte:
67 bit: 3 2 1 0
68 LED: CapsLk ScrLk Compose NumLk
69 0x0F Layout
70 Keyboard responds with 'Layout Response' 0xFE 0xXX
71
72Commands From Keyboard To System
73 0x7F Idle
74 means no keys pressed.
75 0xFE Layout Response
76 0xFF Reset Response(followed by 0x04)
77
78Reference
79 http://kentie.net/article/sunkbd/page2.htm
80 http://kentie.net/article/sunkbd/KBD.pdf
81
82
83Build Firmware
84--------------
85Just use 'make'
97ee1be5 86 $ cd sun_usb
87 $ make
b56717b8 88Then, load the binary to MCU with your favorite programmer.
523cc6aa 89
90
91Sun commands
92------------
93You can send Sun protocol commands with TMK `Magic` key combo. By default `Magic` key is `LShift` + `RShift`, `LAlt` + `RAlt' or `LMeta` + `RMeta`.
94https://github.com/tmk/tmk_keyboard#magic-commands
95
96Following Sun specific commands are available. For example, to send 'Bell On' you can press `LShift` + `RShift` + `Up` keys simultaneously.
97
98```
99----- Sun converter Help -----
100Up: Bell On
101Down: Bell Off
102Left: Click On
103Right: Click Off
104PgUp: LED all On
105PgDown: LED all On
106Insert: Layout
107Delete: Reset
108```
Imprint / Impressum