This page gives some information on a PC based IR remote control system I’ve developed for computer control of TV, video, satellite and hifi equipment etc.
I have used an IBM compatible, so the software here is for such a machine, however I guess that it is straightforward (perhaps easier) to implement this on another type of machine.
PC IR Remote Control Signals
IR remote control signals are modulated with a 40KHz carrier frequency, so for transmission or reception of the signal, the appropriate demodulation/modulation must take place.
The demodulated signal itself has a basic frequency which varies from manufacturer to manufacturer, but must not necessarily be exclusive to one make. Therefore, there is also a signal address, identifying the target device before an instruction is sent.
In itself, this is quite simple, but there are a couple of other signal variations which I have identified in writing the capture software. One is what I’ve called ‘hi/lo bias’ , that is the difference in length between signal highs and lows, and the second is the ‘repeat’ factor, i.e. how many times the signal is repeated. Some controllers repeat every signal, others do not. Quite how important these factors are, I’m not sure, however, I have tried to allow for exact reproduction of the input signal, and a bit of experimenting has shown for example, that a repeating signal is in fact a bit more reliable on a device expecting that, but produces strange results on one not expecting them!
PC IR Remote Control Hardware
The hardware (as I have bullt it) is constructed from two modules, one to capture the signal and provide timing functions, and the second as transmiter placed somewhere near the target equipemnt.
I have interfaced this to my IBM compatible PC on the printer port, using the two pins “Paper Tray Empty” and “Printer Busy” as input, and Data lines 0 and 1 as output.
Signal Capture
The figure shows the circuitry used for capture and timing.
I used a GP1U52X which I think is made by Sharp, but can be bought at Radio Shack (Tandy in the UK). This is a combined IR detector and demodulator, and in effect, this is all that is needed to capture the signals, which is then fed directly to the PC. (If you have problems getting hold of this, I can send you the postal address of Tandy UK, or maybe some kind person living near a Radio Shack shop could let me know if they are willing to pop round and pick up a few if I get any requests.)
One big problem with PC interfacing is getting a reasonable timer for sampling. To simplify this, I have used an external timer, running at 100KHz (i.e. a bit higher than the Nyquist limit for a 40KHz signal). This is probably overkill, as the demodulated signal is nowhere near 40KHz, but I found this gives good results.
Signal Playback
The software calculates the signal from the stored data, and outputs this to the printer parallel port.
The timer circuit on the playback board oscillates at 40kHz, and is switched by the data from ‘data 0’. I have the transmitter board on the end of about 6m cable, so I’ve put a de-coupling capacitor in between the power rails in case the power supply was a problem. Also, the 100nF capacitor on the IR LED line was found to improve the output signal ie. I get a much more reliable respose from a troublesome amplifier now! A 100nF cap. just happened to be at hand, maybe a different value capacitor would improve things further. Unfortunately I don’t have a ‘scope to look at the signals.
PC IR Remote Control Software
Included here is a PC exe to capture, analyse and store the IR signals, plus source code etc. I have extracted the parts of the code that deal with driving the hardware for use in programs and turned them into a C++ class which can be VERY easily incorporated into programs.
I wrote this stuff using Boland C++ v2.0, and have no idea how portable this is to other compilers. The progam IR is at version 1.0, i.e. not very well developed. It works ok for me, but then I wrote it! Feedback is appreciated, and I’ll try and fix bugs etc. etc.
Download exe, sources, example data file and a bit of documentation.
IR data
The data is stored in the form shown below. Each device (ie. video/TV etc) needs parameters for a full description of the signal, plus the signal data. The filename that the program expects is IRINFO.DAT, and MUST contain dummy values for a device if you want to capture signals, plus signal names and the number of signals. This is easily done in a text editor, but you must adhere to the format specification given here.
Once you have used the program to analyse the signals, the data is written to a file IRTEMP.DAT , which can be examined with any text editor, and if ok (it should be) copied to IRINFO.DAT for the next set of signals or testing or whatever.
The IR Program Main Menu
The program main menu gives you two options, firstly to record IR signals, and secondly to play signals back. The latter facility is purely a convenient method to test the signal data and/or hardware, and does not provide a very elegant method of computer equipment control.
Signal Capture
This program menu gives a list of devices for which data can be captured. Choosing any of these will load the data (dummy or real) for that device, and throw up the following screen.
Device and signal parameters are given in red, and instructions in blue. The two signals (white and red) are the input signal from the detector and the calculated signal from the file data.
So how do you go about capturing your signals?
- Set up the IRINFO.DAT file to have all the dummy entries for the signals you want to capture.
- Go to the capture screen (above) and press ‘i’ (for input). The program then waits for IR input, but BE WARNED, the recording routine turns off interrupts, so if you don’t have the hardware plugged in, the only way out is the reset switch!
- Once captured, the signal will be displayed. Press ‘e’ (for estimate), and the program will attempt to estimate the signal from the captured signal.
- Play around! Well, until you get a stored signal that looks somewhat like the original anyway. The aim here is to get the data string on the screen to represent a nearly identical signal to the input one. The first time you do this for a device, it is a bit more involved, as the frequency and bias must be found. One this is done for the first signal, it will be identical for the rest.To do this, you have to adjust the frequency, hi/low bias etc., pressing ’e’ occasionally to see how you’re getting on. It may be necessary to adjust the calculated signal start offset to get the two signals in phase, otherwise estimation of signal won’t work very well.If you really can’t get the signal sorted out, then you can manually edit the data string - moving the highlighted figure with the cursor keys.A HINT: Using SHIFT and the control letter will give a x10 increment/decrement in a changable parameter.
- If you thing your getting close, try ’’’ ‘r’ ‘’’ to RUN the signal. Does your TV, Video, or whatever respond?
- Press ’’’ ’n’ ‘’’ for the next signal, and repeat the above process…. which should just be a matter of estimating the signal as the other parameters are already set up.
- Done? Press ’’’ ‘w’ ‘’’ to write the data to the output file IRTEMP.DAT.
Signal Playback
This gives you the opportunity to test all the captured signals. The‘repeat signal’ option repeatedly plays the chosen signal about once every second. This can be useful for positioning the IR transmitter, or adjusting the playback timer frequency to get a good response.
PC IR - C++ class
There are two files you need, IRUTILS.H and IRDEFS.H:
They are used in a program in the following way:
// Program using IRDEV class
// Declare required classes...
IRDEV SAT;
IRDEV VIDEO;
int main(void)
{
SAT.LoadData("Sat"); // Read the data from disk
VIDEO.LoadData("Video");
SAT.PlaySignal("Standby"); // Play signal "Standby" - ie turn it on
SAT.PlaySignal(0); // Send signal "0"
// Rest of program ....
exit(0);
}
The “PlaySignal” routine can take an “int” argument, or a “char *” argument. The “char *” should correspond to the name of a signal in the data, and the “int” argument is converted into a the appropriate string, eg. 0 -> “Zero”, 1 -> “One”…..
PC IR Data File Format
The format of the data file (IRINFO.DAT) is explained here, but maybe you’ll find it easier to simply look at an example.
I recommend creating a data file with dummy values before starting the IR program. It is more relaible if the program has to edit the data rather than create it all from scratch. Maybe the next version will be better…..
-
Comments start with a ‘#’
# Info for IR Remote control # Chris Dodge - May 1994
-
The paramters for a particular device use a name, in this case ‘Sat’ . This name is used by programs to refer to this data.
- Clock - frequency of IR signal itself (not the modulation frequency).
Sat Clock 1726.000000
-
- Bias - the difference in the high/low signal ratio.
Sat Bias 10
-
- SignalNo - the number of signals for ‘Sat’.
Sat SignalNo 27
-
- SignalLen - the length of the signal data string for ‘Sat’.
Sat SignalLen 150
-
- Repeat - number of times the signals are repeated.
Sat Repeat 1
-
- Pause - If the repeat value is > 1, then this is the pause between repeats (units of a single data string value).
Sat Pause 0
-
The signal data itself, in the form: [Device] Signal [Signal Name] [Data] That is, the keyword MUST be there, to indicate that this is a signal, what’s in the other fields are up to you.
Sat Signal Standby 1111111111111111000000001……..
// $Id: irutils.h_v 1.1 1994/06/09 20:57:37 chris Exp chris $
// Utilities for programs using the IR remote controller
// This class automatically loads the data and allows
// easy calling of the various signals.
// Chris Dodge - May 1994
#include "irdefs.h"
// -- ASM functions --
extern int PlayIR(char*, int); // ASM - Play signal back
// Global vars
char Signal[SIZE];
class IRDEV {
private:
DeviceData DeviceDat;
SigDat SigData[SIGNO];
int ReadData(char*, DeviceData*, SigDat[]); // Reads data for this device
void CalcSignal(int, int, int); // Calcs signal from data
public:
void LoadData(char*); // Loads data from file
int SigCount(); // Returns signal count
void PlaySignal(char*); // Plays a signal
void PlaySignal(int); // Plays a signal (numeric)
};
// Loads data from disk for this device
void IRDEV::LoadData(char *DevName)
{
if (ReadData(DevName, &DeviceDat, SigData)) {
fprintf(stderr, "ERROR: Can't initialize IRDEV class - data file not found!\n");
exit(1);
}
return;
}
// Returns the no. of signals for this device
int IRDEV::SigCount()
{
return DeviceDat.SignalNo;
}
// Plays the signal with the name passed
void IRDEV::PlaySignal(char *Name)
{
int i=0, j;
// Search for this string in the signal names
while (i SIZE) To = SIZE;
if (From >= SIZE) return;
for (j=From; jName, Dev);
SigCount = 0; ValidityCount = 0;
// Read the data file.....
do {
// Read each line....
ch = fgetc(data);
ChPos = 0;
type = 0;
while ((ch!='\n')&&(ChPos<(SIGLEN+18))&&(ch!=EOF)) {
line[ChPos] = ch;
ChPos++;
ch = fgetc(data);
}
line[ChPos] = '\0'; // Null-terminate line.
// Cancel previous values otherwise they stay on NULL lines
// ie. they are not cleared by scanf
sprintf(ThisDev, "\0");
sprintf(Signal, "\0");
// Extract the device type and info type
NoFields = sscanf(line, "%s %s", ThisDev, Info);
// If this device is of the wanted type, then read data
// else ignore.
if (!(strncmpi(ThisDev, Dev, strlen(Dev)))) {
// Act on the word type option.
if (!(strcmpi(Info, "Clock"))) {
NoFields = sscanf(line, "%s %s %f", ThisDev, Info, &F);
DeviceDat->Clock = F;
ValidityCount++;
}
if (!(strcmpi(Info, "Bias"))) {
NoFields = sscanf(line, "%s %s %d", ThisDev, Info,
&DeviceDat->Bias);
ValidityCount++;
}
if (!(strcmpi(Info, "SignalNo"))) {
NoFields = sscanf(line, "%s %s %d", ThisDev, Info,
&DeviceDat->SignalNo);
ValidityCount++;
}
if (!(strcmpi(Info, "SignalLen"))) {
NoFields = sscanf(line, "%s %s %d", ThisDev, Info,
&DeviceDat->SignalLen);
// Check length value
if (DeviceDat->SignalLen > SIGLEN) {
fprintf(stderr, "*** ERROR: Required signal length too long ***");
getch();
exit(1);
}
ValidityCount++;
}
if (!(strcmpi(Info, "Pause"))) {
NoFields = sscanf(line, "%s %s %d", ThisDev, Info,
&DeviceDat->Pause);
ValidityCount++;
}
if (!(strcmpi(Info, "Repeat"))) {
NoFields = sscanf(line, "%s %s %d", ThisDev, Info,
&DeviceDat->Repeat);
ValidityCount++;
}
if (!(strcmpi(Info, "Signal"))) {
if (SigCount == SIGNO) {
fprintf(stderr, "*** Error: Too many signals ***");
printf("%s\n", line);
getch();
}
else {
NoFields = sscanf(line, "%s %s %s %s", ThisDev, Info,
SD[SigCount].Name, SD[SigCount].data);
// Check signal data length, if too short, fill with 0's
if ((strlen(SD[SigCount].data)SignalLen)) {
for (i=(strlen(SD[SigCount].data)-1); i<(DeviceDat->SignalLen-1); i++)
SD[SigCount].data[i] = '0';
SD[SigCount].data[DeviceDat->SignalLen] = '\0';
}
SigCount++;
}
}
}
} while (ch != EOF);
if (SigCount == 0) {
fprintf(stderr, "No signals for device!");
return 1;
}
if (ValidityCount!=6) {
fprintf(stderr, "Not enough parameter data for device!");
return 1;
}
fclose(data);
return 0;
}
// Defs for IR class, for PC IR control
//
// Chris Dodge
#define TRUE 1
#define FALSE 0
#define SIZE 30000 // Size of signal data array
#define CLKTICK 0X1C // Clock tick interrupt
#define SIGLEN 250 // Maximum signal length
#define SIGNO 34 // Number of signals for a device that can be held
#define SAMPLEFREQ 100000 // Frequency at which the signal is sampled
// Structures for holding signal data
struct DeviceData{
char Name[8]; // Device name
float Clock; // Basic timing speed of signal
int Bias; // Unevenness in hi/low signal lengths
int SignalNo; // Number of signals
int SignalLen; // Length of signal (bytes)
int Repeat; // No of times the signal is played
int Pause; // Pause in between signal repeats
};
struct SigDat {
char Name[9]; // Signal name
char data[SIGLEN]; // Signal data
};
# Info for IR Remote control
# Chris Dodge - May 1994
Sat Clock 1726.000000
Sat Bias 10
Sat SignalNo 27
Sat SignalLen 150
Sat Repeat 1
Sat Pause 0
Sat Signal Standby 111111111111111100000000100010101000101010100010100010001010001000100010001010101010101010100010001000100010001000100010001000000000000000000000000000
Sat Signal One 111111111111111100000000100010101000101010100010100010001010001000100010001000100010101010101010101000100010001000100010001000000000000000000000000000
Sat Signal Two 111111111111111100000000100010101000101010100010100010001010001000100010001010001010101010101000101000100010001000100010001000000000000000000000000000
Sat Signal Three 111111111111111100000000100010101000101010100010100010001010001000100010001000101010101010101010001000100010001000100010001000000000000000000000000000
Sat Signal Four 111111111111111100000000100010101000101010100010100010001010001000100010001000100010001010101010101010100010001000100010001000000000000000000000000000
Sat Signal Five 111111111111111100000000100010101000101010100010100010001010001000100010001010001000101010101010001010100010001000100010001000000000000000000000000000
Sat Signal Six 111111111111111100000000100010101000101010100010100010001010001000100010001000101000101010101010100010100010001000100010001000000000000000000000000000
Sat Signal Seven 111111111111111100000000100010101000101010100010100010001010001000100010001000100010100010101010101010001010001000100010001000000000000000000000000000
Sat Signal Eight 111111111111111100000000100010101000101010100010100010001010001000100010001010001010001010101010001010001010001000100010001000000000000000000000000000
Sat Signal Nine 111111111111111100000000100010101000101010100010100010001010001000100010001000101010001010101010100010001010001000100010001000000000000000000000000000
Sat Signal Zero 111111111111111100000000100010101000101010100010100010001010001000100010001010001000100010101010100010101010001000100010001000000000000000000000000000
Sat Signal Mute 111111111111111100000000100010101000101010100010100010001010001000100010001000101010001000101010101000100010101000100010001000000000000000000000000000
Sat Signal Mode 111111111111111100000000100010101000101010100010100010001010001000100010001010001010100010101010001010001000101000100010001000000000000000000000000000
Sat Signal Mo/St 111111111111111100000000100010101000101010100010100010001010001000100010001010100010001010101010001000101010001000100010001000000000000000000000000000
Sat Signal A/B 111111111111111100000000100010101000101010100010100010001010001000100010001010101010001010101000100010001000101000100010001000000000000000000000000000
Sat Signal AudioUp 111111111111111100000000100010101000101010100010100010001010001000100010001000101000100010101010101000101010001000100010001000000000000000000000000000
Sat Signal AudioDn 111111111111111100000000100010101000101010100010100010001010001000100010001000101010100010101010100010001000101000100010001000000000000000000000000000
Sat Signal ChanUp 111111111111111100000000100010101000101010100010100010001010001000100010001010001010001000101010100010100010101000100010001000000000000000000000000000
Sat Signal ChanDn 111111111111111100000000100010101000101010100010100010001010001000100010001000100010100010001010101010100010101000100010001000000000000000000000000000
Sat Signal V/H 111111111111111100000000100010101000101010100010100010001010001000100010001000100010001000100010101010101010101000100010001000000000000000000000000000
Sat Signal FreqUp 111111111111111100000000100010101000101010100010100010001010001000100010001000100010001000101010101010101010001000100010001000000000000000000000000000
Sat Signal FreqDn 111111111111111100000000100010101000101010100010100010001010001000100010001000100010101000101010101010001000101000100010001000000000000000000000000000
Sat Signal Dev 111111111111111100000000100010101000101010100010100010001010001000100010001000101000100010001010101010001010101000100010001000000000000000000000000000
Sat Signal Dec 111111111111111100000000100010101000101010100010100010001010001000100010001010100010001000101010100010001010101000100010001000000000000000000000000000
Sat Signal Int/Ext 111111111111111100000000100010101000101010100010100010001010001000100010001010001000100010001010101000101010101000100010001000000000000000000000000000
Sat Signal Store 111111111111111100000000100010101000101010100010100010001010001000100010001010100010101010101000100010100010001000100010001000000000000000000000000000
Sat Signal Erase 111111111111111100000000100010101000101010100010100010001010001000100010001010101000101010101000100010001010001000100010001000000000000000000000000000
CD Clock 2240.000000
CD Bias 1
CD SignalNo 33
CD SignalLen 150
CD Repeat 2
CD Pause 56
CD Signal Open 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010101010101010001000101000101000101000100000000000000000
CD Signal Stop 11111111000010100010101010101010101010101000101010101010101000101000101000101000101010101010101010101010101000101000101000101000100000000000000000000
CD Signal Pause 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010100010001010101010101010001000101000101000100000000000000000
CD Signal Play 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010100010100010101010101010101010001010001000000000000000000000
CD Signal SearchDn 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010100010101010101010101010001010001010001000000000000000000000
CD Signal SearchUp 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001000101010101010100010101000101000101000100000000000000000
CD Signal SkipDn 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010100010101000101000100010101010001000100010000000000000
CD Signal SkipUp 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010100010100010101000101010101010100010001000100000000000000000
CD Signal One 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101010100010101010100010100010001000101000100000000000000000
CD Signal Two 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010101000101010100010001010001000100010100010000000000000
CD Signal Three 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010100010101000101010101010100010001000101000100000000000000000
CD Signal Four 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001000101010001010101000101010001000100010100010000000000000
CD Signal Five 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101000101000101010101000100010001000100010100010000000000000
CD Signal Six 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010001010001010101000100010001000100010001010001000000000
CD Signal Seven 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010100010001010001010101010100010001000100010100010000000000000
CD Signal Eight 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001000100010100010101010001010001000100010001010001000000000
CD Signal Nine 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101010001000101010101000101010001000101000100000000000000000
CD Signal Ten 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010001010101010001000100010001000101000101010000000000000
CD Signal GtTen 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101000101010101000101000100010001010001010100000000000000000
CD Signal Zero 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010100010001010101000100010101000100010100010000000000000
CD Signal Program 111111111000101000101010101010101010101010001010101010101010001010001010001010001010101010100010100010101010001010101010100010101000000000000000000000
CD Signal Clear 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101010101010100010100010100010100010101000000000000000000000
CD Signal Recall 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010101010101000100010001010001010001010100000000000000000
CD Signal TimeMode 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010001010001010001010001000100010001000100010001000100000
CD Signal A-BRept 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101010001010100010101000101010100010001000100000000000000000
CD Signal Repeat 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001000100010101010001010001010001000101000100010001000000000
CD Signal Random 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010001000101010001010001000100010101000100010001000000000
CD Signal AutoCue 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001000101000101010100010001010101010001010100000000000000000
CD Signal LevelDn 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001010101010001010100010001010001010101000100000000000000000
CD Signal LevelUp 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101010101000101010100010100010101010001000000000000000000000
CD Signal TapeLen 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001000101000101000101000100010101010101010100000000000000000
CD Signal SideA/B 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010101000100010100010100010100010001010101010100000000000000000
CD Signal PkSearch 111111110000101000101010101010101010101010001010101010101010001010001010001010001010101010001000100010001010101000100010100010101000101010000000000000
Amp Clock 1741.000000
Amp Bias 9
Amp SignalNo 15
Amp SignalLen 230
Amp Repeat 1
Amp Pause 0
Amp Signal Power 1111111111111111100000000101000101010001010001000100010100010001010001000101010100010101010101000100010100010001000100010001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Amp Signal Speak_A 1111111111111111000000001010001010100010100010001000101000100010100010001010001010100010001010001010100010001010100010100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Amp Signal Speak_B 1111111111111111000000001010001010100010100010001000101000100010100010001010100010100010001010001010001010001010100010100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Amp Signal SourceD 1111111111111111000000001010001010100010100010001000101000100010100010001010101000101010100010100010001010001000100010100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Amp Signal Aux 1111111111111111000000001010001010100010100010001000101000100010100010001010100010001010101010100010101000100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Amp Signal Tuner 1111111111111111000000001010001010100010100010001000101000100010100010001010001000101000101010101010100010100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Amp Signal Phono 1111111111111111000000001010001010100010100010001000101000100010100010001010100010100010101010100010100010100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Amp Signal CD 1111111111111111000000001010001010100010100010001000101000100010100010001010001010100010101010101000100010100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Amp Signal Tape-1 1111111111111111000000001010001010100010100010001000101000100010100010001010101010001010101010001000100010100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Amp Signal Tape-2 1111111111111111000000001010001010100010100010001000101000100010100010001010001000100010101010101010101000100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Amp Signal Video-1 1111111111111111000000001010001010100010100010001000101000100010100010001010100010001000101010101000101010100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Amp Signal Video-2 1111111111111111000000001010001010100010100010001000101000100010100010001010001010001000101010101010001010100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Amp Signal Mute 11111111111111110000000010100010101000101000100010001010001000101000100010100010100010101010101010001010001000100010001000100000000000000000000000000000000000000000000000000000000000000000000011111111111111110000100000000000000000
Amp Signal Vol_Up 1111111111111111000000001010001010100010100010001000101000100010100010001010100010101010101010001010001000100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Amp Signal Vol_Dn 1111111111111111000000001010001010100010100010001000101000100010100010001010001000101010101010101010001000100010001000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Video Clock 1119.000000
Video Bias 15
Video SignalNo 20
Video SignalLen 200
Video Repeat 1
Video Pause 0
Video Signal Standby 10101101001100110100101101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110011010010110100000000000000000000000000000000000000000000
Video Signal Stop 10110101001100101011001011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011010100110010101100101100000000000000000000000000000000000000000000
Video Signal Play 10101101001100101011001100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110010101100110010000000000000000000000000000000000000000000
Video Signal FFwd 10110101001100101100101011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011010100110010110010101100000000000000000000000000000000000000000000
Video Signal Rewind 10101101001100101100101101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110010110010110100000000000000000000000000000000000000000000
Video Signal Eject 10110101001100101100101100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011010100110010110010110010000000000000000000000000000000000000000000
Video Signal Jog_On 10101101001100101100110100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110010110011010010000000000000000000000000000000000000000000
Video Signal Slow_Fwd 10110101001100101100110101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011010100110010110011010100000000000000000000000000000000000000000000
Video Signal Slow_Bk 10101101001100101101010011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110010110101001100000000000000000000000000000000000000000000
Video Signal Stil_Fwd 1011010011010010110011010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Video Signal Stil_Bk 10110100110100101100110100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Video Signal Prog+ 10101101001100101101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110010110101010100000000000000000000000000000000000000000000
Video Signal Prog- 10101101001100101101010100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110010110101010010000000000000000000000000000000000000000000
Video Signal Sp/Lp 10110101001100101010110011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011010100110010101011001100000000000000000000000000000000000000000000
Video Signal RecMode 10101101001100110010101011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110011001010101100000000000000000000000000000000000000000000
Video Signal Tuner 11010101001100101010101100100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101010100110010101010110010000000000000000000000000000000000000000000
Video Signal Audio 10101101001100101101010010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010110100110010110101001010000000000000000000000000000000000000000000
Video Signal Go_To 10110101001100101011010010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001011010100110010101101001010000000000000000000000000000000000000000000
Video Signal Repeat 11010101001100101010110101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101010100110010101011010100000000000000000000000000000000000000000000
Video Signal Index 11010101001100101011010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001101010100110010101101010100000000000000000000000000000000000000000000
Sources
- Chris Dodge cdodge[at]awi-bremerhaven.de