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

What could make BLE sample applications not work, but radio works ok?

Hi, got an interesting problem, this is on a custom board with nRF51822 QFAB that we are bringing up. The radio test (not using softdevice) works ok and produces strong transmit signal (as strong or even stronger than from the eval board). However none of the BLE/softdevice examples work. What can cause this? How to troubleshoot?

Is there anything different that needs to be done because this is one of the AB (128k) chips?

Is there any basic self-test that allows to check that softdevice itself is flashed and working correctly? (correct memory map, calls go to the right functions? etc) This is as opposed to testing that the radio hardware is working ("radio_test_example" ) or that BLE is working ("ble_app_dtm" )

Parents
  • Thank you Ole!

    Looks like the external crystal was the problem. Yes we have a crystal on our board, and the ble sample apps try to use it by default with BLE_STACK_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, ...).

    Changed that to BLE_STACK_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM, ...) and Bluetooth now works. Nice!

    Before, the only symptom of a problem was that there was no Bluetooth, the apps ran fine in a debugger and did not seem to hang, also there were no errors. Is there a way to detect such a condition?

    Could you explain the NRF_CLOCK_LFCLKSRC_RC_* settings? What are the drawbacks to using the SYNTH clock?

Reply
  • Thank you Ole!

    Looks like the external crystal was the problem. Yes we have a crystal on our board, and the ble sample apps try to use it by default with BLE_STACK_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, ...).

    Changed that to BLE_STACK_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM, ...) and Bluetooth now works. Nice!

    Before, the only symptom of a problem was that there was no Bluetooth, the apps ran fine in a debugger and did not seem to hang, also there were no errors. Is there a way to detect such a condition?

    Could you explain the NRF_CLOCK_LFCLKSRC_RC_* settings? What are the drawbacks to using the SYNTH clock?

Children
Related