Microsoft MCE Keyboard Remote
Moderator: Moderators
-
vickyg2003
- Site Admin
- Posts: 7109
- Joined: Sat Mar 20, 2004 12:19 pm
- Location: Florida
- Contact:
I have a working version of Rob's Keyboard protocol for the HCS08
I have not started working on the mouse version because I'm trying to get this thing to travel farther.
I have shortened the leadout time to 3000, and it runs smoother, but it will still travel, just so far and then quit. I have observed that the left down motion will travel much farther than the right up. Even though the arrow stops moving, the IR is continuing to fire.
I have not started working on the mouse version because I'm trying to get this thing to travel farther.
I have shortened the leadout time to 3000, and it runs smoother, but it will still travel, just so far and then quit. I have observed that the left down motion will travel much farther than the right up. Even though the arrow stops moving, the IR is continuing to fire.
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.
-
vickyg2003
- Site Admin
- Posts: 7109
- Joined: Sat Mar 20, 2004 12:19 pm
- Location: Florida
- Contact:
Rob i've been playing with the checksum on the mouse signals. The first thing I noticed was there was a correlation with the y sign 0x04 of the first 7 bytes of data. Your keyboard checksum works for that. The left and right mouse buttons have an impact on the third and 4th check bit. But i'm not getting anywhere with the other bits. All i have to show for my time is tired eyes. How did you ever do those keyboard checksums!!
I suspect that one of those bits is actually a bit that needs to be toggled toggled every second to keep the mouse moving. Right now the mouse will stop after 1 second even if the button is still pressed.
I suspect that one of those bits is actually a bit that needs to be toggled toggled every second to keep the mouse moving. Right now the mouse will stop after 1 second even if the button is still pressed.
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: 21941
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
Well, with the keyboard we had lots of learns, so I sorted them by OBC and looked for patterns. The tricky one was the one with the OBC+2 bit included. I could see that the patterns were four 1s in a row then 4 zeroes, but they were shifted down 2 rows from where the OBC did that, which was the clue.
What I really wish I could do was write a program that tries every possible combination of bits to find the answer.
If you can show me how my keyboard code works for the mouse, I can probably do the rest.
What I really wish I could do was write a program that tries every possible combination of bits to find the answer.
If you can show me how my keyboard code works for the mouse, I can probably do the rest.
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: 21941
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
Ok, I've started trying to crack the checksum for the mice, and I've got it close but it's not there yet. Posting to see if anyone can take it to the finish line...
https://www.hifi-remote.com/forums/dload ... e_id=14692
https://www.hifi-remote.com/forums/dload ... e_id=14692
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: 7109
- Joined: Sat Mar 20, 2004 12:19 pm
- Location: Florida
- Contact:
I've got houseguests through Tuesday so i'm not able to devote much time to this right now. I see that the linux driver for the Mce mouse processing looks at 21 bits they call the scancode. I'm not sure which 21 bits that they take.
They get the xdata and ydata
U8 xdata s
u8 xdata = (scancode >> 7) & 0x7f;
u8 ydata = (scancode >> 14) & 0x7f;
int x, y;
/* mouse buttons */
bool right = scancode & 0x40;
bool left = scancode & 0x20;
And i'm not sure if this is something the driver is sending to programs or if it has something to do with the mouse receiving. Like i said i can't reas C.
They get the xdata and ydata
U8 xdata s
u8 xdata = (scancode >> 7) & 0x7f;
u8 ydata = (scancode >> 14) & 0x7f;
int x, y;
/* mouse buttons */
bool right = scancode & 0x40;
bool left = scancode & 0x20;
Code: Select all
u8 xdata = (scancode >> 7) & 0x7f;
u8 ydata = (scancode >> 14) & 0x7f;
int x, y;
/* mouse buttons */
bool right = scancode & 0x40;
bool left = scancode & 0x20;
if (xdata & 0x40)
x = -((~xdata & 0x7f) + 1);
else
x = xdata;
if (ydata & 0x40)
y = -((~ydata & 0x7f) + 1);
else
y = ydata;
Code: Select all
/* Mouse bits */
set_bit(EV_REL, idev->evbit);
set_bit(REL_X, idev->relbit);
set_bit(REL_Y, idev->relbit);
set_bit(BTN_LEFT, idev->keybit);
set_bit(BTN_RIGHT, idev->keybit);
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.
I looked at the Linux code. Disappointingly, it neither generates nor checks any checksum -- just (by encoding) assumes that the user has already supplied it correctly in the "scandata" (payload data), and ignores it while receiving (at least I think so).
The first code segments lets x be formed from bit 6-13, interpreted as the 7-bit 2 complement. Analogously, y is formed from bits 14-20. left and right are bit 5 and 6 respectively.
Vicky's second except binds the driver into the system as an input device, so that the system will interpret relevant IR signals as input elements like KEY_*.
The first code segments lets x be formed from bit 6-13, interpreted as the 7-bit 2 complement. Analogously, y is formed from bits 14-20. left and right are bit 5 and 6 respectively.
Vicky's second except binds the driver into the system as an input device, so that the system will interpret relevant IR signals as input elements like KEY_*.
-
vickyg2003
- Site Admin
- Posts: 7109
- Joined: Sat Mar 20, 2004 12:19 pm
- Location: Florida
- Contact:
Thanks for looking at the code Barf, I've been googling this up and down and can't find much one way or another. I supose this isn't in a class method, but rather in the CircClass.sys driver......
Rob, I've found a little time to work on this and have the second column worked out. I also expanded the first column to be similar to the keyboard set.
Column 1 checksum
=IF($F104="","",MOD(MID($G104,1,1)+MID($G104,2,1)+MID($G104,3,1)+MID($G104,4,1)+MID($G104,5,1),2))
Column 2 checksum
=MOD(MID($F104,1,1)+MID($G104,5,1)+MID($G104,6,1)+MID($G104,7,1)+MID($G104,8,1)+MID($H104,1,1) +MID($H104,2,1)+MID($H104,3,1)+MID($H104,4,1),2)
Column 3 checksum
=MOD(MID($G104,6,1)+MID($G104,7,1)+MID($G104,8,1)+MID($H104,1,1)+MID($H104,2,1)+MID($H104,3,1) +MID($H104,5,1)+MID($H104,6,1)+MID($H104,7,1),2)
Checksum Column 4
=MOD(MID($G104,6,1)+MID($G104,7,1)+MID($H104,5,1)+MID($H104,6,1)+MID($H104,8,1),2)
Rob, I've found a little time to work on this and have the second column worked out. I also expanded the first column to be similar to the keyboard set.
Column 1 checksum
=IF($F104="","",MOD(MID($G104,1,1)+MID($G104,2,1)+MID($G104,3,1)+MID($G104,4,1)+MID($G104,5,1),2))
Column 2 checksum
=MOD(MID($F104,1,1)+MID($G104,5,1)+MID($G104,6,1)+MID($G104,7,1)+MID($G104,8,1)+MID($H104,1,1) +MID($H104,2,1)+MID($H104,3,1)+MID($H104,4,1),2)
Column 3 checksum
=MOD(MID($G104,6,1)+MID($G104,7,1)+MID($G104,8,1)+MID($H104,1,1)+MID($H104,2,1)+MID($H104,3,1) +MID($H104,5,1)+MID($H104,6,1)+MID($H104,7,1),2)
Checksum Column 4
=MOD(MID($G104,6,1)+MID($G104,7,1)+MID($H104,5,1)+MID($H104,6,1)+MID($H104,8,1),2)
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.
Ignoring the checksums for the moment, I wrote two IRP protocols from the information above:
These have been incorporated in the latest snapshot of IrpTransmogrifier. So, it can now be used to decode these signals. This can be called from the command line. Alternatively, the following bat file decodes the files of Vicky's zip bundle, published a few weeks ago:
The following output is then produced:
Code: Select all
MCIR-2-kbd:
{300,msb}<-1,1|1,-1>(9,32:8,C:5,0:8,F:8,M:4,WinKey:1,Alt:1,Shift:1,Ctrl:1,-74m)*
[C:0..31,F:0..255,M:0..16,WinKey:0..1,Alt:0..1,Shift:0..1,Ctrl:0..1]
MCR-2-mouse:
{300,msb}<-1,1|1,-1>(9,8:8,C:5,y:7,x:7,R:1,L:1,F:5,-10.7m)*
[C:0..31,L:0..1,R:0..1,x:0..127,y:0..127,F:0..31]
Code: Select all
@echo off
REM Adjust the path name to irptransmogrifier in the line below
set DECODE=call "E:\irptransmogrifier\irptransmogrifier" --absolute 150 decode --repeat --namedinput
%DECODE% "1tozero.ict"
%DECODE% "A to Z .ict"
%DECODE% "Alt_CTRL.ict"
%DECODE% "C_Lessthan.ict"
%DECODE% "F1toF7.ict"
%DECODE% "MouseCommands.ict"
%DECODE% "Percentage_Plus.ict"
%DECODE% "f8-f12.ict"
pause
Code: Select all
one MCIR-2-kbd: {Shift=0,C=2,WinKey=0,F=30,Alt=0,Ctrl=0,M=0}
two MCIR-2-kbd: {Shift=0,C=15,WinKey=0,F=31,Alt=0,Ctrl=0,M=0}
three MCIR-2-kbd: {Shift=0,C=19,WinKey=0,F=32,Alt=0,Ctrl=0,M=0}
four MCIR-2-kbd: {Shift=0,C=30,WinKey=0,F=33,Alt=0,Ctrl=0,M=0}
five MCIR-2-kbd: {Shift=0,C=29,WinKey=0,F=34,Alt=0,Ctrl=0,M=0}
six MCIR-2-kbd: {Shift=0,C=16,WinKey=0,F=35,Alt=0,Ctrl=0,M=0}
seven MCIR-2-kbd: {Shift=0,C=28,WinKey=0,F=36,Alt=0,Ctrl=0,M=0}
eight MCIR-2-kbd: {Shift=0,C=17,WinKey=0,F=37,Alt=0,Ctrl=0,M=0}
nine MCIR-2-kbd: {Shift=0,C=18,WinKey=0,F=38,Alt=0,Ctrl=0,M=0}
zero MCIR-2-kbd: {Shift=0,C=31,WinKey=0,F=39,Alt=0,Ctrl=0,M=0}
A Down
A up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
B Down MCIR-2-kbd: {Shift=0,C=2,WinKey=0,F=5,Alt=0,Ctrl=0,M=0}
B Up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
C Down
C Up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
D Down MCIR-2-kbd: {Shift=0,C=12,WinKey=0,F=7,Alt=0,Ctrl=0,M=0}
D Up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
E down MCIR-2-kbd: {Shift=0,C=17,WinKey=0,F=8,Alt=0,Ctrl=0,M=0}
E Up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
F down MCIR-2-kbd: {Shift=0,C=28,WinKey=0,F=9,Alt=0,Ctrl=0,M=0}
F Up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
G Down MCIR-2-kbd: {Shift=0,C=31,WinKey=0,F=10,Alt=0,Ctrl=0,M=0}
G up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
H Down MCIR-2-kbd: {Shift=0,C=18,WinKey=0,F=11,Alt=0,Ctrl=0,M=0}
H Up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
K Down MCIR-2-kbd: {Shift=0,C=30,WinKey=0,F=12,Alt=0,Ctrl=0,M=0}
K up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
L Down MCIR-2-kbd: {Shift=0,C=29,WinKey=0,F=15,Alt=0,Ctrl=0,M=0}
L Up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
M Down MCIR-2-kbd: {Shift=0,C=18,WinKey=0,F=16,Alt=0,Ctrl=0,M=0}
M up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
N Down MCIR-2-kbd: {Shift=0,C=31,WinKey=0,F=17,Alt=0,Ctrl=0,M=0}
N Up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
O down MCIR-2-kbd: {Shift=0,C=28,WinKey=0,F=18,Alt=0,Ctrl=0,M=0}
O up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
P Down MCIR-2-kbd: {Shift=0,C=17,WinKey=0,F=19,Alt=0,Ctrl=0,M=0}
P up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
Q Down MCIR-2-kbd: {Shift=0,C=29,WinKey=0,F=20,Alt=0,Ctrl=0,M=0}
Q up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
R down MCIR-2-kbd: {Shift=0,C=16,WinKey=0,F=21,Alt=0,Ctrl=0,M=0}
R up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
S Down MCIR-2-kbd: {Shift=0,C=19,WinKey=0,F=22,Alt=0,Ctrl=0,M=0}
S up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
T Down MCIR-2-kbd: {Shift=0,C=30,WinKey=0,F=23,Alt=0,Ctrl=0,M=0}
T up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
U Down MCIR-2-kbd: {Shift=0,C=3,WinKey=0,F=24,Alt=0,Ctrl=0,M=0}
U up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
V Down MCIR-2-kbd: {Shift=0,C=14,WinKey=0,F=25,Alt=0,Ctrl=0,M=0}
V Up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
W Down MCIR-2-kbd: {Shift=0,C=14,WinKey=0,F=25,Alt=0,Ctrl=0,M=0}
W Up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
X Down MCIR-2-kbd: {Shift=0,C=13,WinKey=0,F=26,Alt=0,Ctrl=0,M=0}
X Up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
Y Down MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=27,Alt=0,Ctrl=0,M=0}
Y Up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
Z Down MCIR-2-kbd: {Shift=0,C=12,WinKey=0,F=28,Alt=0,Ctrl=0,M=0}
Zup MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
Z down2 MCIR-2-kbd: {Shift=0,C=1,WinKey=0,F=29,Alt=0,Ctrl=0,M=0}
Z up MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
F8 Down MCIR-2-kbd: {Shift=0,C=25,WinKey=0,F=65,Alt=0,Ctrl=0,M=0}
f9 Down MCIR-2-kbd: {Shift=0,C=26,WinKey=0,F=66,Alt=0,Ctrl=0,M=0}
f10 down MCIR-2-kbd: {Shift=0,C=23,WinKey=0,F=67,Alt=0,Ctrl=0,M=0}
f11 Down MCIR-2-kbd: {Shift=0,C=27,WinKey=0,F=68,Alt=0,Ctrl=0,M=0}
f12 Down MCIR-2-kbd: {Shift=0,C=22,WinKey=0,F=69,Alt=0,Ctrl=0,M=0}
Alt MCIR-2-kbd: {Shift=0,C=6,WinKey=0,F=0,Alt=1,Ctrl=0,M=0}
Ampersand MCIR-2-kbd: {Shift=1,C=25,WinKey=0,F=36,Alt=0,Ctrl=0,M=0}
AT MCIR-2-kbd: {Shift=1,C=10,WinKey=0,F=31,Alt=0,Ctrl=0,M=0}
Backquote MCIR-2-kbd: {Shift=0,C=3,WinKey=0,F=53,Alt=0,Ctrl=0,M=0}
Backslash MCIR-2-kbd: {Shift=0,C=12,WinKey=0,F=49,Alt=0,Ctrl=0,M=0}
Back Space MCIR-2-kbd: {Shift=0,C=12,WinKey=0,F=42,Alt=0,Ctrl=0,M=0}
CapsLock MCIR-2-kbd: {Shift=0,C=29,WinKey=0,F=57,Alt=0,Ctrl=0,M=0}
Caret MCIR-2-kbd: {Shift=1,C=21,WinKey=0,F=35,Alt=0,Ctrl=0,M=0}
Colon MCIR-2-kbd: {Shift=0,C=8,WinKey=0,F=51,Alt=0,Ctrl=0,M=2}
Colon 2 MCIR-2-kbd: {Shift=0,C=8,WinKey=0,F=51,Alt=0,Ctrl=0,M=2}
Comma MCIR-2-kbd: {Shift=0,C=10,WinKey=0,F=54,Alt=0,Ctrl=0,M=2}
CTRl MCIR-2-kbd: {Shift=0,C=3,WinKey=0,F=0,Alt=0,Ctrl=1,M=0}
CTRL2 MCIR-2-kbd: {Shift=0,C=3,WinKey=0,F=0,Alt=0,Ctrl=1,M=0}
Delete MCIR-2-kbd: {Shift=0,C=10,WinKey=0,F=76,Alt=0,Ctrl=0,M=0}
DollarSign MCIR-2-kbd: {Shift=1,C=27,WinKey=0,F=33,Alt=0,Ctrl=0,M=0}
DoubleQuote MCIR-2-kbd: {Shift=0,C=4,WinKey=0,F=52,Alt=0,Ctrl=0,M=2}
End MCIR-2-kbd: {Shift=0,C=7,WinKey=0,F=77,Alt=0,Ctrl=0,M=0}
Enter MCIR-2-kbd: {Shift=0,C=2,WinKey=0,F=40,Alt=0,Ctrl=0,M=0}
Esc MCIR-2-kbd: {Shift=0,C=15,WinKey=0,F=41,Alt=0,Ctrl=0,M=0}
Forwared Slash MCIR-2-kbd: {Shift=0,C=16,WinKey=0,F=56,Alt=0,Ctrl=0,M=0}
GreaterThan MCIR-2-kbd: {Shift=1,C=8,WinKey=0,F=55,Alt=0,Ctrl=0,M=0}
Home MCIR-2-kbd: {Shift=0,C=11,WinKey=0,F=74,Alt=0,Ctrl=0,M=0}
Insert MCIR-2-kbd: {Shift=0,C=8,WinKey=0,F=73,Alt=0,Ctrl=0,M=0}
LeftBrace MCIR-2-kbd: {Shift=0,C=4,WinKey=0,F=47,Alt=0,Ctrl=0,M=2}
Left Bracket MCIR-2-kbd: {Shift=0,C=1,WinKey=0,F=48,Alt=0,Ctrl=0,M=0}
LeftBracket 2 MCIR-2-kbd: {Shift=0,C=1,WinKey=0,F=48,Alt=0,Ctrl=0,M=0}
Left Click MCIR-2-mouse: {x=0,y=0,R=0,C=3,L=1,F=28}
LeftClick2 MCIR-2-kbd: {Shift=1,C=23,WinKey=0,F=38,Alt=0,Ctrl=0,M=0}
LessThan MCIR-2-kbd: {Shift=1,C=5,WinKey=0,F=54,Alt=0,Ctrl=0,M=0}
F1 Down MCIR-2-kbd: {Shift=0,C=30,WinKey=0,F=58,Alt=0,Ctrl=0,M=0}
F2 Down MCIR-2-kbd: {Shift=0,C=19,WinKey=0,F=59,Alt=0,Ctrl=0,M=0}
F3 Down MCIR-2-kbd: {Shift=0,C=31,WinKey=0,F=60,Alt=0,Ctrl=0,M=0}
F4 down MCIR-2-kbd: {Shift=0,C=18,WinKey=0,F=61,Alt=0,Ctrl=0,M=0}
f5 down MCIR-2-kbd: {Shift=0,C=17,WinKey=0,F=62,Alt=0,Ctrl=0,M=0}
f6 Down MCIR-2-kbd: {Shift=0,C=28,WinKey=0,F=63,Alt=0,Ctrl=0,M=0}
f7 Down MCIR-2-kbd: {Shift=0,C=20,WinKey=0,F=64,Alt=0,Ctrl=0,M=0}
Mouse Down
Mouse Up MCIR-2-mouse: {x=0,y=122,R=0,C=15,L=0,F=16}
Mouse Left MCIR-2-mouse: {x=123,y=0,R=0,C=1,L=0,F=30}
Mouse L Down MCIR-2-mouse: {x=120,y=7,R=0,C=16,L=0,F=15}
Mouse L Up MCIR-2-mouse: {x=122,y=122,R=0,C=8,L=0,F=23}
Mouse R Down MCIR-2-mouse: {x=5,y=5,R=0,C=16,L=0,F=15}
Mouse R Up MCIR-2-mouse: {x=5,y=123,R=0,C=14,L=0,F=17}
Mouse Right MCIR-2-mouse: {x=5,y=0,R=0,C=15,L=0,F=16}
Perscentage MCIR-2-kbd: {Shift=1,C=24,WinKey=0,F=34,Alt=0,Ctrl=0,M=0}
QuestionMark MCIR-2-kbd: {Shift=0,C=26,WinKey=0,F=56,Alt=0,Ctrl=0,M=2}
Right Brace MCIR-2-kbd: {Shift=0,C=11,WinKey=0,F=48,Alt=0,Ctrl=0,M=2}
Right Bracket MCIR-2-kbd: {Shift=0,C=14,WinKey=0,F=47,Alt=0,Ctrl=0,M=0}
RightClick MCIR-2-mouse: {x=0,y=0,R=1,C=5,L=0,F=26}
RightClick2 MCIR-2-kbd: {Shift=1,C=26,WinKey=0,F=39,Alt=0,Ctrl=0,M=0}
SemiColon MCIR-2-kbd: {Shift=1,C=5,WinKey=0,F=0,Alt=0,Ctrl=0,M=0}
Shift MCIR-2-kbd: {Shift=0,C=14,WinKey=0,F=52,Alt=0,Ctrl=0,M=0}
SingleQuote MCIR-2-kbd: {Shift=0,C=14,WinKey=0,F=52,Alt=0,Ctrl=0,M=0}
Space MCIR-2-kbd: {Shift=0,C=13,WinKey=0,F=44,Alt=0,Ctrl=0,M=0}
Start MCIR-2-kbd: {Shift=0,C=7,WinKey=1,F=0,Alt=0,Ctrl=0,M=0}
Tab MCIR-2-kbd: {Shift=0,C=1,WinKey=0,F=43,Alt=0,Ctrl=0,M=0}
Tilde MCIR-2-kbd: {Shift=1,C=6,WinKey=0,F=53,Alt=0,Ctrl=0,M=0}
UnderScore MCIR-2-kbd: {Shift=1,C=5,WinKey=0,F=45,Alt=0,Ctrl=0,M=0}
Vertical bar MCIR-2-kbd: {Shift=0,C=6,WinKey=0,F=49,Alt=0,Ctrl=0,M=2}
Period MCIR-2-kbd: {Shift=0,C=13,WinKey=0,F=55,Alt=0,Ctrl=0,M=0}
Add Dash MCIR-2-kbd: {Shift=0,C=0,WinKey=0,F=45,Alt=0,Ctrl=0,M=0}
Hash MCIR-2-kbd: {Shift=1,C=22,WinKey=0,F=32,Alt=0,Ctrl=0,M=0}
Star MCIR-2-kbd: {Shift=1,C=20,WinKey=0,F=37,Alt=0,Ctrl=0,M=0}
Plus MCIR-2-kbd: {Shift=1,C=6,WinKey=0,F=46,Alt=0,Ctrl=0,M=0}
F8 Down MCIR-2-kbd: {Shift=0,C=25,WinKey=0,F=65,Alt=0,Ctrl=0,M=0}
f9 Down MCIR-2-kbd: {Shift=0,C=26,WinKey=0,F=66,Alt=0,Ctrl=0,M=0}
f10 down MCIR-2-kbd: {Shift=0,C=23,WinKey=0,F=67,Alt=0,Ctrl=0,M=0}
f11 Down MCIR-2-kbd: {Shift=0,C=27,WinKey=0,F=68,Alt=0,Ctrl=0,M=0}
f12 Down MCIR-2-kbd: {Shift=0,C=22,WinKey=0,F=69,Alt=0,Ctrl=0,M=0}
-
The Robman
- Site Owner
- Posts: 21941
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
You can't include a bit from the checksum in the checksum calculation. If you remove that bit and the next bit, it's still correct:vickyg2003 wrote:Column 2 checksum
=MOD(MID($F104,1,1)+MID($G104,5,1)+MID($G104,6,1)+MID($G104,7,1)+MID($G104,8,1)+MID($H104,1,1) +MID($H104,2,1)+MID($H104,3,1)+MID($H104,4,1),2)
=MOD(MID($G104,6,1)+MID($G104,7,1)+MID($G104,8,1)+MID($H104,1,1)+MID($H104,2,1)+MID($H104,3,1)+MID($H104,4,1),2)
Last edited by The Robman on Wed Feb 19, 2020 3:40 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: 7109
- Joined: Sat Mar 20, 2004 12:19 pm
- Location: Florida
- Contact:
Okay, so far so good.
I did a couple of tests with the final bit. I was hoping that was going to be some sort of toggle that didn't matter. So I flipped it just to see if it would still recognize. It didn't.
I also flipped the left and right mouse button, while moving up. Both required the final bit to be flipped in order to be recognized.
Again the mouse only moved so far and then it stopped, pressing the key again, caused different unexpected actions. If you highlight an icon the next drag moved and dropped the icon, if text was highlighted it didn't do anything Since you couldn't get more than a 1 second drag, this isn't very useful....
We really need some more data to figure out how to keep this thing rolling.....
I did a couple of tests with the final bit. I was hoping that was going to be some sort of toggle that didn't matter. So I flipped it just to see if it would still recognize. It didn't.
I also flipped the left and right mouse button, while moving up. Both required the final bit to be flipped in order to be recognized.
Again the mouse only moved so far and then it stopped, pressing the key again, caused different unexpected actions. If you highlight an icon the next drag moved and dropped the icon, if text was highlighted it didn't do anything Since you couldn't get more than a 1 second drag, this isn't very useful....
We really need some more data to figure out how to keep this thing rolling.....
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: 21941
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
Is there such a thing as an original MCE remote? I think that's what we really need to (a) ensure that the mouse buttons work properly on it and (b) to capture them to see exactly what they send, especially when held down and when repeatedly pressed.
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: 7109
- Joined: Sat Mar 20, 2004 12:19 pm
- Location: Florida
- Contact:
I "think" this might be an original MCE remote
infrared media center keyboard
That was the cheapest one I could find.
I don't think pressing the the right button 17 times to get from one side of the screen to the other is a showstopper, but it certainly isn't ideal. I have tried flipping the last bit in the checksum and I've tried flipping all the checksum bits looking for some sort of toggle. I don't see anything else that would be an obvious way to keep the ball rolling.
What really boggles my mind is that I can't find tech specs on this out on the web.
infrared media center keyboard
That was the cheapest one I could find.
I don't think pressing the the right button 17 times to get from one side of the screen to the other is a showstopper, but it certainly isn't ideal. I have tried flipping the last bit in the checksum and I've tried flipping all the checksum bits looking for some sort of toggle. I don't see anything else that would be an obvious way to keep the ball rolling.
What really boggles my mind is that I can't find tech specs on this out on the web.
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: 21941
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
If there was a toggle bit in there, it would probably be one of the data bits and would cause the 2 checksums to change also.
I have incorporated your updated checksum code into my spreadsheet and have the last column almost right, it's correct for every button except one.
I have incorporated your updated checksum code into my spreadsheet and have the last column almost right, it's correct for every button except one.
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: 21941
- Joined: Fri Aug 01, 2003 9:37 am
- Location: Chicago, IL
- Contact:
I just wrote a program to crack the checksum, in old fashioned mainframe COBOL no less, and have updated the spreadsheet.
I am now using the same formula for all buttons, main keyboard and mouse.
https://www.hifi-remote.com/forums/dload ... e_id=14692
I am now using the same formula for all buttons, main keyboard and mouse.
https://www.hifi-remote.com/forums/dload ... e_id=14692
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: 7109
- Joined: Sat Mar 20, 2004 12:19 pm
- Location: Florida
- Contact:
I'm interested in the logic (plain english) as to what you did in your program to crack this. I don't expect to ever be able to do this on my own. I never would have thought to reuse bits....
Anyway I tried these values for UP with the calculated checksum
1111000 0000000 00
1111010 0000000 00
1111011 0000000 00
1111001 0000000 00
They have been arranged in order of how far they will travel in that 1 second interval
If this were you, what would you do next?
Anyway I tried these values for UP with the calculated checksum
1111000 0000000 00
1111010 0000000 00
1111011 0000000 00
1111001 0000000 00
They have been arranged in order of how far they will travel in that 1 second interval
If this were you, what would you do next?
Last edited by vickyg2003 on Wed Sep 27, 2017 8:30 am, 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.
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.