Page 1 of 2
Keyspan DMR codes: DecodeIR doesn't know
Posted: Mon Jul 25, 2005 11:55 pm
by alex750
I got a KeySpan Digital Media remote, hooked to my Mac.
Went to JP1 file section, searched, found a single entry (under "Misc", labeled "iTunes"). Downloaded it, opened KM, loaded it.
Yow! Special protocol! Click "Functions" tab...hmmm, no menu keys. Grab old 6800, paste new protocol and upgrade into IR, and upload.
Learn menu keys, try them out to verify they work, and open IR and download. Look at "Learned Signals". Uh-oh...they all say JVC2, device 1, subdevice 0, EFC 181, OBC 0. All six of them.
Go on vacation for several days.
Return, go to RemoteCentral, get a Pronto file for KeySpan. Run it through ccf2efc and view result...JVC2, device 1, subdevice 0, EFC 181, OBC 0. All 17 of them. What seems to be different is 10 bytes, starting with byte 27. This is what I got from the Pronto file:
Code: Select all
"Down Arrow" "Learned" (JVC2):1:0 EFC=181 freq=38.0KHz
0000 006D 0000 0011 005B 005B 0028 001A 0028 001A 0028 0019 001B 0033 001B 0033 001B 0033 0028 001A 0028 001A 0028 0019 001B 0033 001B 0033 0028 0019 001B 0033 001B 0033 0028 001A 0041 07A9
"Up Arrow" "Learned" (JVC2):1:0 EFC=181 freq=38.0KHz
0000 006D 0000 0011 005B 005B 0028 001A 0028 001A 0028 0019 001B 0033 001B 0033 001B 0033 0028 001A 0028 001A 0028 0019 001B 0033 0028 001A 0028 0019 001B 0033 001B 0033 0028 001A 0041 07A9
"Left Arrow" "Learned" (JVC2):1:0 EFC=181 freq=38.0KHz
0000 006D 0000 0011 005B 005B 0028 001A 0028 001A 0028 0019 001B 0033 001B 0033 001B 0033 0028 001A 0028 001A 0028 0019 001B 0033 0028 0019 001B 0033 001B 0033 0028 0019 001B 0033 0041 07A9
"Right Arrow" "Learned" (JVC2):1:0 EFC=181 freq=38.0KHz
0000 006D 0000 0011 005B 005B 0028 001A 0028 001A 0028 0019 001B 0033 001B 0033 001B 0033 0028 001A 0028 001A 0028 0019 001B 0033 001B 0033 0028 001A 0028 001A 0028 001A 0028 001A 0041 07A9
"Menu" "Learned" (JVC2):1:0 EFC=181 freq=38.0KHz
0000 006D 0000 0011 005B 005B 0028 001A 0028 001A 0028 0019 001B 0033 001B 0033 001B 0033 0028 001A 0028 001A 0028 0019 001B 0033 001B 0033 001B 0033 001B 0033 001B 0033 001B 0033 0041 07A9
"Select" "Learned" (JVC2):1:0 EFC=181 freq=38.0KHz
0000 006D 0000 0011 005B 005B 0028 001A 0028 001A 0028 0019 001B 0033 001B 0033 001B 0033 0028 001A 0028 001A 0028 0019 001B 0033 0028 0019 001B 0033 001B 0033 001B 0033 001B 0033 0041 07A9
Note they all begin with the same 26 bytes, and end with 0041 07A9. Oddly, I can't find anything matching this in IR's "Raw Data"...if you need it, I'll also post the IR file with the learned codes.
Posted: Tue Jul 26, 2005 12:13 am
by Capn Trips
The first thing I would do is post links to the upgrade and RC files to which you refer. Also upload your IR file with learned signals (and link to it).
My experience is that the experts here are more efficient if they have easy access to the files to which one refers in posts and access to your raw (learned) data rather than your (or IRs, or CCF2EFCs) interpretation of it.
file links
Posted: Tue Jul 26, 2005 10:33 am
by alex750
The RemoteCentral file I used for ccf2efc is
here.
The KM upgrade file I'm using is
here.
I've posted the IR file--it's
here.
Posted: Tue Jul 26, 2005 12:15 pm
by johnsfine
I grabbed that CCF file and looked.
Then I scanned all the undecoded signals in my library of downloads, and found that I already had one other CCF with the same KeySpan device (and that no other brand nor model has a similar protocol).
The structure of those signals is very simple, so creating a new protocol executor with PB should be easy.
But at the moment I don't have time to do it for you.
Posted: Tue Jul 26, 2005 12:38 pm
by The Robman
Jon had already created a protocol for this using PB, but I don't understand how he made it work (if indeed he did) as he seems to be dropping the rightmost bit of the cmd.
The only tricky thing about this signal is that the leadout is a burst pair where the ON time doesn't match any of the other ON times.
Here's the techie details...
freq: 38 kHz
leadin: +2400 -2400
0 pair: +1050 -680
1 pair: +710 -1350
leadout: +1710 -51860
signals:
LI 0001110 00100110 LO - up
LI 0001110 00110111 LO - down
LI 0001110 00101100 LO - left
LI 0001110 00110001 LO - right
LI 0001110 00101110 LO - select
LI 0001110 00111111 LO - menu
Posted: Sun Aug 21, 2005 8:59 pm
by Daniel_Eble
Yoy! Don't copy the codes of the cheesy DMR remote. Instead, configure the DMR receiver to detect a robust set of codes from your JP1 remote. I have obtained excellent results using continuous-transmission NEC codes. There is a JavaScript editor for the config files used by the DMR software on my web site,
http://www.faithful.be/remote-control/
Follow the "REM Editor" link. There are some sample config files provided.
Posted: Mon Sep 05, 2005 9:29 am
by The Robman
Alex,
Do you still need an upgrade for this, or did you do the edit that Daniel suggested?
Posted: Mon Sep 05, 2005 10:13 pm
by alex750
I still need the upgrade, but I'll try the edit first.
Right now I'm using the aforementioned "iTunes upgrade" as-is with my extended 8910. The transport keys work more-or-less OK, but the volume and mute keys sometimes give unexpected results (e.g., with EyeTV 1.8.1, "mute" on the 8910 apparently means "quit", whereas with iTunes 4.9 it means "go to the Music Store"--a control I haven't even defined with the KeySpan software!) And, of course, the menu keys don't work at all.
Of course, first I'll need to learn how to use the editor...thanks in advance!
Posted: Tue Sep 06, 2005 9:27 pm
by The Robman
I'll have to give some thought to see whether there's an easy way to write a new exec for this. That leadout pair is making me think that I'm going to have to format the signal manually.
guess what I found...
Posted: Tue Sep 06, 2005 10:53 pm
by alex750
While trying to figure out exactly what I was supposed to do with the Keyspan editor (it works with .REM files, which in Mac OS X are typically stored in /Users/<username>/Library/Preferences/Keyspan DMR Preferences) I found...
JVC_VCR.REM
That's right, a description for a JVC VCR remote of some sort. Which setup code would this be? Would it correspond to something using JVC2 protocol, device 1, subdevice 0 perhaps?? Let's find out!
Except I don't know which setup codes this would correspond to...no, wait a minute, it doesn't matter, I can use KM to make my own setup code as long as I know the protocol and devices!...
Except...the .REM editor deals only with how to make the Keyspan software recognize a specific set of signals, presumably from a "traditional" JP1 protocol for our purposes (e.g., JVC2, or perhaps NEC). The other half is, of course, building the upgrade with KM or RM and putting it into the remote, and for that I'll need EFCs (or OBCs). Which means...ok, there's this little command-line decoder, from the same site as the .REM editor, which works with the Keyspan receiver, which will tell me which EFCs send what signals. Presumably, I could work with the existing .REM file and match up EFCs with signals, then go from there. Or, if I like, choose any arbitrary set of EFCs (from any arbitrary protocol, or just those known to work?), find out what signals they send, then use this info to build the appropriate .REM file.
And, when I'm done, I'll need to post both the KM upgrade AND the .REM file (packaged together, with instructions) to the JP1 library.
Is this the correct procedure?
Posted: Wed Sep 07, 2005 10:12 am
by The Robman
Give this upgrade a shot:
Upgrade Code 0 = 0F D0 (Cable/2000) Keyspan DMR (KM v8.31)
FF 00 00 00 A0 3D 1C 3F 2E 26 37 2C 31
End
Upgrade protocol 0 = 01 FF (S3C8) KeySpan DMR (PB v3.11)
43 8C 11 8B 12 85 04 07 08 01 63 02 8F 02 0D 01
40 00 00 04 B0 04 9C F6 01 33 C6 06 03 57 C6 08
65 36 1C 06 F6 01 39 F6 01 0A 7B EB AF
End
Here are the files:
https://www.hifi-remote.com/forums/dload ... le_id=2169
theory vs. practice
Posted: Wed Sep 07, 2005 5:11 pm
by alex750
I tried the upgrade (after remapping the buttons to an 8910 with KM). No go.

Is this only for a 6800?
So I decided to go the custom .REM route. First step: set DEV_AUX on the 8910 to DVD_0558 (JVC, device 239, sub 0), and upload to see what a default set of signals would look like. Since I already had a list of EFCs for this code (thank you, Robman, for devices4--it's still useful!) it would make building a KM upgrade easy.
I then tried out dmrdump, after first disabling DMRantiClassic.kext (and rebooting to ensure it STAYED disabled) as instructed. The first tries weren't very successful (lots of 'raw' gibberish mostly) until I saw some hints...I then tried forcing q=520, and got a decent set of signals. Using q=525 and q=530 yielded the same results, so I just ran with q=520.
Now comes the hard part. How does the signal data from dmrdump translate into something the .REM editor can use? A typical signal I got from dmrdump looks like
PPM q=520 h=0,0 b0=1,1 b1=1,3 bits=16 val(lsb)=c1ef val(msb)=f783
I knew what "q=520" was for, and was able to guess what the "h", "b0", "b1" and "bits" entries did, and just assumed a carrier of 38 kHz (according to the JVC datasheet, it's 37.9 +/- 0.4 kHz--not far off, as it turned out, and UEI's emulation of this probably uses 38.0 kHz). But as for translating the data into something usable...
I WAS LOST!
Looking at the JVC_VCR.REM file all I see are strings of "0101" and "0103", followed by "01ff". The most I was able to surmise was that 0101 was 0 and 0103 was 1, and 01ff meant "end of signal," but how this translated into "signal data" (c2d0? 0b43...

0b is the "button" and 43, common to all these, is the "code"...OK, so it's read right-to-left, 0101 is 0 and 0103 is 1, and 01ff is the "mask")...
So in the above case, would "c1" be the "button" and "ef" the "code"?
The DVD_0558.REM file I've generated with Dan Eble's .REM editor, using the signal data from my 8910 and assuming the above, looks awfully familiar.
Stay tuned... 8)
Posted: Wed Sep 07, 2005 6:26 pm
by The Robman
I didn't really expect the upgrade to work first time, and I had no way of testig it during the day. If I fix it so that it works, will you still be able to test it?
Posted: Wed Sep 07, 2005 6:57 pm
by The Robman
OK, this protocol should do it...
Upgrade protocol 0 = 01 FF (S3C8) KeySpan DMR (PB v3.11)
43 8C 11 8B 12 85 04 07 08 01 63 02 8F 02 0D 01
40 00 00 04 B0 04 9C F6 01 33 C6 06 03 57 C6 08
65 36 1C 06 F6 01 39 F6 01 0A 7B EB AF
End
This is for the URC-6800. Once you've confirmed that it works, I will post the KM file which you can use to program any remote.
Are there just 5 buttons on the original remote?
grrrr...
Posted: Wed Sep 07, 2005 9:15 pm
by alex750
So much for assumptions. The Keyspan mapper accepted my DVD_0558.REM all right, and allowed me to set up iTunes et al. with it, but when I tried to use it I got no response. All I get from the Keyspan monitor is "unrecognized data". Oh well.
There are 17 buttons on the Keyspan remote (REM17B, used with the UIA-11 receiver). The five or six I mentioned were just the ones I couldn't figure out, until it dawned on me that adding more buttons wasn't just a matter of finding the missing OBCs--apparently the protocol must be entirely rewritten each time!
Oh, and there's one other wrinkle: that extender. It shouldn't affect how an upgrade operates, but then this isn't a standard JP1 protocol. Before I throw in the towel, perhaps I should try it (along with Rob's upgrade above) with my old 6800.
So...I guess what you'll need is for me to learn them all, preferably with the 8910 (sans extender, so it can learn) that I intend to use it with. I'll post a link here as soon as I get that prepared.