From 52ecc76e28bbcde9e35d35eb48a4d5b78aa204e2 Mon Sep 17 00:00:00 2001 From: Yann Hodique Date: Thu, 11 Oct 2018 15:26:56 -0700 Subject: port sun_usb converter from tmk initial import --- keyboards/converter/sun_usb/readme.md | 89 +++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 keyboards/converter/sun_usb/readme.md (limited to 'keyboards/converter/sun_usb/readme.md') diff --git a/keyboards/converter/sun_usb/readme.md b/keyboards/converter/sun_usb/readme.md new file mode 100644 index 000000000..3470e6091 --- /dev/null +++ b/keyboards/converter/sun_usb/readme.md @@ -0,0 +1,89 @@ +# Sun to USB keyboard protocol converter + +A converter for using non-USB Sun keyboards. + +Original code from the [TMK firmware](https://github.com/tmk/tmk_keyboard/tree/master/converter/sun_usb). Ported to QMK by [Yann Hodique](https://github.com/sigma). + +Keyboard Maintainer: [Yann Hodique](https://github.com/sigma) +Hardware Supported: See hardware section below +Hardware Availability: self-built + +Make example for this keyboard (after setting up your build environment): + + make converter/sun_usb/type5:default + +See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. + + +## Hardware + +Target MCU is ATMega32u4 but other USB capable AVR will also work. The maintainer mostly uses Teensy 2.0 boards. +Supported keyboards: Sun Type 3 and 5 Keyboards, + +### 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, you doesn't need any inverter part. + + +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) + +References + +* http://kentie.net/article/sunkbd/page2.htm +* http://kentie.net/article/sunkbd/KBD.pdf -- cgit v1.2.3-24-g4f1b