90 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# 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
 |