This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

how to enable other pipes on nRF24LU1

Hi, Nordic

I know pipe0 and pipe1 are be enabled on nRF24LU1 nRFgo SDK example for default PRX.

Now I only to enable pipe0, disable pipe1.

  1. First, I use this function: hal_nrf_close_pipe(HAL_NRF_ALL)

    then I use hal_nrf_open_pipe(HAL_NRF_PIPE0, false);

    But I find pipe0 status is 0x02, it can receive data by TX, but TX will receive tx fail event.

    could you tell me why? default PRX pipe0 and pipe1 status is 0x03, I think it's enabled.

    and pipe1 status is 0x00, I think 0x00 is full disabled status. right?

  2. Then I use hal_nrf_set_address() and hal_nrf_set_rx_payload_width() for pipe0, but pipe0 status always be 0x02, it can receive data by tx, but tx will receive tx fail event.

So, I want to know what is the full process to enable new pipes, like pipe2 base on default demo. And if I want to disable one pipe, then I need to enable again, how can I do?

Thanks.

  • hal_nrf_open_pipe() should not return 0x02. Could you try to read EN_RXADDR register right after you call hal_nrf_close_pipe(HAL_NRF_ALL) and then after you call hal_nrf_open_pipe(HAL_NRF_PIPE0, false); ?

    When you send packet from TX side, do you set no_ACK to true ? You should set it to true since Auto ACK is disabled on PRX side.

    Are you using nRF24LU1+ on both sides ?

  • Hi,I found, it's auto ack wrong, I keep PTX and PRX are same, now I can set pipe OK. Thanks.

Related