您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
此仓库已存档。您可以查看文件和克隆,但不能推送或创建工单/合并请求。
John Hickey d5d58f566d Make Bell and Click work on Sun Type 5c. 8 年前
..
Makefile Add hardware serial support for sun_usb converter 8 年前
README Add hardware serial support for sun_usb converter 8 年前
command_extra.c Make Bell and Click work on Sun Type 5c. 8 年前
config.h Add hardware serial support for sun_usb converter 8 年前
keymap.c fix hard-coded keys 10 年前
keymap_sun3.c sun_usb: import dastels's keymap of Type 3 9 年前
led.c sun_usb: Fix LED status update at startup 9 年前
matrix.c sun_usb: LED update for hotplug keyboard into converter 9 年前

README

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
```