Open chmod222 opened 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.
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 some40 20 ...
package that I can't make sense of. This is the exchange I recorded during initialization: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?