Broadcast serial data from one radio module to multiple receivers simultaneously

I'm looking to transmit serial data 9600 baud continuously from one Arduino using say a 900 MHZ radio module to 5 to 10 Arduino receive units about 50 to 300M away. The TX arduino will send a ~100 byte string about once per minute. All data is one way from the single TX Arduino to the ones listening. No reply. Think of it like an FM radio station broadcast. I need a radio module that can support this arrangement and wanted to know if anyone has suggestions. Is this something that can be done using LoRo?
Thanks

Welcome to the forum

Could you please clarify, do you need to send 9600 baud continuously or 100 byte every minute?

FM radio is not necessarily the best example for modern radio communications. It requires the receiver to listen continuously and therefore wastes a lot of energy.

Can you describe the application a little bit more. e.g.

  • How are the nodes powered?
  • How important is that each node receives a packets?
  • What is the active time e.g. per day?
  • Do you need privacy or protection against attacks e.g. data and network encryption?
  • Would you like to extend the network later or connect it to other networks?

kittery:
I'm looking to transmit serial data 9600 baud continuously from one Arduino using say a 900 MHZ radio module to 5 to 10 Arduino receive units about 50 to 300M away. The TX arduino will send a ~100 byte string about once per minute. All data is one way from the single TX Arduino to the ones listening. No reply. Think of it like an FM radio station broadcast. I need a radio module that can support this arrangement and wanted to know if anyone has suggestions. Is this something that can be done using LoRo?
Thanks

There are NO hobby transmitters that will transmit continuously. You are thinking of commercial radio equipment with licensed authority to continuously transmit, like paging transmitters. The hobby devices use the ISM bands which are all shared by a multitude of devices in your own neighborhood. They ALL must be able to handle interference from other device, which means none of them can transmit continuously.
Paul

Klaus and Paul,
Good clarifying questions. Thank you. You could probably ignore the part about 9600 baud. One string of about 100 bytes length will be sent each minute. Then the next minute another 100 byte string is sent, so 60 strings sent per hour. This goes on indefinitely. The receiving stations (nodes) are solar / battery powered. When they need the information from the TX station, they wake up, listen for the first complete string of 100 bytes, do a few other tasks and go back to sleep for a period of time before waking up again and repeating the process. I don't need encryption or authentication at the moment but that could be useful later. I was hoping the nodes could simply be receive-only and operate as described above but if that is not's not realistic or not the best approach I'm open to ideas. I suppose each node could request the 100 byte string too but I was trying to keep it simple, hence the "listen only" approach. Also, at some point this could grow to 30 or so nodes so that's why I was going with the "broadcasting" approach to reduce node requests from banging into each other. What are my options?
Thanks,
Chris

What you are proposing has been done for many decades. Commercial FM radio stations do this ALL the time using sub channels away from their main program. MUSAK or MUSAC, I forget how they spelled it. Was invented in Portland Oregon. IT was called "store-cast" or another name was elevator music. IT was a 30 KHz subchannel on a regular FM broadcast station. They also broadcast stock prices to subscribers. Other services around the country sold the service as a paging service, sending tones to open a subscriber's receiver to get the message.
But none of this is possible with hobby components.
Paul

Hi Paul,
I think the term in the radio module world is called "One to Many", where the TX module's data is picked up by many nodes in receive-only mode. Or maybe there some authentication between units. I'm not that familiar with this but I found a lead... nRF24L01 - How It Works, Arduino Interface, Code, Schematic
I'd like it closer to 900MHz than 2.4GHz and to work with more than 6 Rx nodes.
Thanks,
Chris

Can you describe the actual project, what it does, its purpose, location etc.

SRNET… Sure. The nodes make various outdoor enviromental measurements. The nodes are position up to 300M from the TX station. When they receive a command message from the TX station then they make their measurement based upon the specifics in the request and save the data. They do not need to reply back to the TX station. It only needed to be a one flow of data. Are there 400 to 900MHz “One to Many” radio modules that support this where the RX module turns on once every 5 minutes, listens for first complete TX message then goes back to sleep to save power?
Chris

So is the broadcast the same for all nodes, and there is no need to tell a particular node to do XYZ instead of ABC ?

How often do the nodes wake up to wait for the broadcast ?

Where do the nodes store all the data ?

What is the maximum number of nodes ?

Correct, it's the same for all nodes. There could be anywhere from 5 to 30 nodes. They will each wake up at random times during their 5 minute cycle and get the latest command from the TX station do their measurements then go back to sleep. Some might even wake simultaneously and hear the same TX message and that's fine too. Each node stores it's data locally such as on an SD card.

what about using something like this kit?

2KM Long Range RF link kits with encoder and decoder

https://wiki.seeedstudio.com/2KM_Long_Range_RF_link_kits_w_encoder_and_decoder/

The code to work with them would be interesting to develop.... :sunglasses:

Interesting solution but looks like quite a bit of development would be necessary. Thanks.

kittery:
Interesting solution but looks like quite a bit of development would be necessary. Thanks.

Isn't that why we are having this conversation?
Paul

kittery:
Interesting solution but looks like quite a bit of development would be necessary. Thanks.

not really... I reckon the example code used here could be applied to the kit.

For the distance, 300M, then most radio modules would cope, if the 300M is good line of sight of course.

If in doubt about whether a particular module will cope with distance then you do need to test it your self.

LoRa modules will go further than other modules, and there are versions out there that have UART front ends so they are treated as serial devices. However good luck with them, the choice of libraries for these devices is quite limited and you might not find example code. UART devices are often limited in the configuration options on the LoRa side. Standard SPI LoRa modules are a better choice, almost universal for this type of application.

With 30 nodes waking up every 5 minutes, thats on average once every 10 seconds, so if sensor data packets are short, there wont be many collisions. Whilst you can make the sensors save data to a local SD card, this would make the nodes very power hungry battery wise.

With your proposed broadcast system, it seems to me that you would have no idea if the nodes have stopped working. Thus it would make more sense for the nodes to send the data back to the central Arduino, where it can be saved\colated and the activities of the nodes monitored. Easy enough for the nodes to pick up their 'broadcast' data, from the central Arduino either before or after they send their sensor data.

I was thinking about LoRa. Low caost and great range... The nodes are not on a strick wakeup schedule so multiple nodes could be listening at the same time. Do you know if LoRa modules can operate in the One to Many mode where the LoRa module on the node end just receives the data from the TX unit? The TX unit only transmits, it doesn't receive and the opposite with the nodes they do not reply back to the TX unit. Thanks.

Yes they can.

I suspect, on average listening to radio transmissions will be more power hungry than transmitting the data. If you send a beacon message every minute than every node will need to stay awake for 30 seconds per interval on average. When the sensor nodes sends the data they could be done in a few milliseconds. Only the central device will need to be active.

Just look at car door remotes, bicycle sensors, heart rate monitors, weather station sensors ... they all use smaller batteries for the transmitter.

This will likely also make your data management easier. The central device can store the data, make it available over the internet ...

But you know your application better. Maybe I missed something. Just food for thoughts. :slight_smile:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.