The simplest analog RF switch, using a 433Mhz RF transmitter and receiver set. No microcontrollers here!
Here’s a quick video of the circuit in action:
Paired RF transmit/receive modules are widely available at low cost. The modules I have came from aliexpress for 0.80USD with free shipping. Can’t ask for a much better deal than that!
Before diving into using higher-level data protocols over the RF link, I was inspired by various youtube videos to test the devices with the simplest analogue switch circuit. A sampling of the many youtube videos on the subject:
- Wireless RF Links Tutorial & Noise Reduction by EEEnthusiast
- Cheaper Wireless for Arduino by Kyle Fieldus which is a nice detailed walkthrough but using the older VirtualWire library.
So in this circuit, there’s no microcontroller or anything fancy, just the RF modules communicating with each other and transmitting a button press to blink a remote LED.
As much as I can glean from available datasheets:
- Frequency: 433Mhz
- Modulation: ASK
- Receiver Data Output: High - 1/2 Vcc, Low - 0.7v
- Transmitor Input Voltage: 3-12V (high voltage = more transmitting power)
Simply has a button wired up with LED indicator. When not pressed, the Data line is pulled low. When the button is pressed, it pulls the data pin high. The LED indicator on the sender-side is merely to confirm that a data signal was raised. I’ve wired up the sender to a 9V battery.
The receiver is powered with 5V. When data is received, it takes the data line high.
Initially, I just had an LED wired to the data line. That worked reasonably well: press the button on the sender, and the receiver blinks the LED! How simple is that?
However, when the sender is not transmitting, the receiver does seem to pick up quite a bit of noise. I managed to filter out the noise to the point where it is 90%+ clean with two simple measures:
- add a 1μF and 100nF capacitors for medium-high frequency filtering
- send the data into an LM324 OpAmp comparator, with reference voltage set at 10kΩ/(4.7kΩ + 10kΩ) * Vcc i.e. ~68% Vcc or 3.4V
Next up I’ll be looking at using the RF links with an Arduino. I’m interested to see if libraries like RadioHead obviate the need to do this analog signal processing (answer is yes!):
- LEAP#064 RFSwitchASK - adding microcontrollers and demonstrating simple data communications using ASK protocol
Here’s the breadboard layout and schematic for the simple RF switch:
Modification - Low-Power Transmitter
Looking at the transmitter-side, it remains powered up and keeping the channel open even when there’s no button press. Perhaps we could only power up the transmitter when it is time to send a button press?
This turns out to be very simple - just alter the transmitter layout so the pushbutton is a power switch for the transmitter configred for continuous transmission. From the little testing I’ve done, this works just fine!
Credits and References
- 1 pair (2pcs)433Mhz RF transmitter and receiver link kit - this is the product I am testing with. Not bad at 0.80USD with free shipping!
- RF Module datasheet - not the exact unit I have, but close. This datasheet is more an application guide than technical spec.
- Wikipedia: short range/low-power devices
- Wikipedia: LPD433 - info about low power device 433 MHz/70-centimeter band standards.