Extending 433mhz RF receiver antenna range

I purchased this 433mhz receiver, http://www.amazon.com/SMAKN®-433Mhz-Transmitter-Receiver-Arduino/dp/B00M2CUALS I'm not using the transmitter from this package for anything, only the receiver.

There's a different (car alarm) transmitter on the ground, 5 stories below. I'm in an apartment building, 5th floor. The transmitter downstairs has the capability of sending data up here because the receiver (that it came with) catches it successfully. The SMAKN item above is for an additional aftermarket receiver I'm making.

I brought my Arduino device downstairs and had it working successfully. When I brought the Arduino back upstairs and tried testing, it no longer worked.

My assumption is that the receiver I purchased isn't strong enough to reach downstairs. I tried coiling up some basic hookup wire for an antenna, but didn't seem to affect anything.

What sorts of things should I try?
It's running on 5v, would increasing the power help?
Should I get a thicker wire for antenna?
Should I buy a newer more powerful receiver?
I'm open to trying whatever to get results, but looking for the most effective direction to walk in.

Thanks guys! :slight_smile:

A 17.3 cm piece of straight, solid copper wire makes a decent antenna for the cheap 433 MHz receivers. You really can't do much better than that!

The receiver needs 5V to run properly. Raising that may damage it.

The receiver you have is a superregen , which are about the worst receivers you can buy, sensitivity wise.
If a better antenna doesnt work, then try a better receiver like a superhet.

Great advice guys, thanks. I bought one of those superheterodyne receivers and also this (to try out) http://www.amazon.com/gp/product/B00NPZ3YUA .

I won't be able to test until Tuesday, but I'll try making a better antenna like jremington mentioned and the new hardware.

Hopefully it works!

Google the following for a bunch of easily built beam antennas: "yagi antenna 432 mhz". Look for ones with a wooden boom.

Paul

Google the following for a bunch of easily built beam antennas: "yagi antenna 432 mhz".

@Paul: Those cheap radios don't have balanced antenna terminals, so it is not clear that a yagi will actually improve reception, without some sort of coupler. Do you know of anyone who has done this and made it work well?

jremington:
@Paul: Those cheap radios don't have balanced antenna terminals, so it is not clear that a yagi will actually improve reception, without some sort of coupler. Do you know of anyone who has done this and made it work well?

No, I sure don't. However, a short Yagi would be an improvement over a short coil of wire. The OP should be willing to experiment.

Paul

I just received a 3.3v RF1100SE

I set it up like in the diagram here: Arduino : use a Texas CC1101 – Erwan's Blog ( and Nextcloud )

I tried a few code bits, including ELECHOUSE_CC1101 stuff and Panstamp.

Since the other 433mhz receiver was able to at least receive signals from my transmitter, I figured the new one would be able to receive them too. After adding some of the basic demo code, none of them picked up my transmitter.

What could be the reason behind that?
Is the 3.3v receiver an issue? (the other was 5v)

#include "EEPROM.h"
#include "cc1101.h"
 
// The connection to the hardware chip CC1101 the RF Chip
CC1101 cc1101;
 
byte b;
byte i;
byte syncWord = 199;
long counter = 0;
byte chan = 0;
 
// a flag that a wireless packet has been received
boolean packetAvailable = false;
 
/* Handle interrupt from CC1101 (INT0) gdo0 on pin2 */
void cc1101signalsInterrupt(void) {
  // set the flag that a package is available
  packetAvailable = true;
}
 
void setup()
{
  Serial.begin(9600);
  Serial.println("start");
 
  // initialize the RF Chip
  cc1101.init();
 
  cc1101.setSyncWord(&syncWord, false);
  cc1101.setCarrierFreq(CFREQ_433);
  cc1101.disableAddressCheck(); //if not specified, will only display "packet received"
  // cc1101.setTxPowerAmp(PA_LowPower);
 
  Serial.print("CC1101_PARTNUM "); //cc1101=0
  Serial.println(cc1101.readReg(CC1101_PARTNUM, CC1101_STATUS_REGISTER));
  Serial.print("CC1101_VERSION "); //cc1101=4
  Serial.println(cc1101.readReg(CC1101_VERSION, CC1101_STATUS_REGISTER));
  Serial.print("CC1101_MARCSTATE ");
  Serial.println(cc1101.readReg(CC1101_MARCSTATE, CC1101_STATUS_REGISTER) & 0x1f);
 
  attachInterrupt(0, cc1101signalsInterrupt, FALLING);
 
  Serial.println("device initialized");
}
 
void ReadLQI()
{
  byte lqi = 0;
  byte value = 0;
  lqi = (cc1101.readReg(CC1101_LQI, CC1101_STATUS_REGISTER));
  value = 0x3F - (lqi & 0x3F);
  Serial.print("CC1101_LQI ");
  Serial.println(value);
}
 
void ReadRSSI()
{
  byte rssi = 0;
  byte value = 0;
 
  rssi = (cc1101.readReg(CC1101_RSSI, CC1101_STATUS_REGISTER));
 
  if (rssi >= 128)
  {
    value = 255 - rssi;
    value /= 2;
    value += 74;
  }
  else
  {
    value = rssi / 2;
    value += 74;
  }
  Serial.print("CC1101_RSSI ");
  Serial.println(value);
}
 
void loop()
{
  if (packetAvailable) {
    Serial.println("packet received");
    // Disable wireless reception interrupt
    detachInterrupt(0);
 
    ReadRSSI();
    ReadLQI();
    // clear the flag
    packetAvailable = false;
 
    CCPACKET packet;
 
    if (cc1101.receiveData(&packet) > 0) {
      if (!packet.crc_ok) {
        Serial.println("crc not ok");
      }
 
      if (packet.length > 0) {
        Serial.print("packet: len ");
        Serial.print(packet.length);
        Serial.print(" data: ");
        for (int j = 0; j < packet.length; j++) {
          Serial.print(packet.data[j], HEX);
          Serial.print(" ");
        }
        Serial.println(".");
      }
    }
    // Enable wireless reception interrupt
    attachInterrupt(0, cc1101signalsInterrupt, FALLING);
  }
}

EDIT: There was an issue, but that has been resolved. Now I get data and the serial printouts.. but nothing specifically after I hit my transmitter.

Is the 3.3v receiver an issue? (the other was 5v)

It appears that the module inputs are not 5V tolerant. If you connected them directly to a 5V Arduino, the module is probably dead.

I didn't connect it to 5v; the other receiver was 5v.

I ended up actually removing the 3.3v connector from the Uno and now it seemingly works. It's not picking up the transmissions I'm sending, which is strange, but it seems to be doing something and receiving some sort of data. It randomly picks up some packets, but I don't know from where. They're not the ones I'm trying to send. The ones I'm trying to send aren't being caught.

Since the other 433mhz receiver was able to at least receive signals from my transmitter, I figured the new one would be able to receive them too.

No, the CC1101 chip has its own packet format. Those modules are intended to talk only to each other.

jremington:
No, the CC1101 chip has its own packet format. Those modules are intended to talk only to each other.

Really? Could you elaborate on that a little more?

The CC1101 radio chip can be made to operate in ASK mode, which is what those cheap 433 Mhz ASK radios use, but thats about the only similarity.
You would have to decode the CC1101 data packet format somehow, or try and find out what it is.
It would be far easier to simply get another RF1100SE module.