Microsoft MCE Keyboard Remote
Moderator: Moderators
-
The Robman
- Site Owner
- Posts: 21887
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
Can you document exactly what all the bits do as I didn't understand your earlier explanation, with the sign, etc.
Do you want to add any of that extra stuff to the code, like the 3000 pause, etc? Feel free to edit my combo if you like. Ask questions if there's anything in there that doesn't make sense.
Do you want to add any of that extra stuff to the code, like the 3000 pause, etc? Feel free to edit my combo if you like. Ask questions if there's anything in there that doesn't make sense.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
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: 7104
- Joined: Sat Mar 20, 2004 12:19 pm
- Location: Florida
- Contact:
After still more experimenting I found we've got the leadout time too short on both the keyboard and the mouse. When I held down a letter key, eventually it stopped working too, but on the keyboard its no big deal if you run out of repeat after a few hundred repeats. On the mouse however that was the kiss of death. I think that we are sending too many signals too close together, sending the IR processor into some kind of overflow situation causing the IR processor to freeze until the signals stopped coming.. That would account for the peculiar behavior I've been seeing. So I added all the times together on the keyboard and came up with 98000 overall frame length. I tried 98000 as the over all frame length. So I kept shorening it and when the leadout as total got down to 45056u, the mouse was still very lively and no logic needed to pad out the timing. So the timeout for a mouse should be
About the bits.
Mice used to be a mechanical. If you had an early mouse, it had 2 buttons and a rubber ball that moved two silver bars inside the housing. The mouse would transmit the number of rotations of the silver bars to indicate movement. One bar would represent the change in Y, one the change in X.
in our data we have
8 bitDevice, 5 bit checksum, 7 bit change in y, 7 bit change in X, 1 bit R and 1 bit L 5 bits ~checksum
The reason I think that there is something special about YYYYSYY. is that that is the bit the linux driver using to deterimine the y direction and XXXXSXX to determine the Y direction.
Jerod Wilson, the Linux Driver author seems to have found some information that I can't find.
I played around a lot with the up
It appears to be a MSB comp number
1111 011 was as slow as it goes.
1111 010 was a little faster (this is what we captured) was still very slow
1111 001 is where I ended up,
1111 000 was easy to use and nicely fast but sometimes I couldn't select the line on a menu that I wanted.
1101 011 jumped 3 lines when used on a menu, so it was really too huge a change on the y axis to be useful
1011 000 jumped 5 or 6 lines. on the menu.
The version with My simple Mouse, Robs Keyboard with JP1 support can be found http://www.hifi-remote.com/forums/dload ... e_id=14676
About the bits.
Mice used to be a mechanical. If you had an early mouse, it had 2 buttons and a rubber ball that moved two silver bars inside the housing. The mouse would transmit the number of rotations of the silver bars to indicate movement. One bar would represent the change in Y, one the change in X.
in our data we have
8 bitDevice, 5 bit checksum, 7 bit change in y, 7 bit change in X, 1 bit R and 1 bit L 5 bits ~checksum
The reason I think that there is something special about YYYYSYY. is that that is the bit the linux driver using to deterimine the y direction and XXXXSXX to determine the Y direction.
Jerod Wilson, the Linux Driver author seems to have found some information that I can't find.
I have googled that every which way I can and it abd can't find that document.Jerod Wilson's Comment wrote:ir-mce_kbd-decoder.c - A decoder for the RC6-ish keyboard/mouse IR protocol
* used by the Microsoft Remote Keyboard for Windows Media Center Edition,
* referred to by Microsoft's Windows Media Center remote specification docs
* as "an internal protocol called MCIR-2".
I played around a lot with the up
It appears to be a MSB comp number
1111 011 was as slow as it goes.
1111 010 was a little faster (this is what we captured) was still very slow
1111 001 is where I ended up,
1111 000 was easy to use and nicely fast but sometimes I couldn't select the line on a menu that I wanted.
1101 011 jumped 3 lines when used on a menu, so it was really too huge a change on the y axis to be useful
1011 000 jumped 5 or 6 lines. on the menu.
The version with My simple Mouse, Robs Keyboard with JP1 support can be found http://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.
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: 21887
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
Rather than me interpreting what you said and maybe making a mistake, could you edit my combo upgrade so that the timings and mouse codes are the best.
In the PB file, the default leadout time (ie, the 8E94h on row 27) is for the keyboard, and the #1518h (on line 48) is the mouse leadout time, so feel free to alter either of those.
Now for the individual mouse button codes, even though they are really in a 7-7-2 format, for KM I had to split them up as 8-8. As I mentioned before, the MSB (bit7) of the OBC (ie, the leftmost bit) decides whether to send the keyboard (0) or mouse (1) signal. So, if it's "1" we enter the mouse logic. Next, I check bit4 of the OBC (which is the rightmost of the first "1111/0000" string) and if it's zero, I will zero out the MSB. That still works for all the mouse data that you just posted, but you only posted UP times, did you also work out DOWN times? Does it still work for those?
EDIT: I see you edited your post while I was typing and have posted a file, so I will take a look at that.
In the PB file, the default leadout time (ie, the 8E94h on row 27) is for the keyboard, and the #1518h (on line 48) is the mouse leadout time, so feel free to alter either of those.
Now for the individual mouse button codes, even though they are really in a 7-7-2 format, for KM I had to split them up as 8-8. As I mentioned before, the MSB (bit7) of the OBC (ie, the leftmost bit) decides whether to send the keyboard (0) or mouse (1) signal. So, if it's "1" we enter the mouse logic. Next, I check bit4 of the OBC (which is the rightmost of the first "1111/0000" string) and if it's zero, I will zero out the MSB. That still works for all the mouse data that you just posted, but you only posted UP times, did you also work out DOWN times? Does it still work for those?
EDIT: I see you edited your post while I was typing and have posted a file, so I will take a look at that.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
-
The Robman
- Site Owner
- Posts: 21887
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
So, I checked your file and it doesn't appear that you changed my combo stuff, so I have updated the combo protocol to use your new mouse leadout time and the KM file to use your new mouse codes:
http://www.hifi-remote.com/forums/dload ... e_id=14702
There's still one open question regarding the checksum formula. In each sample of data that we have, the 9th and 10th bits of the mouse code are the same, so they're always either "00" or "11", so my program to find the formula couldn't tell which bit should be used.
So to help figure this out, could you try some experiments where you change the one of the middle 2 bits in the "1111" string used by all the "left" functions.
So, try changing one of the red bits below (but not both), re-generate the checksum and see if it still works. If it does, I've picked the right bit, if it doesn't, I need to generate some more experimental data for you to try.
1111010 1111010 00 Left UP
0000000 1111001 00 Left
0000111 1111000 00 Left Down
0000000 1111011 01 drag left
1111010 1111010 01 Drag Left Up
0000111 1111000 01 Drag Left Down
http://www.hifi-remote.com/forums/dload ... e_id=14702
There's still one open question regarding the checksum formula. In each sample of data that we have, the 9th and 10th bits of the mouse code are the same, so they're always either "00" or "11", so my program to find the formula couldn't tell which bit should be used.
So to help figure this out, could you try some experiments where you change the one of the middle 2 bits in the "1111" string used by all the "left" functions.
So, try changing one of the red bits below (but not both), re-generate the checksum and see if it still works. If it does, I've picked the right bit, if it doesn't, I need to generate some more experimental data for you to try.
1111010 1111010 00 Left UP
0000000 1111001 00 Left
0000111 1111000 00 Left Down
0000000 1111011 01 drag left
1111010 1111010 01 Drag Left Up
0000111 1111000 01 Drag Left Down
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
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: 7104
- Joined: Sat Mar 20, 2004 12:19 pm
- Location: Florida
- Contact:
I'm sorry, I misled you. I had my time set as "As Total", you need to shorten the leadout time by the length of the signal
Left originally said:
Left 129 E4
So I tried
Left 128 64
Left 128 A4
and neither of them worked. I think those were the bits you asked for.
Code: Select all
LDW RR1C,#2e66h ;set Leadout off=23756 uS
I thought that as I changed each one of them should work, but neither did.The Robman wrote:
1111010 1111010 00 Left UP
0000000 1111001 00 Left
0000111 1111000 00 Left Down
0000000 1111011 01 drag left
1111010 1111010 01 Drag Left Up
0000111 1111000 01 Drag Left Down
Left originally said:
Left 129 E4
So I tried
Left 128 64
Left 128 A4
and neither of them worked. I think those were the bits you asked for.
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.
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: 21887
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
Ok, I fixed the combo to use OffAsTotal for the mouse, give it a try.
As for the checksum, going with "1101001" as the binary for the 2nd 7-bit word, I have generated all the possible checksum values and have added them to your 2-3 KM file here:
http://www.hifi-remote.com/forums/dload ... e_id=14719
Could you try them all to see if any of them work please.
As for the checksum, going with "1101001" as the binary for the 2nd 7-bit word, I have generated all the possible checksum values and have added them to your 2-3 KM file here:
http://www.hifi-remote.com/forums/dload ... e_id=14719
Could you try them all to see if any of them work please.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
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: 7104
- Joined: Sat Mar 20, 2004 12:19 pm
- Location: Florida
- Contact:
7 is the charm. Pressing number 7 zooms 3 inches to the left.
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.
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: 21887
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
And here's a second file that uses "1011001" as the binary...
http://www.hifi-remote.com/forums/dload ... e_id=14720
http://www.hifi-remote.com/forums/dload ... e_id=14720
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
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: 7104
- Joined: Sat Mar 20, 2004 12:19 pm
- Location: Florida
- Contact:
-
The Robman
- Site Owner
- Posts: 21887
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
Right, so in every example so far, bits 9 and 10 were either both set or both blank, so my program couldn't tell which one was needed for each bit of the checksum. Now that I have your 2 new results, I will be able to determine the one true formula for the checksum.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
-
The Robman
- Site Owner
- Posts: 21887
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
So, 3 out of the 5 bits changed as a result of those tests, the final formula for the checksum is (where the red bits are ones that changed):
1 , 1 2 3 4 5
2 , 6 7 8 9 10 11 12
3 , 1 2 6 7 8 9 13 14 15
4 , 3 4 6 7 10 11 13 14 16
5 , 1 3 5 6 8 10 12 13 15 16
I have updated the combo file to use these new patterns, and I have included the 2 left test codes in the KM file too, just to make sure they still work. So Vicky, please give it a whirl.
Oh, and btw, can you explain what some of the mouse commands actually do, like what is the difference between "left up", "right up" and "up"? Are the first 2 diagonal?
1 , 1 2 3 4 5
2 , 6 7 8 9 10 11 12
3 , 1 2 6 7 8 9 13 14 15
4 , 3 4 6 7 10 11 13 14 16
5 , 1 3 5 6 8 10 12 13 15 16
I have updated the combo file to use these new patterns, and I have included the 2 left test codes in the KM file too, just to make sure they still work. So Vicky, please give it a whirl.
Oh, and btw, can you explain what some of the mouse commands actually do, like what is the difference between "left up", "right up" and "up"? Are the first 2 diagonal?
Last edited by The Robman on Tue Oct 03, 2017 5:15 pm, edited 1 time in total.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
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: 7104
- Joined: Sat Mar 20, 2004 12:19 pm
- Location: Florida
- Contact:
OMG,The Robman wrote: Oh, and btw, can you explain what some of the mouse commands actually do, like what is the difference between "left up", "right up" and "up"? Are the first 2 diagonal?
The picture below shows an old fashioned mechanical mouse, albeit a newer 3 button version.

When you moved the mouse, the ball would roll because of the friction with the desktop mousepad. The ball would rotate the x-axis and y-axis wheels inside the mouse, depending on what direction you moved the mouse. The rotation of the X-axis a Y-axis wheels are what is being transmitted by our signals. So yea Right Up and Left Up are diagonal movements as are Left Down and Right Down. Up means you pushed the mouse away from you, down means you pulled the mouse toward you. That's why I asked you to arrange the mouse buttons in the way that I said was the only way that made sense.
Code: Select all
1 Left Up ------ 2 Up ----------- 3 Right Up
4 Left --------- 5 Click -------- 6 Right
7 Left Down ---- 8 Down --------- 9 Right DownRemember 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.
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: 21887
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
Yeah, so I was right, they're diagonal, cool.
Will you have a chance to test my combo code later? I think this could be the final version.
Will you have a chance to test my combo code later? I think this could be the final version.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
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: 7104
- Joined: Sat Mar 20, 2004 12:19 pm
- Location: Florida
- Contact:
I went back up and found the link to the combo file, but the KM and PB files inside the zip are from September 27th. So I can't find them.
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.
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: 21887
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
I just re-downloaded the file to confirm that they show the 10/2 date, and they do, so you must have done something wrong.
http://www.hifi-remote.com/forums/dload ... e_id=14702
http://www.hifi-remote.com/forums/dload ... e_id=14702
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!