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

Configuration changes from nRF52832-DK to BL654PA module

Hi Guys

I recently made my own PCB for a project. On the PCB I am using a Laird BL654PA Module with external antenna. All the I/O's work great but im struggling with the BLE on the chip.

I'm trying to run the ble_beacon example which works fine on the 52832 DK and my Samsung. But however if I flash it to the BL654PA it doesn't work allthought it is able to flash the software and the softdevice. 

Im using:

- SDK16

- nRF52832-DK as a programmer

- S140 Soft device

- BL654PA Module

Somehow I feel like that I have to change a few parameters in the sdk_config.h file but I dont know what exactly because I am a newbie. I already found out that I have to eneable "NRF_LOG_BACKEND_RTT_ENABLED" to get some log informations from the J-Link RTT Viewer.

I also found a post about the external crystal... however I am using the internal crystal from the BL654PA and changed the settings according to this post: https://devzone.nordicsemi.com/f/nordic-q-a/46564/error-133-0x85-gatt-error-on-nrf52840/183860#183860 , bit it did not work...

What else has to be changed to make the ble_beacon example running on the BL654PA? 

Thanks in advance

Michael

Parents
  • This is my code section (sdk_config.h), it matches yours exactly in my opinion... Confused

    // <h> Clock - SoftDevice clock configuration
    
    //==========================================================
    // <o> NRF_SDH_CLOCK_LF_SRC  - SoftDevice clock source.
     
    // <0=> NRF_CLOCK_LF_SRC_RC 
    // <1=> NRF_CLOCK_LF_SRC_XTAL 
    // <2=> NRF_CLOCK_LF_SRC_SYNTH 
    
    #ifndef NRF_SDH_CLOCK_LF_SRC
    #define NRF_SDH_CLOCK_LF_SRC 0
    #endif
    
    // <o> NRF_SDH_CLOCK_LF_RC_CTIV - SoftDevice calibration timer interval. 
    #ifndef NRF_SDH_CLOCK_LF_RC_CTIV
    #define NRF_SDH_CLOCK_LF_RC_CTIV 16
    #endif
    
    // <o> NRF_SDH_CLOCK_LF_RC_TEMP_CTIV - SoftDevice calibration timer interval under constant temperature. 
    // <i> How often (in number of calibration intervals) the RC oscillator shall be calibrated
    // <i>  if the temperature has not changed.
    
    #ifndef NRF_SDH_CLOCK_LF_RC_TEMP_CTIV
    #define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 2
    #endif
    
    // <o> NRF_SDH_CLOCK_LF_ACCURACY  - External clock accuracy used in the LL to compute timing.
     
    // <0=> NRF_CLOCK_LF_ACCURACY_250_PPM 
    // <1=> NRF_CLOCK_LF_ACCURACY_500_PPM 
    // <2=> NRF_CLOCK_LF_ACCURACY_150_PPM 
    // <3=> NRF_CLOCK_LF_ACCURACY_100_PPM 
    // <4=> NRF_CLOCK_LF_ACCURACY_75_PPM 
    // <5=> NRF_CLOCK_LF_ACCURACY_50_PPM 
    // <6=> NRF_CLOCK_LF_ACCURACY_30_PPM 
    // <7=> NRF_CLOCK_LF_ACCURACY_20_PPM 
    // <8=> NRF_CLOCK_LF_ACCURACY_10_PPM 
    // <9=> NRF_CLOCK_LF_ACCURACY_5_PPM 
    // <10=> NRF_CLOCK_LF_ACCURACY_2_PPM 
    // <11=> NRF_CLOCK_LF_ACCURACY_1_PPM 
    
    #ifndef NRF_SDH_CLOCK_LF_ACCURACY
    #define NRF_SDH_CLOCK_LF_ACCURACY 1
    #endif

    Okey, as I am not very experienced, where should I set breakpoints in the example?

    Thanks and kind regards

    Michael

  • You're using the correct settings, thanks for confirming. I suggest you start by placing a breakpoint at idle_state_handle() in main to see if the program gets that far. Also, some modules ship with a bootloader pre-programmed in flash, not sure if it is the case for this particular module, but it may prevent the main app from booting. So you may want to try to erase the chip before you start debugging. 

  • Before I am flashing the S140 and the code I always do a full chip erase in CMD window with nrfjprog --family nRF52 --eraseall

    Somehow I am not able to set a breakpoint in the main next to idle_state_handle()But i set a breakpoint in the function itself and after i click run on the top left it seems like it reaches the funcion. The LOG output also says

    00> <info> app_timer: RTC: initialized.
    00>
    00> <info> app: Beacon example started.
    00> 

    but i still cant find the device on my phone... are there some settings to enable the external antenna?

  • You may try to select  "Debug"  instead of the default "Release" configuration in the drop-down menu in the top left corner of SES. This will make the project a bit more debug friendly. However, your debug log already shows that the initialization completed successfully. So I took a closer look at the module you are using, and I see now that it integrates an external Skyworks PA/LNA. This means you have to implement additional control logic in the application code for the radio signals to reach the antenna port. Please take a look at the "Nordic SDK Based App Development" guide from Laird for more details.

Reply
  • You may try to select  "Debug"  instead of the default "Release" configuration in the drop-down menu in the top left corner of SES. This will make the project a bit more debug friendly. However, your debug log already shows that the initialization completed successfully. So I took a closer look at the module you are using, and I see now that it integrates an external Skyworks PA/LNA. This means you have to implement additional control logic in the application code for the radio signals to reach the antenna port. Please take a look at the "Nordic SDK Based App Development" guide from Laird for more details.

Children
Related