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

strange behavior of certain central/peripheral combination

Hi everyone, I have some strange behavior with a central peripheral combination. My central subscribes notification on the peripheral. This has a limited TX-Buffer for just one notification to prevent buffering old sensor data. The sensor data are read in a ratio notification handler before every radio activity and sent via notification. The expected behavior is:

  1. first connection event -> notification is sent
  2. second connection event -> LLacknowledge produces TX complete, new notification can be send

Then everything starts form the beginning. This works fine, as long as I use my smartphone or master control panel as Central. When I connect with my own central (nrf51822, S120_V1.0.1) the behavior is:

  1. first connection event -> notification is sent
  2. second connection event -> LLacknowledge produces TX complete.
  3. third connection event -> central establishes connection, but peripheral doesn’t answer.
  4. fourth connection event -> central RETRYs last packet, peripheral send next notification

Then it goes on with 2.. Every time the central has to do a retry, before next notification. I tried different things to fix this. For example I choose a longer value for NRF_RADIO_NOTIFICATION_DISTANCES when notification is created. By surprise, the error disappears, when I choose the shortest distance of 800us! I don’t get, why this behavior is just with this central/peripheral combination and why it works, when you shorten the distance before radio activity.

Has anyone an idea?

Edit: Format

Related