The final solution was an RF link feeding keystrokes from a keypad to the serial input on the back of the receiver, instead of the optical
receiver on the front. This approach turned out to be elegantly simple. It was developed quickly, and has served reliably for more than a year.
What you DON'T want to do is this:
The encoded infrared signal is detected by the black integrated circuit with the dome lens pointing to the left. It's output triggers
the Microchip 12F629 to come out of sleep-state and re-modulate the data on a 38 KHz carrier. That signal drives an infrared LED
attached to the off-board socket, placed near the satellite receiver's IR detector. The clear LED points to the source and provides
feedback on signal reception.
The web overflows with attempts to make this arrangement work.
What you DO want to do is this:
Purchase a pair of UHF RF Transceivers from Sure Electronics at http://www.sureelectronics.net. They are sold as 431-470 MHz
GFSK Data Transfer Transceivers and carry part number RMB-CM12111. A program to change the default frequency and power
level is available, but was not used.
The beauty of these devices is that they accept data as an async stream at 9600 bps with 8-bit bytes, no parity, and one stop-bit.
This is exactly what the DirecTV receiver wants to see at it's serial port input.
It then becomes a simple matter of correlating a particular keypad key to the code the receiver expects. Stuff that code string into the
transmitter and a few milliseconds later it comes out of the receiver. Translate the TTL levels to RS-232 levels and you are done.
There is no "intelligence" at the receiving end of the link, just the UHF receiver and the level translator.
Use a Microchip 16F648 to scan the keypad and drive the transceiver.
The document that describes the codes the satellite receiver needs to perform any action can be found in DirecTV publication
DTV-MD-0058, entitled DIRECTV Set-Top Box Information for the Installer. Version V2.2 is the latest I have seen.
The keypad scanner and code lookup were written in BASIC and compiled with the OshonSoft PIC Simulator IDE. Keys "0" through
"9" send those numbers to the receiver, allowing direct access to any channel through sequential key presses. Keys "A" through "D"
have been assigned to frequently watched channels. The "Star" and "Pound" keys decrement and increment the current channel by one.
Here, in bread-board format, is the entire system. In the lower right corner is the transmitter and the 16F648 (minus the keypad). The
receiver is at the lower left. The output feeds into the TTL to RS-232 level translator, and passes, via the red and black clip-leads
to the coiled telephone handset cord (my only source for a 4-pin modular connector) and into the satellite receiver.
The 5-volt power supply need not deliver 1 ampere... that small switching power supply was a convenient item. An identical unit
powers the transmitter.
The range, using the default transmitter power level, turned out to be quite adequate, about 400 feet. I can change channels on my
TV from four houses down the street.