Creative Commons images are CC BY 2.0

Description: These wireless transmitters work with our 434MHz receivers. They can easily fit into a breadboard and work well with microcontrollers to create a very simple wireless data link. Since these are only transmitters, they will only work communicating data one-way, you would need two pairs (of different frequencies) to act as a transmitter/receiver pair.

Note: These modules are indiscriminate and will receive a fair amount of noise. Both the transmitter and receiver work at common frequencies and don’t have IDs. Therefore, a method of filtering this noise and pairing transmitter and receiver will be necessary. The example code below shows such an example for basic operation. Please refer to the example code and links below for ways to accomplish a robust wireless data link.

Note: Color may be blue or green, but they are the same module.


  • 434 MHz
  • 500ft range (given perfect conditions)
  • 4800bps data rate
  • 5V supply voltage


Recommended Products

Customer Comments

    • Hopefully this will help anyone who is as clueless as I just was.

      On OS X, in order to install the VirtualWire (or presumably any) library, you need to first quit Arduino. Then, right click on, select Show Package Contents -> Contents -> Resources -> Java -> libraries.

      Here you will paste in the virtualwire folder. Close the folder and reopen

      THEN you can choose Import Library… -> VirtualWire from within Arduino.

  • Update Arduino Library link. It gives the link to the Virtual Wire 1.5 version. The newest one is 1.14!

  • I noticed that this transmitter frequency falls within the 70 Centimeter Amateur Radio (Ham) band. And specifically within a frequency range that is used for linking repeaters together:
    Granted this is a low power transmitter at 32mw, but building a high gain antenna and/or having elevation (RC Plane) could interfere with Amateur Radio communications.
    If you know any Amateur Radio operators nearby, contact them to see if there would be any cause for concern. Or you could go to the FCC ULS system and do an advanced search:
    I think that you will find that most Amateur Radio operators will take a genuine interest in your project. Be prepared for the inevitable “you should get your ham radio license.” ;-)
    Thank you and 73!

    • 434 Mhz is ISM and as long as it’s under a 100 mw shouldn’t it be just fine?

      • Actually, as far as I can tell, 434MHz is ISM only in ITU Region 1, which is Europe and Africa. I don’t think any unlicensed transmissions are allowed on that band in North America.

    • If you are concerned about FCC compliance, just get your Ham radio license. It’s an easy enough test and Morse code is no longer required. Then you can work comfortably under Part 97 rules, and add on a better antenna for the range.

    • That is correct, doubt that interference would be of much concern, at least around where I live considering how much noise there is on 2m/70cm + the usual operations of ham radio in the region. I wonder exactly how well these things would work where I live, probably not that well, I should get some and see.

  • Can you read the signal strength out of these so you could use them to get a bearing on the transmitter?

  • What’s the simplest way to convert a high/low signal to serial so I can send it with this transmitter. Want my transmitter circuit to be as physically small as possible, so don’t really want to use a whole microcontroller

  • Could I use this to send Morse Code to a handheld radio that receives 434 MHZ? If so how?

  • Does anyone know about getting SNR or signal strength from this? Im thinking about using this for a project but I need to get the signal power. Thanks.

  • Build a remote control car from ground-up without a microcontroller! In this series of videos, we will outline a step by step tutorial on building a remote control car (using RF transmitter/receiver like this one here).

    In our first video of this series, we will look into controlling LEDs using an encoder/decoder pair. The schematics is on our Facebook page:

    This video is live on Youtube:

  • Build a remote control car from ground-up without a microcontroller! In this series of videos, we will outline a step by step tutorial on building a remote control car (using RF transmitter/receiver like this one here).

    In our first video of this series, we will look into controlling LEDs using an encoder/decoder pair. The schematics is on our Facebook page:

    This video is live on Youtube:

  • Build a remote control car from ground-up without a microcontroller! In this series of videos, we will outline a step by step tutorial on building a remote control car.

    In our first video of this series, we will look into controlling LEDs using an encoder/decoder pair. The schematics is on our Facebook page:

    This video is live on Youtube:

  • Is it possible to send audio over this transmitter? It doesn’t have to be super high quality, but I’d like to be able to send audio a couple hundred feet without something as pricey as a bluetooth or XBee chip.

  • Is this able to send a pulse without a micro? I have a sensor that just send pulses (0 - 5V) and I just need to conect this to a transmitter and recibe it with an Arduino. The function is like a doorbell I think.

  • is this usable with beaglebone black?

  • Has anyone else experienced interference from lightning with these? I’ve been using this for the transmitter for a weather station for the last few months with pretty good range/reception, but last night during a storm and even quite a bit after I was unable to receive any data. Hours later it worked fine again.

    I know lightning generates significant RF noise, but I’ve never actually seen it knock out a radio completely.

  • I recently bought this nifty set of outlet remotes from Amazon.
    I need to control the outlets with an RF transmitter like this one. The remote outlets have a “learn” function so I’m wondering if I can get this and make up a random code and make the outlet relays learn it. Does anyone have a suggestion? BTW, I do not have access to the remotes that originally came with the set, so I’ll need to use a transmitter like this. Thanks!

  • ok, I spent a day getting this working, thought it might help to lay out what worked for the next person.

    My config can be described like this:

    transmitter connected to an arduino pro mini 3.3v, 8 mHz Receiver connected to an arduino uno redboard from the inventor’s kit.

    The final wiring config

    Pro mini

    • transmitter connected to 3.3v, gnd and signal(pin 10)
    • I didn’t add an antenna line.


    • receiver connected to 5v, gnd and signal(pin 9)
    • I didn’t connect the extra grounds, or the antenna line here either.

    the KLP walkthrough did not work for me, and neither did the AVR tutorial. I think this may be because it relies on the rx/tx pins used by the usb serial port, and I was most likely corrupting the signal while troubleshooting.

    The did work, but with slight modifications. I had to change from pin 23 since my Uno only goes to 13, and I randomly selected pin 2 (this was a mistake, I’ll get to why below). I still wasn’t getting a transmission across, so I dragged out the oscilloscope. I measured signal on pin 9, and it was only getting to about 0.5 volts on the “high” signal. I decided to try a different pin, 11, as it’s got the tilde next to it. Suddenly I had it working, but only partly. I’m guessing that PWM (pulse width modulation) is the difference, so selecting pin 2 (no PWM capability) was an unlucky choice. At this point, switching pins is nothing more than a cargo-cult thing for me. I’m not confident that it was the solution, but I believe so. Can anyone help me prove/disprove that conclusion?

    So now I was getting output, but instead of the correct characters from the test message, I was getting their integer equivalents. I modified the letsmakerobots example as seen below. I marked the lines I changed with “mod:tim”:

    char temp=0;//mod:tim:added a temporary character    
    for (i = 0; i < buflen; i++)
    {   temp=(char)buf[i];//mod:tim:convert uint to char
        Serial.print(temp);  //mod:tim:changed buff[i] to temp here

    So now I have a decent connection between an arduino uno and an arduino pro mini, using VirtualWire-1.20. As far as I can tell, nothing special needs to be done to talk between an 8mhz and a 16mhz arduino. Next task is setting up 315 receiver/transmitter pairs to make the communication go both ways. Wish me luck :)

    edit:correct inaccuracies.

  • With 5v I can’t seem to get any better range than across the room. My goal is to have this transmitter outside the house and a receiver inside the house, and right now using antennae on both the receiver and transmitter, they seem to fall out of range. Is this what I should be expecting of the max range for these using 5v?

    • I’m still curious to hear what other people get as far as range and if they’re using antennae. But after reading up, I learned that a straight antenna is what you’re supposed to use. One of mine was curved and after straightening it it increased the range enough to reach outside the house.

      • The skimpy datasheet doesn’t say anything about the antenna. Can I assume 50 Ohm output? Will it directly drive a ¼ wave whip? What sort of antenna are you using?

  • Would it be possible to plug this directly into the PWM output of a sonar to wirelessly transmit a sonar’s data?

  • Is there a difference between the 315MHz and 434MHz versions of this? (Not in the physical product, but in the range, quality, etc.)

  • Do these transmitters come with a license?

  • Can i make a kind of “RF proximity sensor” with this? Example: the transmitter travel with me and when i get close to a receiver(~10 or 15 meters) an action is triggered. Is this possible? Should i use this pair or go for an Xbee solution? Thanks!

  • So I picked up a couple of theses today for some simple projects for learning. I will be using Pic Micros and I have a couple of questions about what peripherals I need on the Pic (SPI, USART, UART, Etc…) or can I just use a normal IO pin with the input/output formatted via software(Manchester). I would like to use the simplest PIc possible at first then build upon that in the future. Any help and comments are welcome…Thanks.


  • Do you have to use virtual wire could you use regular rx and tx lines or software serial?

    • These are extremely simple transmitters and receivers that require you to do your own modulation (rapidly changing the signal from high to low) and won’t work without it. Since async serial is kind of modulated it might work, especially if you stick a number of throwaway characters on the front of a packet to allow it to sync up before the real data starts. But these really prefer a “balanced” signal such as Manchester encoding (the time spent high and low is equal), which serial doesn’t naturally provide.

  • If i send a 600hz pwm signal from an arduino to the “data in” pin will it transmit a 600hz tone? I’m trying to make a cw fm balloon beacon? Thanks

    • That should work, as long as 1.6ms isn’t too low of a modulation rate for the TX (it can be as high as 4800 Hz so you might need a higher tone). Let us know how it goes!

  • I would like to know a solution to the issue i am facing. If, let’s say, I need to supply this transmitter module (434MHz) a higher voltage (e.g. 9V) in order to increase the transmission range or distance, then do I also need to supply the data input to the transmitter to be the same level as the supply voltage. Because, I am using arduino development kit which gives out only 5V serial data from tx pin.So, do I need to make the tx pin output to be amplified so that the transmitter data input voltage meets the transmitter supply voltage which may be greater than 5V (e.g. 9V)?

  • 420-450 mHz is allocated to: RADIOLOCATION,, Amateur, S5.286, US7, US87, US217, S5.282, US228, US230, G8, G2, NG135. Private Land Mobile (90), Amateur (97) .

    In the US… I think it is fine in Europe and perhaps other countries. No mention of 315 mHz, so one would assume it is free for all. It may be interesting if everytime your neighbor fires up their HAM radio that the lights in your house turn on or off. It would be nice to offer encoder/decoder chips too. Like Holtek HT12E and HT12D.

  • Is this transmitter undirectional or omnidirectional?

    • As it doesn’t come with an antenna, that depends on what you supply for one. The simplest antenna, a vertical 6.5" wire, will be fairly omnidirectional.

  • Matt, also KC0MKS Jeff de w0it Louis. I think that this transmitter as configured has a big spike on the first harmonic, but it could be that my receiver picks up on the harmonics. I may get it into work where a friend has access to a spectrum analyzer that gets up that high in mhz. The receiver is very wide and noisy from my limited tests. I spent the day looking at low pass filters. It would be sweet to have something really low power that would do the link thing. The thing works pretty well for sending morse short distances. I am looking for a locally viable morse setup that is this sort of cheap. ( I used a version of this from Seeedstudio .

  • Does this need to be connected to a processor in order to transmit properly, or can it still transmit data by simply being hooked up to a device that sends a signal to it? For example, a motion sensor sending a high signal to the transmitter to be sent to a receiver on the other side of a room.

    • The quick answer is no. These are extremely simple transmitters and receivers that effectively just put the input onto an RF signal. Because an RF signal can’t sit at a DC level (the receiver needs something changing to lock on to), you must modulate the input signal (repeatedly change it high-low-high etc.), and be prepared to decode that modulated signal at the receiving end. Because it naturally has a number of transitions, you can sometimes get serial data across links like this, but it’s not guaranteed and other “balanced” modulation schemes designed for RF tend to work better. As you can see it takes a fair bit of work to use these modules; the more expensive modules like XBee handle all of this for you. =)

      • Thank you very much! I’m pretty new to a lot of this, so I appreciate you getting back to me about it with a good explanation.

  • What is inside this metal thing?

  • Ok, I’m very new to the fm band. So is it possible to use this to transmit a video signal? It is currently analog (composite) or is this hi-lo only? I’m trying to set up a small composite transmitter and receiver that can go at least a hundred feet or so. Any ideas?

  • 5v power suply, conected from tx pin of pic16f886 to transmit and at antenna pin there are 0v. What is this?? litle strange

  • Is it possible to use an ATtiny45 for either the xmitter or receiver?

  • Does anyone know what kind of range these have in an outdoor area with minimal obstructions?

    • You will probably be able to get a couple hundred feet of range with a proper antenna and minimal obstructions.

  • You should have the “Arduino Library” point to Mike McCauley’s site so that you can download the latest version rather than pointing to the old VirtualWire 1.5 version (which doesn’t compile out-of-the-box on Arduino 1.0).

    At the time of this comment, the lib is up to 1.9 and compiles on Arduino 1.0 out-of-the-box.

    Another good link is this one for a wireless RF temperature sensor project using two Arduinos. He doesn’t use VirtualWire though it is informative.

  • Why are the connection pins so long, and can I cut them?

  • Hi,

    Im new to this and i am wondering it says that this product will receive fair amount of noise. So is the noise filtered using another hardware or can be done through arduino code?


  • has a code example for mbed sending characters from this transmitter to the matching receiver.

  • Would I be able to use say 10 of these with 1 receiver? I want to have “nodes” transmit data from separate sensors all to a single “base” - any other suggestions if this doesn’t work?

  • Could I send a one-bit (on/off) signal without encoding, virtualWire? Basically, without a uC. I just want an LED to turn on connected to the receiver when a button is pressed on the transmitter. Is this possible?

  • Datasheet says 1.5~12V supply voltage…

  • When will these be back in stock?

    … I need to hack cars, weather stations, and garage doors ASAP!

    No, Like seriously… i need a few of this…

    I hope your not dropping these from your stock because the Arduino crowd (sorry…Bah, not really) can’t send 2 bytes without 100 lines of error correction…

    Then again, in commercial products you “never” see these used as a virtual wire as in: PrintF(“sensor value is: U%”, Sensor);

    people should not think of these as wireless links.. actually these are the RF version of IR (IMO)…short, burst messages, using pulse possition or pulse width…

  • lawrah, the only frequencies that don’t get clobbered underwater are at the opposite ends of the electromagnetic spectrum: VLF radio (in the tens of KHz), or blue-green light – preferably laser light. These freqs. are how the Navy communicates with subs underwater. You can now find relatively cheap blue laser pointers that might do the trick for you.

    You might also experiment with simple piezo transducers (cheap!) to implement an acoustic link. Just be sure to put them in water-tight housings ;-)…

    Good luck! (And, OF COURSE everyone on this forum should get their Ham ticket – but that’s another story.)

  • is this getting retired? Hope not!

  • are these ever going to be back in stock?

  • You get what you pay for holds true for this little gem. Thinking that an xbee would be overkill to transmit a 4 byte message, I decided to try this product. I purchased one of each flavor. Both 315 and 433 Mhz radios produce nothing more than a continous stream of noise that no amount of software, checksums and programming can reliably filter out. I am lucky to get 1 good 4 byte message out of 20 transmits.

    • I don’t experience any of the problems you describe. Sure 433 is an open frequency and subject to a lot of noise and other transmitting devices but it seems strange if you only get one out of 20. I transmit data (70 bytes four times a second) about 25m with antenna only on the receiver and in a couple of days I have maybe 2-3% loss.
      Of course there’s a lot of environmental parameters to take into account here. You don’t explain how your setup is but mine is an ATtiny85 programmed via an Arduino Uno with VirtualWire as transmitter and an Arduino Mega 2560 as the receiver and as stated before, it works fine.

  • None of the example codes works. I bought a transmitter and receiver and I have two Arduinos to connect them. Any ideas ?

    • Make sure that both Arduinos run at the same frequency (if you’re using a 8MHz as transmitter and 16MHz as receiver you must compensate for this in the code)
      Check out this site

      • Wow. That’s new for me. I have two Uno’s, one is a SMD edition. What do you mean with “ running at the same frequency”? By the way, I’ve tested the transmission of the RFs with an oscilloscope and they appears to be working fine. Thank you very much in advance.

        • I just assumed you used the VirtualWire-library of Arduino, do you? :P
          Both versions of Uno have a 16MHz oscillator so thats not the problem. But if you were to use lets say a LilyPad or 3.3V Pro Mini on one side, it uses 8MHz oscillator and the timing would be all wrong. If you use the VirtualWire-library that is :)
          Follow this guide examples included

          • How would you compensate for this in the code? I’m using an Arduino Duemilanove for transmitting and an Arduino LilyPad for receiving. Should I lower the frequency of the Duemilanove to 8 MHz so it matches the Lilypad?

          • Thank you man. But I´m stuck. I´ve followed all the example codes on VirtualWire, without VirtualWire and nothing.

  • Hm… would this by any chance be able to transmit (and receive) data underwater?
    I should buy a few and test ‘em out.

    • Look up underwater acoustic modems. They aren’t exactly consumer grade at the moment (big, power-hungry and expensive), but they can be replicated cheaply for hobby projects. Industrial models are typically good for 5km range and run at 5-300 baud/s ($2000+ for a pair of transceivers).
      If the water is clear and the distance is short, the best option is light communication. You can use standard IR remote electronics, substituting IR diodes with lights and photo-resistors (some amp and filtering circuitry may be required).
      Bottom line - don’t go with radio or plain infrared - water will block'em.

      • Red is attenuated 100 times more than blue in pure water. Blue will be scattered more, but for an omnidirectional system that would be fine. Blue LEDs ftw.
        Also anyone know where I can get the 318mhz version of this module (TWS-BS-5)?

    • Assume that radio waves will only transmit up to about a foot underwater. These are really not going to get you much mileage for underwater transmission!

  • Great. A whole link for less than 10$ :) I’ve got to check these out. Added to cart.

Customer Reviews

5 out of 5

Based on 1 ratings:

Currently viewing all customer reviews.

2 of 2 found this helpful:

Great, inexpensive, easy

Paired with the receiver and two Arduinos, I went from knowing nothing about coding transmission signals to getting a wireless transmission between them; all within an hour. Works flawlessly with VirtualWire library. Reliable, easy to use. Very pleased with it!

Support Tips

Testing the RF Link transmitter

To ensure that the RF links are working, we recommend trying to get the RF links working with our example code first. However, I have tested the RF modules with the VirtualWire librarie and Arduino 1.0.6 IDE software. I was able to get it working with this library => VirtualWire 1.20. This library worked with both Arduino 0023 and Arduino 1.0.6.

RF Links

The example code used with the an Arduino microcontroller explains the setup for each RF Link. This is the setup which will work with either RF Link frequency band.

Transmitter Code (4 pin module)

Pin 3 of your Arduino should connect to pin 2 of your RF Link Transmitter 434MHz. Button is connected to the transmitting Arduino on pin 8 separate from the RF Link Transmitter. When a button is pressed on the transmitter, the corresponding LED should light up on the receiver and a character will be sent.

Receiver Code (8 pin module)

Pin 2 of your Arduino should connect to pin 2 of your RF Link Receiver 434MHz. When the button is pressed from the transmitter side, the corresponding LED on this side will light up on pin 8. One thing to note is that the associated LED will not light up on the receiver end if you do not have the associated character to check if it is what is received. An example is if you send a string of characters “Pin 4,” the receiver LED will not light up when the characters “Pin ” is sent. It will only light up when it sees the number “4”.

Note 1: It seems like when the receiver code is compiled with Arduino 0023 that the characters sent show a character and a space right after it in the serial monitor. When compiled with Arduino 1.0.6, you get an hex value and a space that is related to the ASCII character that was sent. You can verify it by checking the ASCII table and it will show that the hexadecimal value that was sent is indeed the character that was sent from the receiver. This has something to do with the shift in versions from Arduino’s 0023 to the Arduino 1.0 and above. Something was modified in the compiler or how a function was defined in the Arduino IDE.

Note 2: The RF Links are cheap wireless modules so you might get some intermittent data transmission/ corrupt data after a certain distance. They have a lot of noise. A better and more secure option might be to use the XBee Series 1 Wireless Modules.

Note 3: I am aware that the Virtual Library is EOL and that the RadioHead library supersedes it. I found out in the middle of updating the code. You shouldn’t have a problem with the library though even though it is EOL.