|
JP1 Remotes
|
View previous topic :: View next topic |
Author |
Message |
vickyg2003 Site Admin
Joined: 20 Mar 2004 Posts: 7073 Location: Florida |
Posted: Thu Sep 21, 2017 12:47 pm Post subject: |
|
|
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. _________________ 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.
|
|
Back to top |
|
|
vickyg2003 Site Admin
Joined: 20 Mar 2004 Posts: 7073 Location: Florida |
Posted: Fri Sep 22, 2017 7:38 pm Post subject: |
|
|
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. _________________ 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.
|
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21238 Location: Chicago, IL |
Posted: Sat Sep 23, 2017 12:27 am Post subject: |
|
|
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. _________________ Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help! |
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21238 Location: Chicago, IL |
|
Back to top |
|
|
vickyg2003 Site Admin
Joined: 20 Mar 2004 Posts: 7073 Location: Florida |
Posted: Sat Sep 23, 2017 10:33 am Post subject: |
|
|
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;
Code: |
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;
|
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.
Code: |
/* 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.
|
|
Back to top |
|
|
Barf Expert
Joined: 24 Oct 2008 Posts: 1415 Location: Munich, Germany |
Posted: Sun Sep 24, 2017 6:57 am Post subject: |
|
|
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_*. |
|
Back to top |
|
|
vickyg2003 Site Admin
Joined: 20 Mar 2004 Posts: 7073 Location: Florida |
Posted: Sun Sep 24, 2017 10:28 pm Post subject: |
|
|
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) _________________ 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.
|
|
Back to top |
|
|
Barf Expert
Joined: 24 Oct 2008 Posts: 1415 Location: Munich, Germany |
Posted: Mon Sep 25, 2017 5:05 am Post subject: |
|
|
Ignoring the checksums for the moment, I wrote two IRP protocols from the information above:
Code: |
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]
|
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:
Code: |
@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
|
The following output is then produced:
Code: |
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}
|
|
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21238 Location: Chicago, IL |
Posted: Mon Sep 25, 2017 8:18 am Post subject: |
|
|
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) |
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:
=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) _________________ Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
Last edited by The Robman on Wed Feb 19, 2020 4:40 pm; edited 1 time in total |
|
Back to top |
|
|
vickyg2003 Site Admin
Joined: 20 Mar 2004 Posts: 7073 Location: Florida |
Posted: Mon Sep 25, 2017 11:50 am Post subject: |
|
|
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..... _________________ 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.
|
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21238 Location: Chicago, IL |
Posted: Mon Sep 25, 2017 1:11 pm Post subject: |
|
|
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! |
|
Back to top |
|
|
vickyg2003 Site Admin
Joined: 20 Mar 2004 Posts: 7073 Location: Florida |
Posted: Mon Sep 25, 2017 5:58 pm Post subject: |
|
|
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. _________________ 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.
|
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21238 Location: Chicago, IL |
Posted: Mon Sep 25, 2017 7:49 pm Post subject: |
|
|
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. _________________ Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help! |
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21238 Location: Chicago, IL |
Posted: Tue Sep 26, 2017 5:08 pm Post subject: |
|
|
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.
http://www.hifi-remote.com/forums/dload.php?action=file&file_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! |
|
Back to top |
|
|
vickyg2003 Site Admin
Joined: 20 Mar 2004 Posts: 7073 Location: Florida |
Posted: Wed Sep 27, 2017 8:07 am Post subject: |
|
|
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? _________________ 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.
Last edited by vickyg2003 on Wed Sep 27, 2017 9:30 am; edited 1 time in total |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|