I'm working on a sensor network (similar to MySensors) for Arduino Pro Mini and a RPi (using nrf24l01+ and a websockets gateway for a future web app).
When I found out about this site I already had invested a lot of my time doing this, but I relate myself a lot with this project.
Today I want to share my latest experience with full duplex networks. I'm using 2 nrf24l01+ radios for each node: one for writing (TX) and another to read (RX):
Level 0 Node : (0) Radio1: RX, Channel A | Radio2: TX, Channel B
Level 1 Nodes: (1-5) Radio1: RX, Channel B | Radio2: TX, Channel A
Level 2 Nodes: (n1-n5) Radio1: RX, Channel A | Radio2: TX, Channel B
There are several (theoretical) advantages in using this:
- with 2 different channels the collision rate between messages is smaller.
- dedicated radios for RX and TX means no delay in switching between radio listening and writing.
- smaller delay/lag between action request and event occurrence .
- better overall speeds.
- better reliability(?)
I'm just starting to get my first results with this approach using only 2 nodes (for now). I'm using RF24 library from TMRh20 (thanks for the help! ) but I never got these kind of speeds [www.youtube.com/watch?v=mODflsK1Ab0], probably because of some differences in physical/environment conditions. I got lower speeds, so, instead of absolute values, I can claim around 50% increase in transfer rate speeds and even better improvement in round-trip time between 2 nodes.
I don't have a large network (yet) to verify improvements in a busy networks, but either way, it's not easy to assess the real benefits of a full-duplex network.
I would like to hear your feedback and suggestions about this... Do you think the benefits will be worth the extra radio or am I just wasting time on this? Is this something that may be considered in MySensors?
Here are some pictures of the my nodes with custom pcb for wiring both radios: