Solidtek ACK-571 IR keyboard on MAXQ remotes
Posted: Wed Jan 13, 2016 1:25 pm
I have posted a device upgrade for MAXQ remotes that provides complete support for the keys (but not the mouse functions) of the Solidtek ACK-571 keyboard.
The protocol allows a single key of the remote to send the signal of either a single keyboard key or of two keyboard keys pressed together, such as Ctrl/X. It does this by using two OBCs. When OBC2=127 then it sends the signal corresponding to OBC1. The value 127 does not correspond to any physical key of the keyboard. When OBC1 and OBC2 are both OBCs of physical keys then it sends the signal of both keys pressed together. More specifically, it sends in order the make signal for key 1, the make for key 2, the break for key 2 then the break for key 1. If the combination is held then it is the make of key 2 that repeats. So for example if the signal with OBC1=32 (corresponding to key A) and OBC2=127 is sent to the Notepad application, it will input "a" and if held will generate the repetition "aaaa...". But if OBC1=14 (Left Shift key) and OBC2=32 then it will input "A" and if held will generate "AAAA...".
There is also a second special value for OBC2. When OBC2=126 then it sends a make signal or a break signal on its own, exactly once. If OBC1 < 128 then it is the make signal for the key concerned. If 128 is added to the OBC then it is the break signal. This facility allows the construction of macros that correspond to the simultaneous pressing of three, or even more, keys.
My thanks are due to Ed Heller (user edheller) for providing me with a real Solidtek ACK-571 keyboard to enable this protocol to be developed. The timings involved in the protocol have little tolerance and it proved impossble to get the protocol working reliably without access to a real keyboard for testing.
The protocol allows a single key of the remote to send the signal of either a single keyboard key or of two keyboard keys pressed together, such as Ctrl/X. It does this by using two OBCs. When OBC2=127 then it sends the signal corresponding to OBC1. The value 127 does not correspond to any physical key of the keyboard. When OBC1 and OBC2 are both OBCs of physical keys then it sends the signal of both keys pressed together. More specifically, it sends in order the make signal for key 1, the make for key 2, the break for key 2 then the break for key 1. If the combination is held then it is the make of key 2 that repeats. So for example if the signal with OBC1=32 (corresponding to key A) and OBC2=127 is sent to the Notepad application, it will input "a" and if held will generate the repetition "aaaa...". But if OBC1=14 (Left Shift key) and OBC2=32 then it will input "A" and if held will generate "AAAA...".
There is also a second special value for OBC2. When OBC2=126 then it sends a make signal or a break signal on its own, exactly once. If OBC1 < 128 then it is the make signal for the key concerned. If 128 is added to the OBC then it is the break signal. This facility allows the construction of macros that correspond to the simultaneous pressing of three, or even more, keys.
My thanks are due to Ed Heller (user edheller) for providing me with a real Solidtek ACK-571 keyboard to enable this protocol to be developed. The timings involved in the protocol have little tolerance and it proved impossble to get the protocol working reliably without access to a real keyboard for testing.