[sci.electronics] Info on IR Remote Control Protocol

mrb@psueclb.BITNET (01/10/88)

Hi ---

I am interested in obtaining the protocol used for signalling between the
IR handheld remote control of a Scientific-Atlanta Homesat 900 satellite
receiver, and the receiver itself.  While this seems pretty specific, any
information on similar home-entertainment IR remote control schemes would
also prove useful.

Thanks for all your help.  Email is OK to MRB @ PSUECL via BITNET, or
one of the other gateways ending up here at Penn State.  Otherwise, I will
watch this newsgroup for postings.

M. Baker
MRB @ PSUECL


     

psfales@ihlpe.ATT.COM (Pete Fales) (01/19/88)

In article <921@PSUECLB>, mrb@psueclb.BITNET writes:
> 
> Hi ---
> 
> I am interested in obtaining the protocol used for signalling between the
> IR handheld remote control of a Scientific-Atlanta Homesat 900 satellite
> receiver, and the receiver itself.  While this seems pretty specific, any
> information on similar home-entertainment IR remote control schemes would
> also prove useful.

I recently built a handheld controller that can be programmed to emulate
the infra-red remote controls for a number of different devices.  In
general, it is not necessary to understand the details of the transmission
formats as my box just "records" the signals and plays them back. 
However, while debugging it I did find it necessary to study the protocol
for one device (my VCR) in detail.  I hope this is useful.

My VCR with infrared remote came from Montgomery Wards, and is
manufactured by Sharp.

The VCR encoding scheme uses pulse position modulation of a carrier.  The 
carrier has a frequency of about 37.73 KHz with a 64% duty cycle.  A logical 
"one"consists of 255 microseconds of carrier on followed by 799 microseconds
of carrier off.  A logical "zero" consists of the same 255 microseconds of
carrier on followed by 1855 microseconds of carrier off.  As a result, it
can be seen that the total time to transmit a string of bits depends on 
the relative number of "ones" and "zeroes."  (These times are based on the
those used by my programmable controller and are only anapproximation 
of the timing actually generated by the remote control.  In practice, 
a significant amount of variation is allowed.)

The actual bit pattern to indicate a function is as follows

- A three bit sync pattern (1, 0, 1)
- 10 data bits indicating the function to be performed
- A pause (no carrier) such that the total time since the start of the
    first sync bit is 50.6 milliseconds.
- Another three bit sync pattern (1, 0, 1)
- 10 data bits that are the logical inverse of the previous 10 data bits

Ten bits is far more than necessary for the limited number of functions
provided.  Presumably, the same scheme is used for more complex remote
control devices.  The functions provided by my remote are:

Stop		1,0,1,1,1,1,1,1,1,1
Play		1,1,0,1,1,1,1,1,1,1
Power on/off	0,1,0,0,1,1,1,1,1,1
TV/VCR		1,1,1,1,0,1,1,1,1,1
Rewind		0,1,1,1,1,1,1,1,1,1
Fast Forward	0,0,1,1,1,1,1,1,1,1
Channel Up	1,0,0,0,1,1,1,1,1,1
Channel Down	0,0,0,0,1,1,1,1,1,1
Record		0,0,1,0,1,1,1,1,1,1
Pause		1,0,0,1,1,1,1,1,1,1
Frame Advance	0,0,0,1,1,1,1,1,1,1

-- 
Peter Fales		UUCP:	...ihnp4!ihlpe!psfales
			work:	(312) 979-7784
				AT&T Information Systems, IW 1Z-243
				1100 E. Warrenville Rd., IL 60566