This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF8001 No Available or Open Pipes

Hi Folks,

I'm running into a problem with the pipes on my nRF8001. After I issue a Connect (0x0F) command, I receive:

  1. CommandResponseEvent (0x84)
  2. ConnectedEvent (0x85)
  3. PipeStatusEvent (0x88)

And the last event is as follows: 0x01 (debug), 0x11 (length = 17), 0x88 (PipeStatusEvent ), 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 (first 8 bytes: PipesOpen), 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 (second 8 bytes: PipesClosed)

According to the datasheet, the 0x01 in the first 8 bytes (PipesOpen) indicates that the service discovery procedure has completed. Then how come all the pipes are unavailable? Should I wait a certain time or should I run a certain command? When I attempt to send data on any pipe number, I get ACI_STATUS_ERROR_PIPE_INVALID.

Thank you for your plumbing help, Soren

Parents
  • This problem was due to my misunderstanding of pipes and it is now resolved:

    As you can see in my pipe bitmap above, TX (pipe #2) and TX_ACK (pipe #3) are closed because I have not enabled them externally (e.g. from the nRF Master Control app or any other iOS/Android app). Once I enable the notification or indication externally, I can use the SendData command to stream data.

    The Set pipe does not work with SendData, and that's why I would get the above errors. The Set pipe is used for reading data from nRF8001 and the command for updating the local characteristics is SetLocalData and then you can read the characteristics values from your app.

Reply
  • This problem was due to my misunderstanding of pipes and it is now resolved:

    As you can see in my pipe bitmap above, TX (pipe #2) and TX_ACK (pipe #3) are closed because I have not enabled them externally (e.g. from the nRF Master Control app or any other iOS/Android app). Once I enable the notification or indication externally, I can use the SendData command to stream data.

    The Set pipe does not work with SendData, and that's why I would get the above errors. The Set pipe is used for reading data from nRF8001 and the command for updating the local characteristics is SetLocalData and then you can read the characteristics values from your app.

Children
No Data
Related