Very low range on RF module

Hi,

I bought on ebay the cheapest pair of transmitter/receiver 433mhz.
I want it to send data from my room(transmitter is glued to window) to open area which is 15m from window.

I attached(not soldered because my solder is dead) a 20cm wire from IDE tape to transmitter ANT hole.
Then I attached to receiver ~15cm wire from IDE tape made from 2 pieces of wire to left down corner of PCB near small coil.

Arduino UNO with transmitter is powered by 5V 1A SONY charger.
Atmega328 with receiver is powered by 5V 1A SONY charger.
When i attached receiver to pole(about 15-18m from transmitter, only obstacle is window) it can’t receive data but when i touched antenna to ground(rocks), it receive it but after 20 seconds.
Code Transmitter:

#include <VirtualWire.h>
#include <Ethernet.h>
#include <SPI.h>

void setup(){
vw_set_ptt_inverted(true);
vw_set_tx_pin(3);
vw_setup(2000);
}

void loop()
{
      char *pageValue = connectAndRead(); //connect to the server and read the output
      Serial.println(pageValue); //print out the findings.
      vw_send((uint8_t *)pageValue, strlen(pageValue));
      vw_wait_tx(); 
      delay(3500); //wait 5 seconds before connecting again
    }

Code receiver:

#include <VirtualWire.h>
#include <IRremote.h>

boolean wlaczony = false;

void setup() {
  vw_set_ptt_inverted(true);
  vw_setup(2000);
  vw_rx_start();
}

void loop() {
  uint8_t odebrano[VW_MAX_MESSAGE_LEN];
  uint8_t dlugosc = VW_MAX_MESSAGE_LEN;

  if(vw_get_message(odebrano, &dlugosc)) {
    String wiadomosc;
    int i;

    for(i = 0; i < dlugosc; i++) {wiadomosc += char(odebrano[i]);}

    if(wiadomosc == "wlacz") 
    {
           //do something
    }
    else if(wiadomosc == "wylacz") 
    {
          //do something
    }

  }

 
}

I don’t paste the full code because i think it is good. When I enable reciever in the same room which is transmitter it’s work good.

Please help me.
Merry Christmas

@Refresh

You are getting poor range because of your antennas. Use a single piece of wire, 17cm long. It should be soldered. Ideally, the TX RX units should be mounted so that the antennas are parallel to each other, and in the same plane.

In the VirtualWire library all three pins are set, even if you don't use them. Set them all to your own pins in both the transmitter and receiver. Don't use the pins for the of SPI bus or chip select for the EthernetShield (EthernetShield uses 4,10,11,12,13). Use Arduino pins that you don't use for the VirtualWire pins that are not needed.

vw_set_tx_pin(...
vw_set_rx_pin(...
vw_set_ptt_pin(...

I have no problem with the cheapest transmitters, but I don't use the receivers that are tuned with a coil anymore. I buy receivers (for example on Ebay) with a crystal.

The transmitter glued to window is not better or worse than just laying around on a table. When you have glass with an invisible layer of metal (sometimes called HR glass), the window is much worse. Let the antenne be free, not close to anything.

The receiver antenna should not be close to a computer or a computer screen. Keep it at least 50cm away from it. Is that a metal pole ? Keep the antenna away from if possible.

Hi there,

I’ve been working on a project that uses these receivers: RF Link Receiver - 4800bps (434MHz) - WRL-10532 - SparkFun Electronics

And this transmitter: RF Link Transmitter - 434MHz - WRL-10534 - SparkFun Electronics

I was having a very short useful range of just 2 meters, I tried lots of antenna variants and also tried ramping up the voltage in the transmitter (to from 5V to 10-12V). Nothing seemed to work… until I started to play with the little screw in the middle of the receiver’s PCB.

I programmed the receiving Arduino to turn on the LED whenever it receives a complete message from the transmitter, at first nothing happened but when I started to turn the screw clockwise I reached a point in which all messages were received flawlessly.

If you continue to turn it clockwise it will stop receiving, so it seems that the key issue is to find the sweet spot in the receiver using that screw.

After a few googling I didn’t find exactly what that screw actually controls… I’m guessing it has to be some frequency adjusting.

hope it helps

KaSkA3eR: I attached(not soldered because my solder is dead) a 20cm wire from IDE tape to transmitter ANT hole. Then I attached to receiver ~15cm wire from IDE tape made from 2 pieces of wire to left down corner of PCB near small coil.

You have to be joking.... RF connections require a precise antenna tuned length & definitely a proper soldered connection.

chachi: Nothing seemed to work... until I started to play with the little screw in the middle of the receiver's PCB.

I programmed the receiving Arduino to turn on the LED whenever it receives a complete message from the transmitter, at first nothing happened but when I started to turn the screw clockwise I reached a point in which all messages were received flawlessly.

YES you are adjusting the RF tuning slug coil to get a peak signal level. This is well worth trying to match a particular TX/RX pair of modules but then they may not work well with other modules.

Some of the comments in this post indicate a lack of understanding regarding antenna lengths etc. The following Instructable link is based upon another older type of microcontroller (PICAXE) and different RF modules (DORJI) but the theory of operation is the same as it's all 433 MHz. You can ignore a lot of the examples of using old measuring tapes BUT look at the lengths required even using a single strand of wire. Also consider making a dipole using to bits of wire. Generally a single length of with for an antenna ahould be 173 mm or there abouts (YES down to the mm it is meant to me tuned to the transmitter frequency)) Don't just open this link BUT download the complete article http://www.instructables.com/id/433-MHz-tape-measure-antenna-suits-UHF-transmitte/

ENJOY & tell us all about your success

Worth mentioning that there are 2 types of receivers with these cheap 433 mhz devices.
Buy the receiver that has a crystal on the board, not the one with the coil which is a super regen receiver.
These things are terrible as the coil sets the frequency that the receiver receives on , and they drift, can be off frequency to begin with , and are very supply voltage sensitive .