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

App_sched_queue_full error, using nRF51-BLE-Driver-Win + connectivity_s130.hex

I'm using the pre-compiled nRF51-BLE-Driver-Win driver (v0.5.0) on win7 64b with python2.7 and an nrf51 dev kit dongle running the precompiled 115.2k s130 connectivity firmware.

The python application is really simple, it is just listening for advertising packets from any advertising peripheral. Pretty much exactly like the heart rate collector example, but without the connectivity part. I collect the data in the "on_adv_report" callback, put it in a list and process later.

The problem is that after a while (1 minute to 2 hours, fairly random) the firmware on the dongle hangs with error_code 0x0004 from app_sched_event_put(), which means app-sched-queue is full.

My questions are:

  1. Can this happen if I don't process the "on_adv_report" callback on the PC quickly enough? (I'm trying to do it at least within 100ms or so.)

  2. Would it help to increase the queue-size, I read that there is a bug in the readme.md file about buffer overflow, is this the same issue?

  3. I'm looking for specific length adv-packets, is it possible to filter the packets in the firmware to work around this buffer overflow error?

  4. Could be a good idea to detect that the firmware throws an error on the PC-side? Send some error code over uart from the error-handler, would be a nice feature.

-Anders

Related