I have been playing with simple transmission and reception of a 12 byte ASCII message between two arduino nanos. I have been using a 433 MHz receiver/transmitter pair with the VirtualWire library, with some success.
I chose the 433 MHz units for their simplicity and their low price tag. My research before purchasing them, was that these modules would be able to provide line of sight range of 500m. The simplest recommended antenna length is ~17.3 cm of any smallish wire. I soldered (to both TX and RX ) and cut to length a bit of solid wire separated from some CAT5 cable I had.
I created a simple transmitter sketch to repeatedly send the same message. I have the receiver constantly listening and blinking the onboard led each time a message via VirtualWire is received. Everything works well and quite reliably in my home office.
I took both units outside for some line of sight range testing. I placed the transmitter on a small outdoor table about 2 ft tall. I carried the receiver (taking care to hold it away from my body as much as possible) away from the transmitter watching the LED blink. The LED consistently stops blinking about 120ft/~38m from the transmitter.
This was quite disappointing. I'm constructing a moxon antenna for directional use, but I am concerned there is something more basic I'm missing here.
There are numerous results on google and youtube of people getting 100, 200, or 300m with a simple length of antenna wire.
I've tried increasing the voltage to the transmitter from 5v to 8v with no change in range. I've raised and lowered the VirtualWire bitrate from 300bps to 2000bps with no change. I've swapped completely different branded RX and TX modules with no improvement.
I love the low price and simple nature of these modules, but clearly I could use some expert advice.
There are many versions of those low power 433 modules.
The cheapest versions are only 1 mw and what you are seeing is pretty typical.
To get better range you will need either the 12 or 25 mw versions, which are claimed to be good for 1000m
You can improve the range also by soldering a proper SMA connector to the modules and connecting a better
antenna.
Thanks for the ideas. I will likely try with the double length antenna first (easiest to try). Followed by pushing the voltage more.
I do have some SMA connectors that I will try on a module to see what other antennas do.
I did not realize there were different mw versions. The details on the ones I ordered were pretty minimal. I'll likely see if I can get some of the higher powered versions and see how that goes. I'm getting the idea that moving to a 25mw version might be the best bet for getting the distance I'm interested in.
You need to tune your antenna to match the frequency. Using a simple measured length gets you in the right ball park but not spot on. The best way to tune it is to use an SWR meter. And trim the antenna to get the minimum reading on the meter. This is on the transmitter, for the reciever trim the antenna for maximum recieved signal strength.
The transmitter I have been using apparently does not operate correctly (or at all) at voltages over 5v. The matching receiver it came with will not detect the transmissions at least unless I power it at 5v.
I swapped the transmitter with another 433MHz transmitter from another vendor. I was able to run it at 12v and wow did it make a difference in the transmission range. Previously I was getting maybe 10 ft indoors through one wall. Now I cannot find anywhere in my house where it will not receive the signal!
I will test tomorrow outdoors to see what the current range is. Apparently one type of TX I have do not like being driven at more than 5v.
As I'm just getting starting with some of this, not sure if I know enough to warrant getting a SWR meter quite yet. I'm think I am at the "know enough to be a danger to myself and those around me" stage right now.
Most RF modules have several factors that affect range.
I use the RFM12B from Hope RF and after much experimenting I can generally get good control over the range.
In general the factors you need to consider is the transmitting power, receiver sesitivity and baud rate.
Many modules like the RFM12B have software adjustable TX power, and adjustable RX sensivity. The factory default settings do not allow maximum range and typically I see 30-50M with a simple wire antenna. Maxing the TX power and reducing the RX sensitivity threshhold, I see over 300M of range.
The other factor is baud rate. Lower your baud rate for maximum distance. Some of the cheapest modules often only get to about 1200Baud. I find I can get up 4800Baud on the RFM12B at maximum range.
Finally some tricks to getting a reliable message through is ensure your message has suitable preamble and in some cases postamble. I send 2-3 bytes of oxaa or ox55 as preamble to allow the receiver to set the gain and sync clock. a byte at the end ensure the receiver does not switch off prematurely and cut off part of your last byte.
And if you use a good antenna (diapole with 1.5-5db gain) you can often increase your range 10-20%