PC IR Remote Control

It appears that you are using AdBlocking software. The cost of running this website is covered by advertisements. If you like it please feel free to a small amount of money to secure the future of this website.

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.

Image:cir_ir_rx.gif

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.

Image:cir_ir_tx.gif

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.

Image:cir_ir_screen.gif

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

Category:InfraRed

 

© 1998-2024 – Nicola Asuni - Tecnick.com - All rights reserved.
about - disclaimer - privacy