Custom NRF52810 board not advertising and hanging on nrf_sdh_enable_request()

Hello all,

I have recently developed a custom board that uses an nrf52810. It also contains an accelerometer as well as some hardware for regulating the voltage and charging a battery. The issue I am having is that the device is unable to advertise. I have been searching around the internet for days however have been unable to find a solution to my problem. I am using sdk17.1.0 and softdevice s112 v7.2.0. I have been trying to use the ble_blinky_pca10040e example to help me start learning to develop for this board. My board does not contain a LF clock and therefore I set it to use the RC in the sdk_config. I have also set the ram and flash sizes appropriately. I have made numerous other modifications to the sdk_config however nothing appears to work. I at first used rtt viewer to see the logs from the device while it ran and it would sometimes throw errors while attempting to set BLE_CONN_CFG_GAP, BLE_GAP_CFG_ROLE_COUNT, etc, sometimes with a fatal error thrown as well. I started using SES to debug the application. When the program is loaded onto the device it runs until it hits ble_stack_init and then either halts on the register at 00000A60, or (more often) gets stuck on the line SVCALL(SD_SOFTDEVICE_ENABLE, uint32_t, sd_softdevice_enable(nrf_clock_lf_cfg_t const * p_clock_lf_cfg, nrf_fault_handler_t fault_handler));. The errors commented above the call make me think that it has something to do with the LF clock config however if I check the configuration it is correct. (set to RC, accuracy to 1, RC_CTIV 16, RC_TEMP_CTIV to 2), and I can also see the correct values in the variable when debugging. The device is able to run examples that do not involve BLE (like the blinky example) without issue. This is my first time taking on a project this large and I will admit at this point I am feeling rather lost. Any assistance is greatly appreciated. I am also happy to upload any code or hardware files should anyone require them. 

Thank you!

Parents
  • Hey Jared,

    I flashed the hex file you provided with a s112 softdevice however I am still not sure if it is advertising. I cannot see any beacon with the manufacturing data being Nordic, is it possible that the device shows up as unnamed? I used the Bluetooth scanner in the nrf connect for desktop as well as IOS and get a bunch of unnamed devices. What data should show up from the beacon? Whenever I see the nrf dev kit in Bluetooth search it clearly shows up as a Nordic device. The advertising LED turns on when my board is activated however I cannot see it clearly in any application. Also there does not appear to be the same dramatic change in radio activity when I turn it on like there was for the other code you supplied me. I wonder what could be causing the Bluetooth stack to fail on the device?

    Thank you again,

    Mitchell

  • Hi,

    epice500 said:
    I flashed the hex file you provided with a s112 softdevice however I am still not sure if it is advertising. I cannot see any beacon with the manufacturing data being Nordic, is it possible that the device shows up as unnamed? I used the Bluetooth scanner in the nrf connect for desktop as well as IOS and get a bunch of unnamed devices. What data should show up from the beacon? Whenever I see the nrf dev kit in Bluetooth search it clearly shows up as a Nordic device. The advertising LED turns on when my board is activated however I cannot see it clearly in any application. Also there does not appear to be the same dramatic change in radio activity when I turn it on like there was for the other code you supplied me. I wonder what could be causing the Bluetooth stack to fail on the device?

    But are you getting any runtime errors as last time? I wouldn't expect you to be able to see the advertising message with a scanner as the PCB design doesn't follow the reference design. Still, the application shouldn't assert, which is the problem that we're trying to solve. Could you verify if the program asserts or not by using the debugger? The application I shared is basically the beacon peripheral example modified for the nRF52810 hw.

    regards
    Jared 

  • Hey Jared,

    The application does appear to assert still. Would you be able to send me the project file from the hex you sent me earlier? I am going to take a screen recording of debugging the application so you can have a better understanding of what is happening on my end. I will attach it to this post.

    Thanks!

    Mitchell

Reply
  • Hey Jared,

    The application does appear to assert still. Would you be able to send me the project file from the hex you sent me earlier? I am going to take a screen recording of debugging the application so you can have a better understanding of what is happening on my end. I will attach it to this post.

    Thanks!

    Mitchell

Children
  • Hi.

    I'm not able to play the video that you shared. Attached is the project files, just unzip it to the example folder: nRF5_SDK_17.1.0_ddde560\examples\ble_peripheral\ble_app_beacon

    regards

    Jared

    nRF52810.7z

  • Hey Jared,

    I hope you are well. I have been quite busy lately but was able to begin working on my device again a few days ago. I have good news, I was able to get the device to advertise and was even able to connect to it and switch the LED on my board on and off, it shows up in both the BLE scanner for the devkit as well as the nordic ios app. Despite the antenna issues as well the device had quite a strong signal, I was able to connect to it around 30 feet away. That said, I am still having the same issues as before most of the time. For some reason the device only works around 1/15 times I turn the power on and it does not assert and starts advertising. The other times I get the SOFTDEVICE ASSERTION FAILED code and it halts. The fact that it at least works some of the time now makes me inclined to believe that it is a software issue. When stepping through the code when debugging it still falls on the same SV call to enable the softdevice as I was talking about before, or on NRF_BREAKPOINT_COND; in the app_error_weak.c file. Any ideas what could cause the softdevice to assert most of the time but work some of the time? When it is working, everything seems to be perfectly fine and it does not shut off, I left it running for 2 hours without issue, but then when I turn the power off and on again I run into the same faults 90% of the time.

    Mitchell

Related