1

We checked Xbee, ZigBee and other alternatives already and we're trying to figure out a way for good and cheap network system. NRF24l01 looks good but 32 bytes not enough actually. Even so looks like we'll use it but some questions;

Questions' scenario contains 1 master and 300 slave devices with NRF24l01. We're thinking about making a addressing system like computer networks and every message will contain device id or device group tag. Master will be at the center of the room. Room do not have any inner wall or obstacle. Maximum range is less than 100m².

1) May messages get corrupt or latency ?
2) Is there any prepared library for Arduino for this kind of communication ?
3) Do you think is there any better solution for this kind of master & slaves networking logic (must be cheap and stable) ?

  • google NRF24L01 mesh – jsotola Apr 6 '19 at 22:13
2

1) May messages get corrupt or latency ?

For uni-directional Master to One Slave, no, there should be no corruption (at least not caused by there being lots of slaves present). For bi-directional Master to Multiple Slaves at the same time, yes, you're going to run into problems when the slaves try and reply. Keeping your protocol really simple will be beneficial.

2) Is there any prepared library for Arduino for this kind of communication ?

There's nothing special about what you propose. The RF24.h library will probably do the job (though I have never used it, so don't ask me how to use it).

3) Do you think is there any better solution for this kind of master & slaves networking logic (must be cheap and stable) ?

They're all a bit of a muchness really. RF communication is RF communication. It's how you use it that matters.

The nRF24L01+ has a number of benefits that mean you can do some things in hardware:

  • Multiple receive pipes, each with their own address - so you can have one for the device address, one for a group address, and one for a global "broadcast" address
  • Auto-acknowledge and re-sending of failed packets for more reliable communication (only for one-to-one communication)
  • Automatic packetisation so you don't have to worry about crafting a low-level protocol of your own
  • Direct communication giving low-latency
  • Power Amplifier option for greater range.

You could use WiFi, however that would struggle with so many devices (most home access points and routers can't handle more than a few dozen devices), plus it adds extra latency that it sounds like you don't want.

The nRF24L01+ is probably a good choice for this kind of communication - however, be cautious with cheap clone devices: some of them have a silicon error that causes them to not be compatible with other nRF24L01+ devices.

  • I was surprised to read that RF24.h supports packetisation which I read as in supporting payloads larger than 32 bytes. Could you provide a link that explains that? – Christian Lindig Apr 6 '19 at 10:59
  • 2
    @ChristianLindig By packetisation I mean that it deals with all the frame construction, CRCs, etc. You still have to split your data into 32 byte chunks and add any other identifying segment numbering. – Majenko Apr 6 '19 at 12:23

Not the answer you're looking for? Browse other questions tagged or ask your own question.