Radio modules FS1000A and XY-MK-5V – pros and cons

When looking for radio modules for your next Arduino project, you might have come across the couple named: FS1000A and XY-MK-5V. At first glance, they might look like the next best thing, but it’s not that simple.

FS1000A and XY-MK-5V

Before you start hacking anything with FS1000A and XY-MK-5V, read the following pros and cons:

Pros:

  • simple – to send a signal you do not need much. Only to power them up and set LOW or HIGH on the data pin
  • cheap – true, they are not expensive

Cons:

  • pretty much everything else, including the same things that are their pros…
  • too simple – they are just too simple and offer no other functions than transmitting a wave through the void. No CRC, no packets, so SPI or serial, no bidirectional communication
    everything has to be done in the software, including encoding and CRC.
  • transmitting and receiving devices have to use the same libraries and support on some platforms like Raspberry Pi might be problematic at best
  • the frequency can not be changed!
  • no frequency hopping or spread spectrum
  • you have to get your own antennas
  • range is poor at best and depends on things like voltage of the transmitter
  • build quality varies a lot and you can not be sure that TX and RX are really tuned to the same frequency

Verdict? At leat be very careful when choosing hardware for your next Arduino RF project…

FS1000A and XY-MK-5V second range test

Two months ago, when I published first FS1000A and XY-MK-5V range test, I was little surprised that I was able to reach 315 meters of stable connection. And I was almost sure, that they can do more.

Having some free time during my summer vacation, I've left transmitter on a towel and took a walk with a receiver. In a surroundings just like that:

FS1000A XY-MK-5V test on a beach

Results? 332 meters with a FS1000A powered with 7.4V and 1000bps over-the-air data speed.

FS1000A XY-MK-5V range test on a beach

For the second time, I'm sure I can pull more from this setup. This time, there were two problems:

  1. Transmitter was low on the ground
  2. Other people on the beach blocked line of sight much faster than I expected
    So, expect third attempt…

FS1000A and XY-MK-5V, Arduino and VirtualWire

While FS1000A and XY-MK-5V 433MHz radio modules might not be the best choice in terms of quality, or reliability or distance (although few hundred meters in open space are doable), they have one very important trait: they are extremely easy to use. No complicated wiring, no advanced programming. If you want to send some data, just connect data lines, supply voltage and write few lines of code. Super simple!

In the example below, we will be sending a single 8bit number over FS1000A->XY-MK-5V line with a help of VirtualWire library.

Please remember, without antennas and in the radio-noise rich environment, the range might be limited. Very, very limited. Even to just a few centimeters. So keep that in mind!

Transmitter

FS1000A transmitter Arduino

Receiver

XY-MK-5V receiver Arduino

FS1000A and XY-MK-5V range test

Very often, where you go cheap, there is a price to pay. Exactly like with cheap 433MHz transmitter-receiver pair of FS1000A and XY-MK-5V. You rather do not expect much for $1, right?

When playing with them in a middle of a big city (Berlin), few meters of the range was all those modules were able to archive. Too many interferences from other devices. But what about open space in a middle of nowhere? I’ve decided to test that, and this is what I came up with:

If the video was too long: 315m apart, no direct line of sight between transmitter and receiver and still stable data flow! It would be more, but nature was against me and I just was not able to go further. I did not expect that much range from those two…On the one side, 315m for super cheap FS1000A and XY-MK-5V is a reasonable range. On the other, it’s pretty close, right?

FS1000A and XY-MK-5V 433MHz RF modules: overview

One of the cheapest (but not the best) solutions for DIY wireless data transmission between different devices (Arduino and other microcontrollers) is a pair of 433MHz modules: FS1000A and XY-MK-5V. A set of them (you will need one transmitter and one receiver) costs about $1. Pretty cheap, right?

FS1000A and XY-MK-5V 433MHz RF modules

Of course, there is a price to pay. Those modules are as simple as possible. They do not offer anything like error correction, RSSI, frequency hopping, or even two-directional transmission. They offer only basic functionality: receiver reports digital ONE when the transmitter detects ONE on the input (if in range, of course). Everything above that has to be done in the software. Continue reading “FS1000A and XY-MK-5V 433MHz RF modules: overview” »

VirtualWire support for Raspberry Pi

FS1000A and XY-MK-5V 433MHz RF modules are very often first choice for cheap and dirty Do It Yourself wireless communication. Pair of those , allowing one way radio communication, const less than 3 dollars or euros. So they are really cheap. Limited range and transmission speed limits their real life usage, but simple assembly and extremely easy programming are additional advantage over more complex solutions. Specially in Arduino world, with VirtualWire library. I will not write about it right now, there is enough on the internet already.

FS1000A and XY-MK-5V 433MHz RF modules for Raspberry Pi

Continue reading “VirtualWire support for Raspberry Pi” »