Transmit Infrared Signals Through Walls
I get "TONS" of requests on how to do this, so I've finally put together this simple project showing you how to use your existing infrared transmitter from any room in the house. The principal is really pretty simple, and it works better than you would think.
This is a "very handy" little project. With this gadget you can control anything from pretty much anywhere. Even place your stereo equipment inside an enclosure then use your existing IR remote control without line of sight. Adjust the volume on your stereo from other rooms in the house. You name it -- so enjoy...;o]
I have tested both circuits with TV's, stereo's, and various VCR's & CD players. I can change channels, adjust volume, etc, from any room in the house (and outside) where I have the IR to RF circuit in Figure #1. The RF to IR circuit in Figure #2 is placed on a bookshelf across our living room, and aimed in the direction of our TV & stereo.
Note: You can place the IRLED on long wires to extend it right onto the front of the equipment you need to control and do away with the Zetex 603 High-Current IRLED drive circuit. I'm a little power hungry, and always like to see just how far I can push the envelope, but you may prefer to tone this down a bit. You can directly drive the IRLED with a single series resistor on the 40kHz modulating PIC for much shorter range operation.
If you're placing the receiver & IR LED close to the equipment you'll be controlling, you do not need the high-current NPN LED driver circuit.
How It Works:
We'll use our existing infrared remote control transmitter for our TV. We'll transmit to the IR detector shown in Figure #1 below. The IR signal from our transmitter is output on the TSOP-1140 40kHz IR detector module data output pin (labeled RX DOUT) in Figure #1.
The IR detectors output signal feeds data to the input of the TXLC-315 RF transmitter module through the 2N3906 PNP transistor inverter circuit. When no data is being received from the IR transmitter, the PNP transistor & TXLC-315 RF module are both OFF.
We need this inverter circuit since the TXLC-315 data input needs to be held at ground during idle (non-transmit) periods. The output of the TSOP-1140 IR detector idles at logic 1. Applying this logic 1 directly to the TXLC-315 data input would cause the TXLC-315 RF transmitter to always be ON. We don't want this. We only want incoming data from the IR transmitter to turn ON the RF transmitter to re-create the same signal the IR transmitter is sending. That's the purpose of the PNP inverter circuit.
In essence, we're simply turning IR into RF since the IR detector output will now modulate our RF module thereby re-creating the same signal, but now it's RF instead of infrared. We use our IR transmitter to send data from any room in the house by installing the circuit shown below in Figure #1 on our TV IR transmitter, or building one of the circuits shown in Figure #1 for each room.
Figure #1: Infrared Receiver to RF Transmitter Circuit
Now all we need is the circuit that receives the RF signal, then re-creates this same data signal in infrared. The circuit shown below in Figure #2 does exactly what we need.
Note: We've revised the RXLC-315 circuit boards. These are now 5-pin VS the old 4-pin boards. We've included a link to the older version board (and old version RF-TO-IR IC) for this project below. Anyone using the newer 5-pin modules & PIC10F200 RF-TO-IR IC, refer to Figure #2.
Figure #2: RF Receiver to Infrared Transmitter Circuit
How It Works:
The RXLC-315 RF receiver module receives the incoming RF transmission from the TXLC-315 transmitter. The RXLC-315 outputs this incoming data stream to the DIN pin of the 8-pin IC labeled RF-TO-IR shown above in Figure #2.
The 8-pin IC is a custom programmed PIC10F200 that samples the data input pin labeled DIN, then re-creates this same data signal modulated at 40Khz. Presto. We now have turned our incoming data back into a modulated IR signal, and we now have a standard TV or other appliance IR transmitter we can use anywhere in the house with our existing stereo, TV, CD players, etc, etc..
To assemble the code below you'll need the Microchip MPASM assembler, a PIC programmer, and, of course, a PIC10F200. If you don't have all this stuff, don't worry, we're tossing in the pre-programmed PIC free of charge with a bunch of other components for this project. See below for details.
You can download the MPASM assembler from http://www.microchip.com free of charge. It's included in the MPLAB IDE.
The RF-TO-IR Firmware:
;* Name : 10F_RFTOIR.asm *
;* Author : Bruce Reynolds *
;* Notice : Copyright(C) 2005 Reynolds Electronics *
;* : All Rights Reserved *
;* Date : 08/15/2005 *
;* Version : 1.0 *
;* Notes : Using the PIC10F200 for RF to IR data carrier *
;* ; generation. *
;* : Used for RF to IR project *
title "10F200 - RF to IR Project"
__CONFIG _IntRC_OSC & _WDT_OFF & _CP_OFF & _MCLRE_OFF
movwf OSCCAL ; load factory osccal value at start-up
bcf OSCCAL,0 ; Make sure INTOSC/4 is NOT output on GPIO.2
movlw b'00000000' ; clear outputs (IR LED = off) on power-up
movwf gpio ; set port latches
movlw b'00001101' ; GPIO.0, GPIO.2, GPIO.3 inputs, GPIO.1 IR LED output
tris gpio ; set I/O directions
movlw b'11000000' ; internal pull-ups off, wake-up on pin change off
option ; write to OPTION register
; Notes on how this works:
; The output of the RXLC-315 RF receiver is held at ground until the TXLC-315
; transmitter data input transitions from ground to logic 1. The logic 1 input
; on the TXLC-315 transmitter indicates we're receiving data from the IR transmitter
; and we need to turn the 40kHz carrier on. Simple stuff -- but most effective.
Hold ; generate 40kHz carrier when GPIO.0 = 1
bcf gpio,1 ; LED = off
btfss gpio,0 ; Is data input at logic 1..?
goto $-1 ; No, then keep waiting
bsf gpio,1 ; Yes, so begin 40kHz IR carrier generation
btfss gpio,0 ; 2uS
goto Hold ; 3uS
btfss gpio,0 ; 4uS
goto Hold ; 5uS
btfss gpio,0 ; 6uS
goto Hold ; 7uS
btfss gpio,0 ; 8uS
goto Hold ; 9uS
btfss gpio,0 ; 10uS
goto Hold ; 11uS
btfss gpio,0 ; 12uS
goto Hold ; 13uS (~52% duty-cycle)
bcf gpio,1 ; 14uS turn off IR LED here
btfss gpio,0 ; 15uS
goto Hold ; 16uS
btfss gpio,0 ; 17uS
goto Hold ; 18uS
btfss gpio,0 ; 19uS
goto Hold ; 20uS
btfss gpio,0 ; 21uS
goto Hold ; 22uS
btfsc gpio,0 ; 23uS If gpio,0 = 0 end carrier, else continue
goto Freq1 ; 25uS, GOTO requires 2uS, 25uS total=40kHz
goto Hold ; return & wait
Can you use other RF modules..? We get this a lot, and the answer is "absolutely", however, I recommend you use a pair that operate similar to the TXLC/RXLC RF modules. The receiver needs to maintain a solid logic 0 during idle or non-transmit periods. Many less expensive RF receivers like the RWS-434 & Ming RE-99 RF receivers will continuously output random noise pulses. These noise pulses will cause the IR modulator IC to send false data to the IR receiver on your existing equipment, so the better RF receiver modules are worth the extra cost. Test it if you like with the less expensive ones, but just remember it "definitely works" with the TXLC/RXLC combination.
20365 28 August 2007
This receiver costs less than $10 to build, uses commonly available components.