Soarer's Converter - mcaple/tmk_keyboard GitHub Wiki

Discussion Threads

Wiring

Connector	Breakout board
------------------------------
GND	        GND
Vcc/+5V	        VCC
Data	        PD0
Clock	        PD1
Keyboard Reset 	PB7

Reset is needed for some of XT keyboards likes IBM XT Type-1, Zenith Z-150 and Leading Edge. https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-XT-Keyboard-Protocol#keyboard-hard-reset

For Reset Pro Micro users need to use modified version firmware because Pro Micro has no pin for PB7. https://deskthority.net/viewtopic.php?p=187874#p187874

Diagnostic Output

The converter outputs some cryptic diagnostic information when in use - it's especially useful to see what is happening when it starts up.

The hid_listen program (from PJRC) can display this output, which mostly just consists of bytes read from and written to the keyboard when things are working correctly.

Most of the output takes the form of a prefix code, followed by a hex value, followed by a space. For example, 'r4A '.

Prefix	Description
r	byte read from keyboard
w	byte written to keyboard
R	read error
W	write error
+	HID code output from first translation stage (for key-press)
-	HID code output from first translation stage (for key-release)
d	HID code output (for key-press) v1.03+
u	HID code output (for key-release) v1.03+

Error codes

Code	Error	Description
R03	unknown	something bad happened!
R04	clock	missed one edge of the clock signal, usually because of a short spike
R05	timeout	started receiving clock from the board, but didn't receive enough for a full code
R06	start bit	read a start bit, but it was incorrect
R07	parity bit	failed to correctly read a parity bit
R08	stop bit	failed to correctly read a stop bit
W005	timeout	timeout while writing a command to the keyboard
W105	timeout	timeout while writing the first byte of a 2-byte command
W205	timeout	timeout while writing the second byte of a 2-byte command

Release History

v1.12  Added workaround for Linux kernel v3.x bug which causes Delete key not to repeat
v1.11  Added support for IBM RT keyboard
       Added display of boot mode state by making converter lock LEDs glow dimly.
       Added extra error codes to help determine where timeouts occur more precisely.
       Prevented debug and rawhid output when keyboard_protocol is not set (i.e. in BIOS mode).
v1.10  Added support for 'almost' PC/XT protocol keyboards, e.g. Leading Edge DC-2014
       Added Keyboard Reset output (required by some PC/XT keyboards).
       Added five auxiliary key inputs (for extra keys, buttons, or footswitches)
       Updated and expanded documentation generally, and added GH and DT Thread Contents pages and History page.
Fixed error LED timeout so it now stays on for 3 seconds after an error instead of flickering.
v1.03  Fixed bug which caused the converter to lose config or reboot after using the scrd tool.
       Fixed minor USB errors revealed by using the Command Verifier compliance testing tool.
       Added debug print of final output HID codes.
v1.02  Fixed bug which could cause the converter to lock up if a key was pressed at certain times during system boot
v1.01  Fixed bug in jump to bootloader affecting Teensy++
v1.0   Added jump to bootloader function, triggered by a macro or a command line tool
       Added scboot tool to jump to bootloader.
       Added scinfo tool to display version and memory use.
       Added tools built for Linux and Mac OS-X.
       Improved reliability of the settings protocol.
       Reduced memory use when not using onbreak macros and/or not using layers.
       Reduced hex size, allowing use of CPUs with only 16kB of flash.
       Added documentation.
v0.997 Added user-definable remaps, macros, layers, selects, media keys, and config tools
v0.996 Fixed 'slow' responding keyboards.
       Improved robustness when keys are being pressed before init has completed.
       Added alternative layouts for terminal keyboards
v0.995 Fixed missing 122-key mapping (top right numpad key is 'pause').
       Simplified the code testing which keyboard type is attached.
v0.994 Added suspend support, with remote wake-up
v0.992 Fixed minor incompatibility with Linux (backslash key not repeating etc.)
v0.99  First public release

MEMO

force command

The force command disables the auto-detection of keyboard type. It is only very rarely needed!

force {set1|set2|set3|set2ext}

as of August 28, 2012

Actually, the 'force' command only forces the converter to listen for set 3, it doesn't try to put the keyboard into a set 3 mode. That might be a feature I'll add at some point,

https://geekhack.org/index.php?topic=17458.msg649576#msg649576

Quirks

Zenith Z-150 AT(beige label)

It fails to receive with R08(stop bit error). This is not the converter's fault at all.

https://geekhack.org/index.php?topic=103648.msg2898418#msg2898418

The keybaord is not compliant to AT protocol due to its weird stop bit(0).

https://geekhack.org/index.php?topic=103648.msg2895781#msg2895781

https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#zenith-z-150-at

Focus FK-2001

People have reported mixed results with this keyboard, which is XT/AT switchable.

Focus FK-2001 may use unusual signaling and Soarer's seems to miss '83' part of its keyboard ID here.

With Soarers it is another story, Like I said I couldn't get it to work, but I know the converters work, I have three of them and none of them work, Here is what I get with HID listen in XT mode

Keyboard ID: 0000
Code Set: 1
Mode: PC/XT

(and I get no inputs)

This is what I get with soarers in at mode

Keyboard ID: 00AB
Code Set: 2 (extended)
Mode: AT/PS2

wED rFA w00 rFA

It recognizes inputs but it has heavy ghosting, even worse than my zenith z150 had with soarers. also, a lot of keys lag or fail to recognize presses, overall over with the soarers I have an inconsistent and unusable keyboard, and using this tmk firmware it works perfectly in both modes.

https://geekhack.org/index.php?topic=103648.msg2994892#msg2994892

Some issues with other converter like BlueCube can be also found.

Initially, the keyboard seemed to work okay. However, if I hit Num Lock or Scroll Lock, the keyboard stops working -- none of the keys registers. I have to disconnect and reconnect the keyboard to get it working again. Sometimes CapsLock causes the keyboard to stop registering as well, but not always.

My adapter and converter are okay because I can connect other AT keyboard with them and they work just fine.

https://deskthority.net/viewtopic.php?t=14690

I've had the same problem with my FK-2001 when using a blue cube adaptor as well.G I'd press caps lock and the keyboard would die. Plugging it into a ps/2 port fixed the problem, so there's that. I think it's just a quirk that all FK-2001s have, and it's not that yours is broken.

https://deskthority.net/viewtopic.php?p=331240#p331240

This post syas Soarer's works well with FK-2001.

I tried using an Adesso active PS/2 to USB converter instead of the blue cube. With the Adesso, I couldn't get the keyboard to register at all.

I found that I had an Orihalcon/Soarer PS/2 to USB converter. This worked! Now, Caps Lock, Num Lock, and Scroll Lock all work. The LEDs light up and I can toggle the lock switches on and off without disconnecting/reconnecting the keyboard. I am typing this on the Focus FK-2001.

https://deskthority.net/viewtopic.php?p=331242#p331242

Something like pull-up resistors may causes Soarer's converter?

Someone said Blue cube even worked.

Are you sure there's not an issue with your Focus board? Mine works fine with the blue cube.

https://www.reddit.com/r/MechanicalKeyboards/comments/4w2j71/help_getting_focus_fk2001_keyboard_to_work/d63jf74/?utm_source=reddit&utm_medium=web2x&context=3

XT Quirks

Soarers's converer is known not to completely compatible to XT protocol and some of XT keyboards doesn't work well.

https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-XT-Keyboard-Protocol#soarers-converter-with-xt-protocol