Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs: Update addressing & Title Info #223

Merged
merged 3 commits into from
Mar 17, 2024
Merged

Docs: Update addressing & Title Info #223

merged 3 commits into from
Mar 17, 2024

Conversation

TMRh20
Copy link
Member

@TMRh20 TMRh20 commented Mar 17, 2024

  • Add more info regarding multicast & how it affects addressing
  • Update Project Name & Brief (Title & Subtitle) in Doxyfile

- Add extra info about addressing and multicast vs how it affects available addresses and how to disable
- Adust project name and brief (Title & subtitle)
@2bndy5
Copy link
Member

2bndy5 commented Mar 17, 2024

I thought pipe 0 was used for receiving from both parents and multicasts. Saying that non-master nodes only support 4 children with multicast enabled sounds inaccurate.

@TMRh20
Copy link
Member Author

TMRh20 commented Mar 17, 2024

Hmm, nope as far as I recall pipe0 has auto-ack completely disabled after transmission, and is used only for multicast. Child nodes need to support both a multicast pipe and a parent pipe separately, so only 4 nodes with multicast enabled.
It also how RF24Mesh sets up addresses (MESH_MAX_CHILDREN is 4 by default, master use MESH_MAX_CHILDREN + 1)

@2bndy5
Copy link
Member

2bndy5 commented Mar 17, 2024

I do remember pondering why MESH_MAX_CHILDREN defaults to 4. Maybe I'm just misremembering.

@TMRh20
Copy link
Member Author

TMRh20 commented Mar 17, 2024

Hmm now you got me thinking:
https://github.com/nRF24/RF24Network/blob/master/RF24Network.cpp#L1134

Should be if (digit < 1 || digit > (NUM_PIPES )) { to allow for a 6th node...

@TMRh20 TMRh20 merged commit f57a953 into master Mar 17, 2024
6 checks passed
@TMRh20 TMRh20 deleted the DocsUpdate-Addressing branch March 17, 2024 12:46
@2bndy5
Copy link
Member

2bndy5 commented Mar 17, 2024

Pipe numbers are 0 based, but I thought NUM_PIPES is 1 based (for human readability).

You might be overthinking too! It is contagious.

@2bndy5
Copy link
Member

2bndy5 commented Mar 17, 2024

all other usage is NUM_PIPES - 1 excepts

RF24Network/RF24Network.cpp

Lines 106 to 108 in f57a953

uint8_t i = NUM_PIPES;
while (i--)
radio.openReadingPipe(i, pipe_address(_node_address, i));

but I think the decrement i-- takes care of the initial - 1.

@TMRh20
Copy link
Member Author

TMRh20 commented Mar 17, 2024

Just tested on RF24Network example to confirm and yeah it says 06 is an invalid address. Its looking at the first octal number in the address, not the pipe number here.

But there is no pipe 6, so a node 06 won't work anyway ( max of 5 nodes even with multicast disabled ) time to revise the documentation again lol.. wish I knew how my own library worked haha

@2bndy5
Copy link
Member

2bndy5 commented Mar 17, 2024

My memory about how all this gets implemented is getting a bit fuzzy. I think its only natural.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants