nRF modules with RF24Network ... parent 02 still reading child 053


Using RF24 and RF24Network libraries, along with nRF24I01+ modules.

I've been able to use several nodes when addresses range from 01 - 05; however now I want to use second tier.

As a test I am only using 3 nRF's in my setup; 00 as base, 02 as first tier, and I deliberately named the third as 053 expecting to only see 02 show on the 00 base monitor, however I see pings from 02 and 053 both show up on the base 00 monitor.

If I change 053 to 052, I will see pings from 02 and 052.

If I press reset on 02 station then the 053/052 pings stop for a few seconds while the 02 node restarts, indicating to me that 02 is acting as the parent to the 053/052 node.

Without a 03 child shouldn't I just see 02 showing as a ping on the base 00 monitor?

How could I be getting 053 ping without a 03 child?

I’m still wrestling with this.
Using the RF24Network PING example, here’s an example print showing only base 00, node 02 and 053 … this should not be happening, right? There is no active node 03.

Are u using the Maniacbug libraries?

Change node 3 from 053 to 063 and see what u get.

Setting to 063 and then the base only receives pings from the 02 node, which makes sense since the 6 is out of range.

I tried values 51, 52, 54,55 and all those show up while the 2nd node is addresses as 02. Values like 13,14,23, will not show up … as to be expected.

I was using the TMPh20 version of the RF24 libraries. Then swapped out to the Manicbug versions and there was no difference. Since I’m using the standard example programs there must be something whacky with my node setup. I’ve gone over the wiring numerous times. They work standalone, but just seem to get flaky when multiples are wires up … I think specifically when going past 5th node and onto the 2nd tier.

To make matters more confusing I hooked up all 8 of my stations, loaded the meshping example, incremented each node from 0 to 7 … and I results where one node number will show up numerous times in a row. Since they all show that same client millis value, its not multiple sends but rather to me looks like the base reads it repeatedly.

Attached is an example; anyone seen that behavior?

I read up on the network version of the library. The address mapping looks something like this : Base : 00 Router/Parent Nodes : 01, 02, 03, 04, 05 Leaf/Child nodes : - Router 01 : 011, 021, 031, 041, 051, 061, 071, 081, 091, 101, 111, 121, 131 etc - Router 02 : 012, 022, 032, 042, 052, 062, 072 etc - Router 03 : 013, 023, 033, 043, 053, 063, 073 etc - Router 04 : 014, 024, 034, 044, 054, 064, 074 etc - Router 05 : 015, 025, 035, 045, 055, 065, 075 etc

In theory, you are correct, without a connected parent, a child should not be visible to the network. However, it may be that the network is able to detect orphans, if the parent address is enabled even if no parent is connected.

In other words, because there is no 06 parent address, the 063 orphan was not detected. However, there is an 03 parent address, so the 053 orphan was detected even though the 03 parent was not connected.

As a test, disable the 03 parent address, then see if the network still detects the 053 orphan. I expect the network not to detect it, otherwise my theory will be shot down in flames.


Well, a couple points to clarify on your reply.

My original post was complaining why I could see a node 053 on my 3 node network when the addresses were 00, 05, 053

I should need a node addressed 03 before I would see the 053 pings on the base monitor. See attachment nodes.png above.

Then my second complaint was why, after loading up 8 node network I would see repeated pings from same node in a row. See second attachment above.

(Sigh) I just want to get onto programming my network applications and wish the networking infrastructure wasn't so temperamental.

Regarding your theory ... Sorry but you have a fundamental error there. There can only be up to 5 child nodes per parent therefore you will never have numbers greater than 5 in the addresses.

Node 02 could only have children 012, 022, 032, 042, 052

Node 042 could only have children 0142, 0242, 0342, 0442, 0542

I really like the network approach of this library, if only I could get mine to be stable.

Riccarr: Regarding your theory ... Sorry but you have a fundamental error there. There can only be up to 5 child nodes per parent therefore you will never have numbers greater than 5 in the addresses.

Not according to what I read, which is why I deliberately put the higher numbers. The limit you refer to is a "concurrent" limit and I believe it may be 6 and not 5, but let's work on 5. There is virtually no limit to the number of children but the parent can only listen to 5 children AT THE SAME TIME. So if more that 5 children were to transmit, at the same time, only the first 5 would be heard, the others would fail. On retry the next 5 would be heard etc.

The reason there are only 5 parents, is the base has to listen to them all the time since all child messages come via the parent, hence the concurrent limit applies to the number of parents.

The parents do not have to listen to the children all the time, so the concurrent limit does not apply.

I am describing the maniac bug code, but since u are using a fork, so the parent routing may not strictly apply in that fork.

There is either something in the code u are using or your hardware setup which is causing the issue.

But since you have posted neither, it is difficult for anyone to help u.

BTW I just noticed you did post a printout. Having seen that, I am not surprised 053 shows up, since you are running the mesh sketch. What I am describing is a tree/star topology which is not the same as the mesh afaik.

@Riccarr : How did u go?
Have u got it working?
I was able to revive the iBoardex so want to try again.