tag:blogger.com,1999:blog-5559448074823950532.post5047656670449676794..comments2023-03-01T02:41:26.744-06:00Comments on Maniacal Bits: RF24 - Avoiding RX Pipe 0 For Enhanced ReliabilityAnonymoushttp://www.blogger.com/profile/14244220623475709164noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-5559448074823950532.post-67847459302932799542013-04-05T23:17:17.439-05:002013-04-05T23:17:17.439-05:00Yes...thanks for the suggestions... I will change ...Yes...thanks for the suggestions... I will change the node addressing... Stanleyhttps://www.blogger.com/profile/05425545478966156895noreply@blogger.comtag:blogger.com,1999:blog-5559448074823950532.post-7548141741418924972013-04-05T15:40:04.347-05:002013-04-05T15:40:04.347-05:00The RF24 has SEVEN pipelines. One TX pipeline and ...The RF24 has SEVEN pipelines. One TX pipeline and six RX pipelines. In your code, you are only using five of the six RX pipelines. <br /><br />Basically, if you have a line that reads something like, "radio.openReadingPipe( 0, 0xf0f0f0f0e3 ) ;", then you'll have to deal with potential pipe 0 issues. Notice the, "0", for the pipe number.<br /><br />In your code, you're only using five reading pipes, plus one writing pipe. Your first reading pipe is 1, not 0. In your code, you're good. Technically the TX's pipe and RX pipe 0 are different pipes. And if, for example, you were a read-only node (never transmitted), you could open RX pipe 0 without an issue - ever.<br /><br />As an aside, in the code above, I have noticed you are using 'F' nibbles. Please check out my article on bad RF24 addresses. I would encourage you to not use 0x0 or 0xF nibbles in your addresses. Of the two, 0x0 is likely safer of the two. And even then I would encourage you to not use either within the first octet of your address...preferably not within the first two octets. As the data sheets says, 0xF (0b1111) is far more suitable to RF noise corruption.<br /><br />Anonymoushttps://www.blogger.com/profile/14244220623475709164noreply@blogger.comtag:blogger.com,1999:blog-5559448074823950532.post-82540618709360332122013-04-05T14:30:03.645-05:002013-04-05T14:30:03.645-05:00I find it confusing to translate "Avoiding RX...I find it confusing to translate "Avoiding RX Pipe 0" into codes/config..<br /><br />Here is my codes, am I configuring them correctly to avoid pipe0 RX ?<br /><br /><br />hub (rpi-huh.cpp) :-<br />const uint64_t pipes[6] = { 0x7365727631LL, 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 0xF0F0F0F0E3LL, 0xF0F0F0F0E4, 0xF0F0F0F0E5 };<br /><br /> radio.openWritingPipe(pipes[0]);<br />radio.openReadingPipe(1,pipes[1]);<br />radio.openReadingPipe(2,pipes[2]);<br />radio.openReadingPipe(3,pipes[3]);<br />radio.openReadingPipe(4,pipes[4]);<br />radio.openReadingPipe(5,pipes[5]);<br /><br />RX_ADDR_P0-1 = 0x7365727631 0xf0f0f0f0e1<br />RX_ADDR_P2-5 = 0xe2 0xe3 0xe4 0xe5<br />TX_ADDR = 0x7365727631<br /><br />*** hub will RX on P1 to P5 and TX on P0<br /><br />node (sendto_hub.cpp) :-<br />const uint64_t pipes[2] = { 0xF0F0F0F0E3L, 0x7365727631LL };<br /><br />radio.openWritingPipe(pipes[0]);<br />radio.openReadingPipe(1,pipes[1]);<br /><br />RX_ADDR_P0-1 = 0xf0f0f0f0e3 0x7365727631<br />RX_ADDR_P2-5 = 0xe2 0xe3 0xe4 0xe5<br />TX_ADDR = 0xf0f0f0f0e3<br /><br />This node will TX on pipe0 and RX on pipe1...<br /><br />Stanleyhttps://www.blogger.com/profile/05425545478966156895noreply@blogger.com