Remote Control

Keyspan Digital Media Remote (DMR)

REM File Editor

Use this JavaScript REM Editor to create or to modify remote definition files for the Keyspan DMR mapper. It doesn't eliminate the need to know a little about how remotes work, but it makes the job far less tedious.

LIRC to REM Converter

Use this JavaScript LIRC Converter to turn Linux Infrared Remote Control (LIRC) remote definition files into Keyspan DMR remote definition files.

DMR Dump Application

Download: binary source

Do you want to find out which codes your remote control sends? Stop Keyspan's mapper and start this program in a terminal window. This program watches for IR codes and reports what it sees. Unfortunately, this does not work with UIA-10 receivers.

After downloading the binary, unzip it and mark it executable as follows.

$ ls -l
total 56
-rw-r--r--  1 dan  dan  25952 23 Aug 08:14 dmrdump.bz2

$ bunzip2 dmrdump.bz2 

$ ls -l
total 144
-rw-r--r--  1 dan  dan  73192 23 Aug 08:14 dmrdump

$ chmod +x dmrdump 

$ ls -l
total 144
-rwxr-xr-x  1 dan  dan  73192 23 Aug 08:14 dmrdump

That needs to be done only once. Then, before running dmrdump, make sure the Keyspan driver is not loaded, as follows.

$ sudo kextunload /System/Library/Extensions/DMRantiClassic.kext 
Password:
kextunload: unload kext /System/Library/Extensions/DMRantiClassic.kext succeeded

$ ./dmrdump 
PPM q=346 h=7,7 b0=3,2 b1=2,4 bits=15 val(lsb)=5038 val(msb)=0e05
PPM q=346 h=7,7 b0=3,2 b1=2,4 bits=15 val(lsb)=5038 val(msb)=0e05
PPM q=346 h=7,7 b0=3,2 b1=2,4 bits=15 val(lsb)=3038 val(msb)=0e06

By default, dmrdump uses a sample time of 66 µs, which is short enough to make a decent guess at the bit time for many remote control protocols. If you know the bit time of the remote you are using, providing it to dmrdump will enable more reliable decoding. For example, to decode signals from a JVC remote with a bit time of 527 µs,

$ ./dmrdump -q 527

Reference Material

I find this information useful for development and testing. The "OFA Codes" are setup codes for a One For All URC-8017 universal remote control.

Protocol Carrier Quantum Coding Data Sheets Other Info OFA Codes
IR 60 38 kHz BPM [A] Siemens SDA2008
ITT none PPM San Bergmans
JVC 38 kHz 527 µs PPM VIS H 1401 DVD 0558
Kaseikyo 37 kHz PPM TV 0250
Mitsubishi 50560 38 kHz 520 µs PPM Silan SC50560 TV 0624
NEC 38 kHz 563 µs PPM
  • CD 1023
  • SAT 1109
NRC17 38 kHz 500 µs BPM [A] San Bergmans
RC-5 36 kHz 889 µs BPM [B] Philips SAA3010 AMP 1269
RC-6 36 kHz 444 µs BPM [A] San Bergmans DVD 0539
RC-MM 36 kHz PPM San Bergmans
RECS 80 38 kHz 2532 µs PPM Philips SAA3004
Remotec 38 kHz PPM Celadon TRX
Sanyo 7461 38 kHz 563 µs PPM Sanyo LC7461M CD 0124
Sharp 38 kHz 350 µs PPM AMP 0186
SIRC 40 kHz 600 µs PWM [A] US Patent 5319487
  • CD 0490
  • AMP 0689
  • DVD 0533
Toshiba 9148 38 kHz 422 µs PWM [I] Toshiba TC9148P
Toshiba 9243 38 kHz 563 µs PPM Toshiba TC9243 TV 0060
X-Sat 38 kHz 526 µs PPM San Bergmans
BPM [A] bipolar modulation, value taken from first half of cycle
BPM [B] bipolar modulation, value taken from second half of cycle
PPM pulse position modulation (a.k.a. pulse distance modulation)
PWM [A] pulse width modulation, cycles of varying length
PWM [I] pulse width modulation, cycles of constant length