Custom Board with LFCLK SYNTH Falls Back to Non-Connectable Extended Advertising – NCS v2.9

Hi Nordic Team,

I'm currently working on a BLE project using NCS v2.9 and targeting a custom board based on the nRF54L15. My goal is to use the SYNTH LFCLK source (instead of RC or XTAL) to improve timing accuracy, even if it results in higher power consumption.

To achieve this, I configured the following in prj.conf:

CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=n
CONFIG_CLOCK_CONTROL_NRF_K32SRC_SYNT=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=n

However, I’ve observed that on the custom board (which does not have a 32.768 kHz LF crystal), the device only advertises non-connectable extended advertising (ADV_EXT_IND).
When I flash the exact same HEX to the DK (PCA10156), it works perfectly and performs legacy connectable advertising (ADV_IND), as expected.

I’ve tried explicitly setting the advertising flags (e.g., BT_LE_ADV_OPT_CONNECTABLE) and adding a device name in the advertising payload, but that had no effect — the custom board still falls back to extended, non-connectable advertising.

This leads me to suspect there may be additional configurations required in the Devicetree, overlay, or Kconfig that are necessary for proper BLE operation when using SYNTH as the LFCLK source on a board with no LF XTAL.

To be fully transparent, I'm not very experienced with Zephyr yet, and I’m still learning how to properly configure BLE and clocks through the Zephyr environment. So far, I’ve found that most BLE examples run fine on the DK but show inconsistent behavior on my custom hardware.

Any guidance on how to ensure legacy connectable advertising works properly using SYNTH LFCLK on a custom board would be highly appreciated.

Thank you for your support!

Best regards,
Karim

Parents
  • Hi,

    When I flash the exact same HEX to the DK (PCA10156), it works perfectly and performs legacy connectable advertising (ADV_IND), as expected.

    Just to be sure I understand your correctly. When you say "exact same hex", do you mean that you rebuilt the same application for development kit, or do you mean that you actually flashed the same hex that was built for your custom board unto the devkit?

    regards
    Jared 

  • Hi Jared, 
    Yes , rebuilt the same application for development kit
    and many times I press Build button, it actually builds with no errors yet it is not generating the "merged.hex"

  • Karim_Os said:
    Yes , rebuilt the same application for development kit
    and many times I press Build button, it actually builds with no errors yet it is not generating the "merged.h

    Ok, but at some point it produced the merged.hex file since you have been able to flash the development kit?

    If you rebuilt the project for two different boards, then there is indeed a chance that some config is missing in your custom board.

    You can try to compare the dts file that is generated in your build folder for two builds and see if you spot any significant difference between the two. You should also do this for the .config file as well. 

    regards

    Jared

Reply
  • Karim_Os said:
    Yes , rebuilt the same application for development kit
    and many times I press Build button, it actually builds with no errors yet it is not generating the "merged.h

    Ok, but at some point it produced the merged.hex file since you have been able to flash the development kit?

    If you rebuilt the project for two different boards, then there is indeed a chance that some config is missing in your custom board.

    You can try to compare the dts file that is generated in your build folder for two builds and see if you spot any significant difference between the two. You should also do this for the .config file as well. 

    regards

    Jared

Children
No Data
Related