I decided the other day that it would be a good idea to spend 99p on a 433MHz transmitter and receiver pair from eBay. Not to use, but to take a look and see just how bad these modules are (and I expected them to be pretty awful too).
These modules are the absolute bare minimum you can get away with for transmitting data. There isn't actually any modulation as such, the data pin on the transmitter (which is the smaller of the two modules) just turns the carrier frequency on and off. This is called On Off Keying, or OOK (No, not Ook, Ook! or Ook?, but OOK). The receiver just tells you if it can "hear" that carrier frequency. There's no data protocol, no packets, no nothing. You just tickle one end and the other end giggles.
They're great for sending UART data across the air waves. Connect the transmitter to the TX pin of one Arduino and the receiver to the RX pin of another and you can send data between them pretty simply.
Sounds great, yes? Well, actually no, not really. Let's take a look why.
First we'll look at the build quality. I don't know if this is specific to my modules, but all these modules ultimately come from the same place and are built by the same people, so I can expect the build quality of all of them to be like mine.
The board is through hole on the front (just an R433 transmitter module and two crude coils) and surface mount on the bottom. And what wonderful soldering it is too:
You can tell they spent a lot of time thinking about the layout and design of this board. For a start the ident layer is covered with comments. No, I mean it. It says "Comment" twice on the bottom of the board. And they even went to the trouble to give some of the components special designations. Designator10 and Designator11. That's hilarious right there! But that soldering! It's really to be admired. Big blobs, crusty residue... Nice!
Can you feel the sarcasm oozing out of your screen there?
But that's really fairly cosmetic and wouldn't affect the performance, so we'll let that slide for now. Let's take a look at what it's actually doing though.
I recently invested in a cheap SDR (Software Defined Radio) dongle. You can pick these up for 10 dollars or so and are pretty easy to work with, even in Linux. (Google: RTL-SDR). Using it I can look at any part of the RF spectrum between 24MHz and 1.7GHz. Quite handy really.
Here's a section of the 433MHz band as viewed from my desk:
A few bits of background noise and things registering, but not much. Now what happens when I turn the transmitter on and hold the data pin high...?
Wow! Look at that lot! Two huge spikes and hundreds of smaller peaks. And that's not all. If you look closely you can see how some of those smaller peaks drift around over time.
And this isn't even at the fundamental 433MHz frequency of the transmitter. Let's re-tune to 433MHz and see what we get. First, again, a "background" trace:
And then with the transmitter on:
More big spikes, more noise, more drifting rubbish on the air waves.
That's really horrible. I dread to think what it's doing to other devices that work on the 433MHz band.
So if this is 433MHz, how about the first harmonic of 866MHz? What is going on there? Well, let's take a look. This is me pulsing the transmitter on and off so you can see more clearly what I was expecting might well be there:
I'll zoom in so you can see it better:
Yes, it's transmitting on 866MHz. Not loud, but it's there all right.
So what does all that mean from a practical standpoint? Well:
- These modules flood the airwaves with junk. Not just in their own band, but over a wide range of other frequencies too.>
- They don't transmit on one frequency but have loud harmonics on many others in the 433MHz band.
And therein is where the problems lie. If you wanted to transmit a small amount of data from A to B, and you didn't care if it actually got there intact, and there was only A and B involved in the system then you might get away with these modules. There's absolutely zero chance of transmitter A sending data to receiver B at the same time as another transmitter C sending data to receiver D. The interference is just too great. That makes full duplex operation impossible as well.
You can expect your doorbell to stop working as well. Maybe even your TV, the noise pumped out by these is so horrible.
Just as a contrast let's take a look at a well behaved transmitter. This is the 433MHz transmitter in my car fob:
It's the dotted lines just to the left of centre by the way. Yes, there's some small harmonics there in close proximity, which is to be expected from any small transmitter (it's very very hard to create a completely pure sine wave). What is missing though is the wide band noise and other large spikes of harmonics in the rest of the band. The transmission is much more confined to the right area and doesn't interfere with the rest of the band.
And my overall conclusion on these 99p transmitters?
These transmitters are worth 99p. That says it all really. There's 99p worth of quality here. These days 99p doesn't buy you much. Would I ever use one of these in a project, even just to mess around with something? Hell no! Would I ever recommend anyone else use one, even for fun? Not on your life.
Now to go and grind these modules to fine dust and scatter them to the four winds.