pros and cons of wireless communication types

Hello all,

I'd say I have quite some experience working with Arduino, but have never done any wireless project. Now I'm facing my first one and I got a bit overwhelmed with different types of communication out there. Could you highlight the pros and cons of different types, and help me select the most suitable one?

Let me first explain what the project includes:

  • There will be ~40 receivers. The task of these receivers is to turn a small DC motor at a speed it receives from the transmitter. All receivers will always run at the same speed (no individual addresses needed).

  • Receivers will be battery powered.

  • There will be one transmitter, broadcasting speed values to all receivers.

  • The receivers will remain in a ~50m range of the transmitter.

  • The transmitter will be housed in an area is A LOT of interference. I'm talking 10s of industrial-sized motors, servo's, vfds, robotic arm, steel construction. Furthermore, it will be a busy environment, so expect many mobile phones around. There is the posibility of positioning the transmitter higher up, say 5 or 10 m above the receivers.

Among the things I have been looking at are:

  • Bluetooth (HC-05)
  • WiFi (ESP8266)
  • 433 MHz
  • Zigbee
  • LoRa
  • 27 MHz AM

As of now, I am a bit lost. Which technology can give me the range and the relieability I need?

Thanks for your thoughts!!

I think that you can rule out Bluetooth right off as the range may be too far.

I'd go for HC-12 (433 MHz) or RFM69 (various frequencies available - check your local regulations if you want to go for the the 868/912 MHz bands, hope I remember those numbers correctly). Both will make your implementation very easy as they will receive anything that's in range.

BT and WiFi are pure peer to peer may not have the range you want, WiFi requires a lot of overhead and BT can do only one or a few connections, not 40. LoRa is meant for long distance, slow speed, low data volume. It's also a relatively expensive solution. 27 MHz doesn't make sense, "433 MHz" is too ambiguous for specific comment, no experience with Zigbee.

Note: RadioHead library makes it dead easy to assign addresses and send messages to individual nodes, but in case of HC-12 you must connect it to a hardware Serial interface to work.

I've never had any luck with 433mHz modules. Sometimes I would get a range of a few blocks, sometimes a few feet. My vote would be MQTT over WiFi.

"As of now, I am a bit lost. Which technology can give me the range and the relieability I need?"

I think I would go with wifi and use a wireless router as the communication central point with the master and slave wifi units connecting to it.

As I said, I am a big proponent of MQTT over WiFi. You don't say how the motors are powered or how many GPIO pins you need, but I would use the Wemos D1 Mini at each motor (about $2.50 each). For the controller, well, it could be another Wemos D1 Mini. You don't say what the user interface will be, but if it's as simple as a few pushbuttons and an LCD screen, then, yes, the Wemos.

You do, however, need an MQTT broker. I use a Raspberry Pi running Mosquitto. there are public brokers available, but that requires an internet connection.

With this arrangement, you can send data to all of the motor nodes with one publish command. Or you could control each motor node individually if you like. You can also control them from your phone running something like MyMQTT, or a PC running MQTTBox. (These are debugging programs, so not as pretty as a web UI). Or you could design a website to run on a Wemos D1 Mini, but that's slightly above my pay grade.

So, what are all the motors for? A scoreboard? Art project? Sun-tracking solar power plant?

TimMJN:
Could you highlight the pros and cons of different types, and help me select the most suitable one?

The list of the possible pros and cons of the various methods could get very long and there is going to be a lot of opinions in that list.

The way forward is that you really do need to test the various options in situ, so that you can simulate the update rate you want to see if its reliable given the potential level of interference.

I would not comment on whether a particular method is to fast or too slow, you have given no indication as to how often the updates are broadcast.

I was just testing throughput on LoRa devices, even an Arduino Pro Mini @ 8Mhz can send out at 20kbit second and an 8byte control packet can be sent at the rate of 100packets a second; only you can tell us whether that is fast enough, so is it ?

WiFi @ 50M in a very WiFi noisy environment ?

Hi all,

first of all, thank you all for your replies! You've been really helpful so far.

Seconds, let me clarify a few things:

  • I think it "art installation" best describes this project. The receivers will be built into costumes, the moters will control a part of it. The transmitter will be built into the central installation.

  • I only need to send a 8-bit value once every second, so rate is really not a problem.

  • Bluetooth (HC-05): yes, let's get this off the list

  • WiFi (ESP8266): this would be an ideal option, a single D1 mini will be enough as both transmitter and receiver. I suppose I could even have every receiver act as a repeater? What worries me here is the range and the sensitivity to interference. What could I use to boost the signal?

  • 433 MHz: I'm sorry, I was unaware of the different options here. My idea was using something like the HopeRF RFM210LCF in every receiver. For the transmitter, I would use a 100 mw transmitter into a 5w amplifier. How does this option compare with the slightly more expensive RFM69?

  • Zigbee: This seems to be too expensive.

  • LoRa: still unsure, for sure this will be a little bit more expensive.

  • 27 MHz AM: I got this from RC racing world, but I also have trouble finding much.

Concluding, I think WiFi and 433 MHz (or 868 MHz) are my best options.

Thanks again!!

TimMJN:
I would use a 100 mw transmitter into a 5w amplifier.

What !!!!

5W for 50m range ?????

Is that legal in your part of the World, wont be legal in many places, 10mW is often the limit ?

You have not got the nRF24L01+ transceivers on your list. With a high-power module (with external antenna) for the master unit the range should not be a problem. The units are cheap and have a lot of error-correcting built in.

How often does a new message need to be sent to the motors? It may be possible to address them individually for greater reliability - i.e. repeat failed messages.

...R
Simple nRF24L01+ Tutorial

srnet:
What !!!!

5W for 50m range ?????

Is that legal in your part of the World, wont be legal in many places, 10mW is often the limit ?

Whoops looks like I said something a little illegal here. Looks like a few euros gets me a 5 or 8W amp from China.

The thing is, this whole thing will only run for a few hours, one-time, without much possibility to test it in actual conditions. So, I need to be pretty sure it will work, no matter what.

TimMJN:
Whoops looks like I said something a little illegal here.

Which makes it not a subject for discussion on these forums ..........

srnet:
Which makes it not a subject for discussion on these forums ..........

I agree, let's forget about that. Radio communication will be used for safety of the event, don't want to disturb that.

Based on all this I'm definitely favouring HC-12.

50m range is no problem as long as there are no walls in the way, and it's super easy to set up. It's supposed to be able to do a few km with line of sight. It can take external antennas to boost the range, the master could have a big one and the slaves a smaller one. Does cost a bit more than a WeMOS. Combined with a Nano or Pro Mini the size isn't much greater. Definitely much better range than WiFi. Ideally place the master transmitter overhead, a few meters above the ground so it can basically see all the nodes.

Do transmit your message continuously - 10 times a second or more, the same value over and over again, so if one packet gets lost you hopefully get the next. If it's one byte you can just transmit a stream of that byte.

The HC-12 can of course also transmit, so you can relay the message, but if you try this you really have to be careful to not cause collisions.

If this is outdoors, mind that some of the best RF blockers are trees and shrubs. Way more efficient than concrete walls when it comes to blocking radio signals.

wvmarle:
Based on all this I'm definitely favouring HC-12.

50m range is no problem as long as there are no walls in the way, and it's super easy to set up. It's supposed to be able to do a few km with line of sight. It can take external antennas to boost the range, the master could have a big one and the slaves a smaller one. Does cost a bit more than a WeMOS. Combined with a Nano or Pro Mini the size isn't much greater. Definitely much better range than WiFi. Ideally place the master transmitter overhead, a few meters above the ground so it can basically see all the nodes.

Do transmit your message continuously - 10 times a second or more, the same value over and over again, so if one packet gets lost you hopefully get the next. If it's one byte you can just transmit a stream of that byte.

The HC-12 can of course also transmit, so you can relay the message, but if you try this you really have to be careful to not cause collisions.

If this is outdoors, mind that some of the best RF blockers are trees and shrubs. Way more efficient than concrete walls when it comes to blocking radio signals.

Thanks for your insight! One final question, what is the performance difference between the HC-12 and the RFM69? What could be a reason to go for one vs the other?

Whatever wireless system you think might be best I reckon you will need to do some on-site testing to prove that it is satisfactory.

Be prepared for some failures.

...R

HC-12 has roughly double the range of the RFM69, at roughly double the price per unit.

HC-12 communicates via a Serial interface; RFM69 uses an SPI interface.

wvmarle:
HC-12 has roughly double the range of the RFM69, at roughly double the price per unit.

HC-12 communicates via a Serial interface; RFM69 uses an SPI interface.

perfect answer, thank you so much!