RF24Network icon indicating copy to clipboard operation
RF24Network copied to clipboard

how to support 8 pipes (on nRF5x devices)

Open 2bndy5 opened this issue 2 years ago • 6 comments

Concerning future ventures with the nRF5x ESB, I was thinking that 8 pipes shouldn't be too hard to support.

  • [x] pipe/address validation will have to conditionally forego x <= 5 presumption about 6 pipes
  • [x] figure out 2 new preamble-friendly physical address bytes default value (for pipes 6 & 7).
  • [ ] For a mixed network of varying max pipes, the mesh master needs a way to know when a child node can have 8 pipes. This will be the most costly in code size, thus mixed networks will not be supported. Instead we'll use a macro to instruct the compiler what code to use concerning the max pipes configured. The mesh master node will assume all children have the same number of pipes as it does.

2bndy5 avatar Jan 03 '23 05:01 2bndy5

We could augment the mesh handshake info to additionally contain data that indicates to master the number of pipes supported.

There is still some reserved space in the network sys codes, so we could add a NETWORK_NODE_PROPERTIES sys code to the network layer protocol. This sys code could then be used to confirm the connection after master has leased the address. My main concern is when this feature is used with a node running an older version of the lib.

2bndy5 avatar Jan 03 '23 05:01 2bndy5

I've given this some thought and with the increase in code size etc, I'm not sure its a good idea. RF24Mesh will still compile and run on ATTiny, even though you can't do much with it, and I would like to keep it that way.

I think on the third point, it might be kind of difficult to support a mixed network if some use differing amounts of pipes. It would be way easier to either have an nrf24l01 or nrf52840 network.

TMRh20 avatar Jan 03 '23 11:01 TMRh20

It would be way easier to either have an nrf24l01 or nrf52840 network.

So, what if all code that supports 8 pipes is #ifdef out? That way the same lib cab be used for different networks.

2bndy5 avatar Jan 03 '23 17:01 2bndy5

That would work. It would be interesting to get it working with a mixed network but again not sure what it would take.On Jan 3, 2023, at 11:31 AM, Brendan @.***> wrote:

It would be way easier to either have an nrf24l01 or nrf52840 network.

So, what if all code that supports 8 pipes is #ifdef out? That way the same lib cab be used for different networks.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

TMRh20 avatar Jan 03 '23 17:01 TMRh20

I think we have the first two items picked off, its just a matter of if we want to support mixed networks. I don't really want to lol.

TMRh20 avatar Jun 14 '24 11:06 TMRh20

You already convinced me that mixed networks is a venture more risky than it is worth. I (& likely other long-time users) would be comfortable with an ifdef solution instead.

2bndy5 avatar Jun 14 '24 12:06 2bndy5