Code: Select all
> HELO MOTO
< 200+MODEL Poker III, ISO, 62
< 200+REVISION 1.2
< 200+PROTOCOL 1.0
< 200+FEATURES Delay_Keys/1.1
< 200+LAYERS "Normal", "Fn"=0xFFFF
< 200+BUFFER 14
< 200 Ready
> READ 0xFFFF+x042
< 210 DEFAULT
> BIND 0xFFFF+0x42 = 0x99
< 220 Binding set
> READ 0xFFFF+0x42
< 210 0x99
It's not OS specific, it's not even software specific, as you can use a plain old serial client (Hyperterminal, PuTTY etc), to program it if there isn't (yet) a programming application for your system.
I am suspecting (I'm not at my work PC right now, so I can't check) that the "broken" Pn layer on my Poker II is a result of me not realising how the Pn layer was set in the factory. I was setting bindings to the empty list to remove my tests, and that's probably what's killed off most modifiers in Pn mode.
"Solution": Programming software on your PC.
Problem: what if I don't have Windows, or the developer doesn't have Windows?
Solution: Make the keyboard's programming independent of any specific programming software.
What it means also is that any program can bring up a schematic of any keyboard's programming, so I'd actually see from the outset what's on my Poker's Pn layer and realise that I'm making a hash out of it.
It also means that you don't need to waste a whole Pn key for programming ;-)
One thing it would require, is standardisation of additional scancodes for meta keys.
I've used 0xFFFF to represent Fn, and maybe use the 0xF000-0xFFFE range for meta keys, e.g. macro delay keys, backlight control, dedicated macro keys etc. Additional layer keys can go from 0xFFFE down.
Feasible? Am I just plain nuts/asking way too much? Are the odds too high that keyboard firmware implementers are just going to screw it all up like with any other protocol? Too complicated? I don't want this to be another of the horrible mistakes the IT industry has been making for years.