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

Strange behavior in central device using nrf51822

Hi, I'm using a nRF51822 as a observer/scanner for Eddystone beacons. This device is intended to scan up to 16 beacons, but under certain conditions (unknown at this moment) the scanner becomes unresponsive and keeps "broadcasting" one of the packets it previously received from a beacon. I say it is unresponsive because we are using it as SPI slave, and when the blocking condition appears, it starts responding the default character for ignored transmission.

Also, when I use nRF Connect app, I can view Eddystone data frames coming from beacons (which I named from 1 to 16). The beacons are intended to send data for a few seconds and then stop advertising. When the condition appears, I keep seeing a "beacon" after the timeout for sending data expires. Even if I disconnect all the beacons, only when the central is powered-down, the fake "beacon" disappears from nRF Connect app.

This is a very strange behavior, and we could not identify what the problem is. Any suggestion about what could be happening?

  • What central SDK example is this scanner based on, have you done any modification to it? the central starts to send advertising packets it previously received?

  • We used ble_app_uart_c example as a start point for our application, but all the code related to NUS, UART, GPIOTE were removed. In some cases, I've found that in nRF connect app keeps appearing Eddystone frames, even using the MAC address of any of the REAL Eddystone beacons when all of them are disconnected.

  • Note that nRF connect will still show all the peripherals it have found while scanning. If you turn off the peripheral during scanning, it will still show in the app, but the RSSI and advertising interval field will be greyed out after a while. If click on More in the app, and then history you can see when the last advertising packet was received.

  • Hi @Sigurdon, I previously clean the list and the device appears again. Also RSSI graph shows a continuous line during the blocking condition. Only after scanner is powered off, RSSI graph is discontinued and advertising interval and RSSI are greyed out. A good new is that we found an array overflow in our code. That was causing this problem. However, I keep wondering on how the scanner could become a "broadcaster". Thanks for your reply.

  • Great that you solved the problem. I can't see any reason why a array overflow could have caused this, and I have never seen this kind of behavior before.

Related