RedFantom / masterkeys-linux

MasterKeys SDK for Linux
GNU General Public License v3.0
20 stars 4 forks source link

Information exchange regarding keyboard layout #1

Open chmod222 opened 5 years ago

chmod222 commented 5 years ago

Hey RedFantom,

it appears that we are working towards the same goal. I have mapped out and implemented large parts of the protocol used not only by the official SDK but also the control software itself.

I found your repository while trying to locate all MasterKeys models with their respective USB product IDs so that I may implement automatic layout detection, but this might be a dead end now, as both your ANSI Pro L and my ISO Pro L have the same USB product ID, 003b.

So what I am thinking now is that the layout information is encoded somewhere in the init exchange of the protocol that I have largely been unable to decipher. I know that the very first 01 02 ... exchange returns the firmware version in ASCII, but there's also some 40 20 ... package that I can't make sense of. This is the exchange I recorded during initialization:

>> 40 20 00 00 00 00 00 00   00 00 00 00 00 00 [00...]
<< 40 20 00 00 05 14 04 0c   12 01 20 00 00 00 [00...]

Since you are the only other person I know who has an ANSI Pro L, maybe we could compare these and find out which field, if any, is responsible for carrying the layout information?

RedFantom commented 5 years ago

That is very interesting indeed. I used the same approach to decode the protocol used, but I also got stuck on certain parts because I only have a single test device, indeed an ANSI Pro L. The fact that your ISO and my ANSI have the same USB identifiers is kind of disappointing, but I suppose this is a great opportunity for decoding a larger part of the protocol.

I will post the output of the debug executable in issue #10 of your repository.