|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- Sun to USB keyboard protocol converter
- ======================================
- Target MCU is ATMega32u4 but other USB capable AVR will also work.
-
- This converter will work with Sun Type 2-5 Keyboards.
-
-
- Tested on:
- Sun Type 3 Keyboard: http://blog.daveastels.com.s3-website-us-west-2.amazonaws.com/2014/12/27/type-3-keyboard.html
- CTCSP SHORT TYPE KEYBOARD(Type 5): http://imgur.com/a/QIv6p
-
-
- Keymap of Type 3(keymap_sun3.c) were impoted from dastels's repository.
- https://github.com/dastels/tmk_keyboard/tree/master/converter/sun3_usb
-
-
-
- Connector
- ---------
- 8Pin mini DIN
- ___ ___
- / |_| \
- / 8 7 6 \
- | 5 4 3 |
- \_ 2 1 _/
- \_____/
- (receptacle)
-
- Wiring:
- Pin mini DIN MCU
- ----------------------------------
- 1 GND GND
- 2 GND GND
- 3 5V
- 4 RX/TX(Mouse)
- 5 RX PD3
- 6 TX PD2
- 7 GND GND
- 8 5V VCC
-
-
- Protocol
- --------
- Signal: Asynchronous, Negative logic, 1200baud, No Flow control
- Frame format: 1-Start bit, 8-Data bits, No-Parity, 1-Stop bit
-
- AVR USART engine expects positive logic while Sun keyboard signal is negative.
- To use AVR UART engine you need external inverter in front of RX and TX pin.
- Otherwise you can software serial routine to communicate the keyboard.
-
- This converter uses software method by default, so you don't need any inverter part. But
- it can also be built with 'make HARDWARE_SERIAL=y' to enable hardware serial if there
- is an inverter present. Good results have been obtained using a 74LS04 and hardware serial.
-
-
- Commands From System To Keyboard
- 0x01 Reset
- Keyboard responds with following byte sequence:
- Success: 0xFF 0x04 0x7F
- Fail: 0x7E 0x01 0x7F
- 0x02 Bell On
- 0x03 Bell Off
- 0x0A Click On
- 0x0B Click Off
- 0x0E LED
- followed by LED status byte:
- bit: 3 2 1 0
- LED: CapsLk ScrLk Compose NumLk
- 0x0F Layout
- Keyboard responds with 'Layout Response' 0xFE 0xXX
-
- Commands From Keyboard To System
- 0x7F Idle
- means no keys pressed.
- 0xFE Layout Response
- 0xFF Reset Response(followed by 0x04)
-
- Reference
- http://kentie.net/article/sunkbd/page2.htm
- http://kentie.net/article/sunkbd/KBD.pdf
-
-
- Build Firmware
- --------------
- Just use 'make'
- $ cd sun_usb
- $ make
- Then, load the binary to MCU with your favorite programmer.
-
-
- Sun commands
- ------------
- You can send Sun protocol commands with TMK `Magic` key combo. By default `Magic` key is `LShift` + `RShift`, `LAlt` + `RAlt' or `LMeta` + `RMeta`.
- https://github.com/tmk/tmk_keyboard#magic-commands
-
- Following Sun specific commands are available. For example, to send 'Bell On' you can press `LShift` + `RShift` + `Up` keys simultaneously.
-
- ```
- ----- Sun converter Help -----
- Up: Bell On
- Down: Bell Off
- Left: Click On
- Right: Click Off
- PgUp: LED all On
- PgDown: LED all On
- Insert: Layout
- Delete: Reset
- ```
|