Microsoft MCE Keyboard Remote

As keyboards are such a pain to get replicate using a remote, they get their own forum. Hopefully having all the posts in one place will make it easier to find the solution.

Moderator: Moderators

Post Reply
vickyg2003
Site Admin
Posts: 7109
Joined: Sat Mar 20, 2004 12:19 pm
Location: Florida
Contact:

Post by vickyg2003 »

The mouse commands have been fixed and are working in version #2. Three mistakes there, 2 typing errors, and reversing the left and right click, because I don't know left from right.

The Keyboard still has some trouble, mostly with some values that I did by hand
A,C,G,

I will have a look at these next.
The Robman
Site Owner
Posts: 21928
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

vickyg2003 wrote:The Keyboard still has some trouble, mostly with some values that I did by hand: A,C,G
I thought we had a good decode for "G": 00100000-11111000000000000101000000000

I never saw working signals for "A" and "C", if you can re-capture them I'll decode them for you.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
vickyg2003
Site Admin
Posts: 7109
Joined: Sat Mar 20, 2004 12:19 pm
Location: Florida
Contact:

Post by vickyg2003 »

It seems i packed up the wrong version of the protocol so none of the of the shifted keys are working. I was about to post it when i ran out of time. Most of the keys are working once the right protocol is included.

On a bare windows 10 machine how would you test ESC, shift and function keys?
Last edited by vickyg2003 on Wed Sep 13, 2017 4:34 pm, edited 1 time in total.
Remember to provide feedback to let us know how the problem was solved and share your upgrades.

Tip: When creating an upgrade, always include ALL functions from the oem remote, even if you never plan on assigning them to a button. Complete function lists makes an upgrade more helpful to others.
mdavej
Expert
Posts: 4635
Joined: Wed Oct 08, 2003 7:08 am

Post by mdavej »

vickyg2003 wrote:On a bare windows 10 machine how would you test shift and function keys?
This might work:
http://aalapshah.in/qipress/
vickyg2003
Site Admin
Posts: 7109
Joined: Sat Mar 20, 2004 12:19 pm
Location: Florida
Contact:

Post by vickyg2003 »

Thanks Dave, that reminded me that there is the OSK built into windows. The window 10 OSK is kind of lame, but somewhere in my teaching stuff I copied off the OSK from my old XP del that has Function keys. I haven't found it yet, but I know I have it on a thumbdrive somewhere.

This morning I updated the link with the latest and greatest.
Tested all keys except F2-F12, will test those once I find my old OSK.exe.

Issue: Comma is not sending a comma, its sending a <. That is direct from harmony, so we can't do anything about that unless someone comes up with a new version.

Esc, Alt, Shift, Capslocks, Windows/Start CNTL were all verified.
1234567890 were all verified
abcdefghijklmnopqrstuvwxyz
!@#$%^&*()_+ were all verified
[]{}\|<>?/ were all verified
F1 was verified.

https://www.hifi-remote.com/forums/dload ... e_id=14676
Remember to provide feedback to let us know how the problem was solved and share your upgrades.

Tip: When creating an upgrade, always include ALL functions from the oem remote, even if you never plan on assigning them to a button. Complete function lists makes an upgrade more helpful to others.
mdavej
Expert
Posts: 4635
Joined: Wed Oct 08, 2003 7:08 am

Post by mdavej »

I think that's ok since comma and < are the same keycode. I wouldn't worry about it as long as you're sending hex OBC 36.

I actually use the OSK in Win 10 a lot. Here's a couple of ways to launch it.
https://www.isunshare.com/windows-10/6- ... ws-10.html

I guess the next step is to name this (these) protocol(s) and get it in protocols.ini for the various processors. I have no idea how protocols get named, but "MCE Keyboard" seems as good as any.
vickyg2003
Site Admin
Posts: 7109
Joined: Sat Mar 20, 2004 12:19 pm
Location: Florida
Contact:

Post by vickyg2003 »

mdavej wrote:I think that's ok since comma and < are the same keycode. I wouldn't worry about it as long as you're sending hex OBC 36.

................

I guess the next step is to name this (these) protocol(s) and get it in protocols.ini for the various processors. I have no idea how protocols get named, but "MCE Keyboard" seems as good as any.
No the next step is to figure out how the checksum is calculated.

We have a ton of binary timing sets, which should help. The last 8 bits is some sort of shift flag. When you send !@#$%^&*() you see that the value is always "000000010" for these keys. The next to the last is the keycode which is very straight forward, we have all of those. When the byte before that is always "00000000" again. And the 5 bits before before that is some kind of verfication code. We need some mathy type to figure out how that verifcation code is calculated. We do know that the comma has a weird bit set. I'm just not sure what keycombo would yield that code, but we do have that as another example of how the last byte affects that verification code.

What my part was is to take that checksum and the OBC and incorporate the shift bit and squish it into two bytes of hex to pass as a parameter into the protocol executor.

I squished it, by adding 128 to the OBC and then used the first 3 bits of the verification code to tell me what power of 2 it needs to be.
vvvvv = verifification code
obcobcob = OBC byte for keycode
sssssssss = shiftbyte (1 bit set)

00100,000, vvvvv, 00000000, 0,obcobco, ssssssss

My current scheme doesn't work for the following codes, but really how much do you really want to type with a remote? Although Caps Lock, CTRL, Shift and Alt were all captured. Perhaps the reason that the , is sending out < with a different ssssssss value, is that the other shift key was used when sending it.

Code: Select all

80 - Keyboard Volume Up
81 - Keyboard Volume Dn
82 - Caps Lock
83 - Num Lock
84 - Scroll Lock
85 - Keypad , Brazilian Keypad .
86 - Keyboard Equal Sign
87 - Keyboard Int'l 1
88 - Keyboard Int'l 2
89 - Keyboard Int'l 2
8A - Keyboard Int'l 4
8B - Keyboard Int'l 5
8C - Keyboard Int'l 6
8D - Keyboard Int'l 7
8E - Keyboard Int'l 8
8F - Keyboard Int'l 9
90 - Keyboard Lang 1
91 - Keyboard Lang 2
92 - Keyboard Lang 3
93 - Keyboard Lang 4
94 - Keyboard Lang 5
95 - Keyboard Lang 6
96 - Keyboard Lang 7
97 - Keyboard Lang 8
98 - Keyboard Alternate
99 - Erase
9A - SysReq/Attention
9B - Keyboard Cancel
9C - Keyboard Clear
9D - Keyboard Prior
9E - Keyboard Return
9F - Keyboard Separator
A0 - Keyboard Out
A1 - Keyboard Oper
A2 - Keyboard Clear/Again
A3 - Keyboard CrSel/Props
A4 - Keyboard ExSel
E0 - Left Control
E1 - Left Shift
E2 - Left Alt
E3 - Left GUI
E4 - Right Control
E5 - Right Shift
E6 - Right Alt
E7 - Right GUI 
Remember to provide feedback to let us know how the problem was solved and share your upgrades.

Tip: When creating an upgrade, always include ALL functions from the oem remote, even if you never plan on assigning them to a button. Complete function lists makes an upgrade more helpful to others.
mdavej
Expert
Posts: 4635
Joined: Wed Oct 08, 2003 7:08 am

Post by mdavej »

Agree, no need to add those.
The Robman
Site Owner
Posts: 21928
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

Vicky, do you have a spreadsheet with all the binary that you know in it?
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
vickyg2003
Site Admin
Posts: 7109
Joined: Sat Mar 20, 2004 12:19 pm
Location: Florida
Contact:

Post by vickyg2003 »

The Robman wrote:Vicky, do you have a spreadsheet with all the binary that you know in it?
No i have them in all sorts of formats. I have bunch of ict files that wouldn't give me all the signals inside even after padding the last leadout time.

i will put together one cohesive file tonight. Then you math/logic geniuses can have a run at the verification codes.
Remember to provide feedback to let us know how the problem was solved and share your upgrades.

Tip: When creating an upgrade, always include ALL functions from the oem remote, even if you never plan on assigning them to a button. Complete function lists makes an upgrade more helpful to others.
vickyg2003
Site Admin
Posts: 7109
Joined: Sat Mar 20, 2004 12:19 pm
Location: Florida
Contact:

Post by vickyg2003 »

I relearned most of the keys and did the irscope-decode spreadsheet. I bundled it with the keyboard upgrade, so that anybody that wants to check on my work can find the data there.

The file is rawtimings.txt inside the zip file

https://www.hifi-remote.com/forums/dload ... e_id=14676
Remember to provide feedback to let us know how the problem was solved and share your upgrades.

Tip: When creating an upgrade, always include ALL functions from the oem remote, even if you never plan on assigning them to a button. Complete function lists makes an upgrade more helpful to others.
The Robman
Site Owner
Posts: 21928
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

I have 4 of the 5 checksum bits cracked but have run out of time to get the last one.

https://www.hifi-remote.com/forums/dload ... e_id=14692

To see what I'm doing, the rec columns (P thru T) have formula to calculate the checksum and it turns red when the code is right. I'm adding bits together then using the MOD(?,2) function to replicate doing an XOR.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
vickyg2003
Site Admin
Posts: 7109
Joined: Sat Mar 20, 2004 12:19 pm
Location: Florida
Contact:

Post by vickyg2003 »

This certainly points out why we want a complete set of learns before we try to crack an IR code.

They didn't make this easy. You need a computer to crack it, :lol:

Nice job. It certainly is above my math/logic/eyesight skills.
Remember to provide feedback to let us know how the problem was solved and share your upgrades.

Tip: When creating an upgrade, always include ALL functions from the oem remote, even if you never plan on assigning them to a button. Complete function lists makes an upgrade more helpful to others.
The Robman
Site Owner
Posts: 21928
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

OK, added the final bit. They really went to town on this checksum. This final bit required me to add 2 to the OBC and then use a bit from THAT binary.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
vickyg2003
Site Admin
Posts: 7109
Joined: Sat Mar 20, 2004 12:19 pm
Location: Florida
Contact:

Post by vickyg2003 »

So then can you calculate what the checksum should be for the comma when the final bit is all zeros?
Remember to provide feedback to let us know how the problem was solved and share your upgrades.

Tip: When creating an upgrade, always include ALL functions from the oem remote, even if you never plan on assigning them to a button. Complete function lists makes an upgrade more helpful to others.
Post Reply