3

Background

To learn about radio, I started with the simplest module I could find: a simple 433 MHz receiver and transmitter module pair, where you can use RadioHead ASK to bit-bang a signal on the MCU.

I purchased the most widely available module pair on eBay UK. The receiver has the marking RX470C-V01 and the transmitter has no markings. Curiously, this module pair is not the most common on eBay US (so it doesn't feature heavily in videos and tutorials on the Internet).

RX470C-V01

The most commonly used 433 MHz module pair demonstrated on the Internet actually seems to be the pair with the markings, FS1000A and MX-RM-5V 080408 (e.g. Using Inexpensive 433 MHz RF Modules with Arduino). This seems to be the most available pair sold on eBay US.

FS1000A & MX-RM-5V 080408

Problem

I've been struggling with reliability the RX470C-V01 module pair (the first photo in my question). Often the receiver doesn't get the message from the transmitter. Taking a look at the received signal on the oscilloscope, it doesn't match the transmitted signal very well (some waves are longer/shorter/missing when comparing the two). Reliability degrades further when separating the transmitter and receiver by a few feet. I have tried making my own antenna out of wire and using various external SMA antennas, but this didn't improve reliability and sometimes made it far worse.

The particular eBay listing I purchased from did not specify which antenna was for which module, so I made what I thought was a good guess and soldered the wiggly end of the short antenna to the RX module with two holes. To me, it just looked like that was the right way round. I'm not exactly sure why it has two holes, so if someone could explain this for me, that would be helpful. The longer antenna, I connected to the transmitter (one hole/via for the antenna).

RX470C-V01 antenna hole

What didn't help, is that the shorter antenna is often shown in eBay listings with the receiver, which tells me that many sellers don't really know either (hardly surprising).

RX470C-V01 wrong antenna match

I'm wondering: Why is the end of the shorter antenna wiggly? Why does the the receiver module have two antenna holes/vias?

Edit:

As requested, here is the waveform. I took a picture of the beginning and the end. It's generated by RadioHead ASK, which bitbangs on IO. There are two MCUs and 4 modules; each MCU has a TX and RX module. The first MCU is ESP8266, and the other MCU is an ATtiny84 using an external 8 MHz crystal.

ESP8266 TX waveform start:

Waveform

ESP8266 TX waveform end:

Waveform

ATtiny TX waveform start:

Waveform

ATtiny TX waveform end:

Waveform

ocrdu
  • 9,195
  • 22
  • 32
  • 42
Nick Bolton
  • 2,083
  • 10
  • 36
  • 5
    I've successfully used 433 MHz modules but I didn't buy them from ebay (or any of the other hobbyist sources) and, importantly, they came from a reputable source that provided a fairly decent data sheet and has a quality assurance system in place. You pay more of course but, you don't get the problems. "How much do you value your time" is something that maybe you should ask yourself. – Andy aka Oct 24 '22 at 13:37
  • I value my time highly, and so far electronics has taught me: if you buy a part without a datasheet, your ability to learn will be inhibited. I actually bought these modules a long while ago and at the time, couldn't figure out why they weren't working well. It's been gnawing at me in the back of my mind ever since... but perhaps that's another lesson; to learn when to give up on components that are a waste of time. – Nick Bolton Oct 24 '22 at 13:55
  • "reputable source that provided a fairly decent data sheet and has a quality assurance system in place" -- As time goes on, I've been preferring Farnell here in the UK, and occasionally Mouser in the US. These days, I only tend to use eBay if I don't care about quality (as you're almost guaranteed for it to be poor). In hindsight, something like the FM-RTFQ/FM-RRFQ would have been a much better idea... https://uk.farnell.com/rf-solutions/fm-rtfq1-433/rf-module-transmitter-fm-433mhz/dp/1200970?st=433%20module

    – Nick Bolton Oct 24 '22 at 14:11
  • 1
    Yes, the modules I used came from RF-solutions but it was a different model but still used FM. Of course, to get the best out of any simple module you need to play a few tricks with the transmitter to get max performance from the receiver. Did you send a data preamble? Did you use a CRC bye? – Andy aka Oct 24 '22 at 14:20
  • I remember in past analyzing the Microchip keyloq software for deserializing received signals from these transmitters and identifying that it sometimes receives the wrong signal or miss completely the signal being transmitted. After some digging and debug I found out a bug on the implementation of the keyloq receiver routine to decode. There was a timer count overflowing. I bet that some of the receiver processing is being done wrong and may be causing the issue. Or you can only be victim of neighbors using their remotes and you are just receiving neighbors' codes – Hernandi F. Krammes F. Oct 24 '22 at 14:32
  • @Andyaka > "Did you send a data preamble? Did you use a CRC bye?" -- Yes, both when I wrote my own protocol/datagram and when using RadioHead ASK (which has it on by default, but you can turn it off). Are you suggesting disabling those features to minimize the message length, or do you recommend keeping them on to prevent garbage messages? – Nick Bolton Oct 24 '22 at 14:46
  • @HernandiF.KrammesF. Luckily I'm not too close to neighbours, but I bet my house does have a lot of chatty 433MHz devices. – Nick Bolton Oct 24 '22 at 14:47
  • 2
    @NickBolton I recommend a preamble and a CRC. – Andy aka Oct 24 '22 at 14:56
  • 1
    Please show the waveform you are attempting to send. In addition to a preamble and checksum/CRC you also need to ensure that the signal is DC balanced. – Kevin White Oct 24 '22 at 15:58
  • @KevinWhite > "ensure that the signal is DC balanced" -- Could you elaborate? – Nick Bolton Oct 24 '22 at 17:56
  • Microchip provides a very cool Applicaiton note and implementation example for Keyloq, that you can enjoy for doing deserialization of machester encoded messages. Fixing the bug, it works very reliable – Hernandi F. Krammes F. Oct 24 '22 at 18:07
  • @KevinWhite Question updated with waveform. Does look a bit rough. – Nick Bolton Oct 24 '22 at 18:14
  • ensure that the signal is DC balanced This means that the DC average of the signal should be 1/2 the logic high voltage. Typically you'd use a DC-balanced code to send the data, with a preamble used to bring the receiver's moving average reference voltage to about middle of the signal range. That way the receiver will have most noise margin. The receivers are usually very simple: a demodulator, moving DC average filter, and a comparator between the average and the demodulated signal. Your signal already looks DC balanced though since it's synchronous FSK. – Kuba hasn't forgotten Monica Oct 24 '22 at 19:35
  • 1
    The Radiohead library does transmit a DC balanced signal as well as suitable preamble and CRC. So that's a good start. – Kevin White Oct 24 '22 at 23:32
  • 1
    I'm using those modules successfully to transmit data with a similar protocol to that done by the Radiohead library. The very cheap modules with super regenerative receiver do not perform as well. – Kevin White Oct 24 '22 at 23:35
  • 1
    @Andyaka > "How much do you value your time" -- Most valuable reminder I've had in a while. I keep saying this to myself when I'm learning; am I really getting the most out of my time by doing this? – Nick Bolton Oct 25 '22 at 14:07
  • A common problem with those is that their oscillators are inaccurate/drifty, so that one unit is barely within the RX passband of the other. Sometimes you can improve that with careful thermal control (heatsink/shielding). – hobbs Oct 27 '22 at 14:59

2 Answers2

6

Consider alternatives

"How much do you value your time" is something that maybe you should ask yourself.

-- Andy aka

These cheap radio modules are not particularly reliable and don't come with a datasheet. They're also very sensitive to any noise on the 433MHz range, so in terms of a learning experience it can be intermittent and counterproductive (unless you want to learn how troublesome cheap modules can be).

Lesson: When buying a part, always make sure there's a datasheet. If you want a reliable part, order from a reputable electronic components supplier (i.e. not eBay or a hobby site).

For anyone who wants to learn how to use radio, a more modern low cost module (e.g. LoRa, RFM69, etc) would most likely provide a much more productive learning experience.

For 433Mhz, I found that LoRa, while designed for long range, worked really well for short range, and it took almost no time to implement. Don't let the SPI interface put you off, LoRa is really easy to implement with libraries, e.g. #include <RH_RF95.h> (RH_RF95) from the RadioHead library.

///                 Arduino      RFM95/96/97/98
///                 GND----------GND   (ground in)
///                 3V3----------3.3V  (3.3V in)
/// interrupt 0 pin D2-----------DIO0  (interrupt request out)
///          SS pin D10----------NSS   (CS chip select in)
///         SCK pin D13----------SCK   (SPI clock in)
///        MOSI pin D11----------MOSI  (SPI Data in)
///        MISO pin D12----------MISO  (SPI Data out)
RH_RF95 rf95;

Simple example code can be found in the Arduino IDE menu (File > Examples > RadioHead).

RadioHead RF95 examples

You can also visit the "RF Transceivers" category of your favorite electronics components supplier (probably under something like "Wireless Modules & Adaptors > RF Modules"). It's a bit pricer than eBay, but you get the benefit of quality control and datasheets.

If you do insist on purchasing from eBay, prices for LoRa modules are almost the same as the less reliable 433MHz modules (though almost certainly they're cheap knock-offs with no quality control). Actually though, I have found that eBay is sometimes much more expensive than proper electronics components stores.

LoRa vs cheap 433MHz module

Swap the antennas

If you absolutely must use the RX470C-V01 or similar...

With the lack of a datasheet or any useful documentation, I resorted to digging around on the Internet. It became apparent that it's the receiver that actually needs the longer antenna. I sifted through a few eBay listings for the RX470C-V01 and eventually found one that states which antenna is for what module.

RX470C-V01 antenna instructions

After swapping the antennas (as shown below), I found that reliability improved (but it's still not bulletproof).

RX470C-V01 with swapped antennas

Caveat: It is possible that some other factor that changed my environment, and I'm aware that 433MHz is quite a busy frequency.

Nick Bolton
  • 2,083
  • 10
  • 36
  • 2
    Mr. Bolton, I've built a number of 433MHz radios, and those modules are really pretty crappy. An FCC compliant radio, fully optimized with helical antenna like that should go around 300 meters (best case / open field), and 150 meters worse case. Most modern radio ICs have all the software integrated into them and basically require no RF firmware. Check out the https://www.ti.com/product/CC1310, CC1310, for a super modern / RTOS driven approach to a sub-GHz design. I've bit banged $0.05 / TX / RX ICs at 433MHz for consumer, and it's a lotta software to bring up a bare metal system. – Leroy105 Oct 24 '22 at 19:08
  • Absolutely, of course I'd never use bit banging on a cheap 433MHz module for an actual product, this was purely for learning purposes but to be honest I'm not sure it was worth the experience. The CC1310 looks great for product development, so I'll have give that part a try. – Nick Bolton Oct 24 '22 at 19:34
  • 1
    What’s wrong with bit banging? There’s plenty of commercial products that do this. Radiohead uses a fairly good modulation method but you need to consider these modules are cheap n cheerful and you have to expect to resend data as there is plenty of interference on 433MHz. – Kartman Oct 25 '22 at 05:33
  • "What’s wrong with bit banging?" -- In my experience, it's the least efficient way to send data; I only bit-bang if I absolutely have to. What commercial projects can you think of?

    – Nick Bolton Oct 25 '22 at 13:59
  • The CC1310, if you can accept, that you are not really building a bit-bang / C approach, setup the tasks in the RTOS, and use all of their libraries -- I cannot imagine a faster way to bring up a commercial product. I spent 1 year coding raw-metal C, to build a commercial product using the absolute cheapest ICs. Using the CC1310, it would take 2 months tops... – Leroy105 Oct 25 '22 at 20:40
  • For professional use on the 433-434MHz band, you will not likely get any reliable radio connection using AM, nor when using spread spectrum. Because these are license-free bands, disturbances are very likely to be present. Furthermore, in Europe, you are severely restricted in terms of output power on these bands. You can utilize the 434MHz band @ 10dBm ERP if you use narrowband FM. Many of the dirty details can be found here: https://electronics.stackexchange.com/questions/622180/etsi-standard-for-433-mhz – Lundin Oct 28 '22 at 11:44
  • Based on that, I remain unconvinced that LoRA can actually be used on 433-434MHz in Europe or anywhere else in the world. I've raised these arguments with the silicon vendors in past evaluations of LoRA and nobody seemed to know how to use it to produce a legal product on the 433-434MHz band. The eval boards I received were non-compliant, but then eval boards are explicitly exempt from RED directive etc. You cannot barf out a signal with an occupied bandwidth of some 1-2MHz on this band and think you have a legal and/or working product. – Lundin Oct 28 '22 at 11:46
  • I'm in the UK. I have many consumer electronics in my house which use 433MHz. I find them to be generally unreliable. However, LoRa at 433MHz seems to always cut through that noise. For me, I've found that any 433MHz device I implement (other than LoRa) is quite unreliable. Maybe the 433MHz band is particularly noisy in my house though, since I have a lot of devices. That said, many of the LoRa modules sold here seem to be 868MHz (I have some), which also works great... but I'm not sure if there are many 868MHz devices in my home. – Nick Bolton Oct 28 '22 at 15:33
2

I've used exactly these modules for the simplest possible remote control: I wanted to switch on a solid-state opto-coupled mains relay (to illuminate an "On Air" lamp in a radio studio). My approach was very crude, running an NE567 oscillator at the transmit end, at about 2 kHz, and then using another NE567 as a tone detector at the receive end. When the output of the '567 at the receiver went "low", I energised the LED inside the solid-state relay, switching mains to the "On Air" lamp. Both transmitter and receiver were run from 7805 regulators to ensure frequency stability.

This simplest approach worked flawlessly over about 17 metres and through two walls!