nRF54L15 Bare Metal project for BLE Peripheral with GAP and GATT Features.

Hello Nordic Team,
I have referred this post A technical dive into the nRF Connect SDK Bare Metal optionand am aiming to create an empty bare metal project on nrf54L15 for BLE peripheral with GAP read, write, notification and idicate functions. 

I am currently able to create an empty project, add LEDs and run but adding BLE functions is failing in the build generation stage. 

- Can you point to me a step by step guide to create an empty project and add BLE advertisement feature?

- Is there an usage guide for the BLE, RFC and peripheral drivers?
 

 Let me know if you need further details. Appreciate the responses. 

Best regards
Sarma 

Parents
  • Hi

    I see that you're working on the v0.8.0 version of the bare metal SDK, and I would recommend that you move to v0.9.0 of the SDK which is more robust. Additionally, I see from your build log that you're missing at least DT_HAS_NORDIC_NRF_CLOCK_ENABLED in your configs.

    Additionally the sample projects in the nRF Connect Bare Metal SDK should have config files for the nRF54L15 DK that should work as is with the Bluetooth samples and can be used for reference.

    Best regards,

    Simon

  • Hello Simon,
    I have updated the baremetal SDK to Ver 0.9.0 and Toolchain version to 3.1.1. With this the build is giving the same error: 


    Building bm_voyager
    west build --build-dir d:/test/bm_fw/bm_voyager/build d:/test/bm_fw/bm_voyager --pristine --board bm_nrf54l15dk/nrf54l15/cpuapp/s115_softdevice/mcuboot --no-sysbuild -- -DCONF_FILE="prj.conf"

    -- west build: generating a build system
    Loading Zephyr default modules (Zephyr base).
    -- Application: D:/test/bm_fw/bm_voyager
    -- CMake version: 3.21.0
    -- Found Python3: C:/ncs/toolchains/c1a76fddb2/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.10") found components: Interpreter
    -- Cache files will be written to: C:/ncs/nrf-bm/v0.9.0/zephyr/.cache
    -- Zephyr version: 4.1.99 (C:/ncs/nrf-bm/v0.9.0/zephyr)
    -- Found west (found suitable version "1.4.0", minimum required is "0.14.0")
    -- Board: bm_nrf54l15dk, qualifiers: nrf54l15/cpuapp/s115_softdevice/mcuboot
    -- Found host-tools: zephyr 0.17.0 (C:/ncs/toolchains/c1a76fddb2/opt/zephyr-sdk)
    -- Found toolchain: zephyr 0.17.0 (C:/ncs/toolchains/c1a76fddb2/opt/zephyr-sdk)
    -- Found Dtc: C:/ncs/toolchains/c1a76fddb2/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6")
    -- Found BOARD.dts: C:/ncs/nrf-bm/v0.9.0/nrf-bm/boards/nordic/bm_nrf54l15dk/bm_nrf54l15dk_nrf54l15_cpuapp_s115_softdevice_mcuboot.dts
    -- Generated zephyr.dts: D:/test/bm_fw/bm_voyager/build/zephyr/zephyr.dts
    -- Generated pickled edt: D:/test/bm_fw/bm_voyager/build/zephyr/edt.pickle
    -- Generated devicetree_generated.h: D:/test/bm_fw/bm_voyager/build/zephyr/include/generated/zephyr/devicetree_generated.h

    warning: CLOCK_CONTROL_NRF (defined at drivers/clock_control/Kconfig.nrf:13) was assigned the value
    'y' but got the value 'n'. Check these unsatisfied dependencies: DT_HAS_NORDIC_NRF_CLOCK_ENABLED
    (=n). See docs.zephyrproject.org/.../kconfig.html and/or look up
    CLOCK_CONTROL_NRF in the menuconfig/guiconfig interface. The Application Development Primer, Setting
    Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be helpful
    too.


    warning: default value 10 on BT_LONG_WQ_PRIO (defined at C:/ncs/nrf-bm/v0.9.0/zephyr/subsys/bluetooth/host/Kconfig:25, subsys/bluetooth\host/Kconfig:25) clamped to 0 due to being outside the active ra
    nge ([0, 0])Parsing C:/ncs/nrf-bm/v0.9.0/zephyr/Kconfig
    Loaded configuration 'C:/ncs/nrf-bm/v0.9.0/nrf-bm/boards/nordic/bm_nrf54l15dk/bm_nrf54l15dk_nrf54l15_cpuapp_s115_softdevice_mcuboot_defconfig'
    Merged configuration 'D:/test/bm_fw/bm_voyager/prj.conf'


    error: Aborting due to Kconfig warnings

    CMake Error at C:/ncs/nrf-bm/v0.9.0/zephyr/cmake/modules/kconfig.cmake:377 (message):
    command failed with return code: 1
    Call Stack (most recent call first):
    C:/ncs/nrf-bm/v0.9.0/nrf/cmake/modules/kconfig.cmake:83 (include)
    C:/ncs/nrf-bm/v0.9.0/zephyr/cmake/modules/zephyr_default.cmake:131 (include)
    C:/ncs/nrf-bm/v0.9.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
    C:/ncs/nrf-bm/v0.9.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
    CMakeLists.txt:21 (find_package)


    -- Configuring incomplete, errors occurred!
    ←[91mFATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\c1a76fddb2\opt\bin\cmake.EXE' -DWEST_PYTHON=C:/ncs/toolchains/c1a76fddb2/opt/bin/python.exe '-Bd:\test\bm_fw\bm_voyager\build' -GNinj
    a -DBOARD=bm_nrf54l15dk/nrf54l15/cpuapp/s115_softdevice/mcuboot -DCONF_FILE=prj.conf '-Sd:\test\bm_fw\bm_voyager'
    ←[0m

    This is only the first step of the hardware bring up on bare metal SDK, I need to do the following on nRF54L15DK to confirm the feasibility
    1. Enable GATT settings to the peripheral for custom services with read, write and notification settings.
    2. Enable Out of Band Authentication with NFC.
    3. Consume SPI, I2C, UART, HW Timers and GPIOs for user defined applications, sensor communication and control and custom protocol implementation. 
    4. Bring up NVRAM for Application specific data storage. 
    5. Ensure a strict timing response for the modules seeking service. 
    6. Enter low power mode when idle and resume full functionality upon interrupts. 
    Considering these goals, 
    • Can you please suggest the configurations I need to include in prj.conf?
    • Does nRF Connect SDK has support for all these features in the baremetal SDK?
    • Can you suggest the modules/libraries I should zero in for my use cases given above?
    I am referring to the online references from Nordic and the Baremetal samples in the nordic installation directory for all my queries. 
    Best regards
    Sarma
  • Hi Sarma

    Can you explain what you mean by point 4 "Bring up NVRAM for Application sepcific data storage"? 

    The bare metal SDK does not currently have support for NFC, and you should contact the Nordic sales representative of your area for information on if/when this is planned. 

    In total, it sounds like you want quite a few features, and would recommend that you consider using the nRF Connect SDK ,which has all the requested features, instead of the bare metal SDK as it has a much more complete feature set. Is there a specfic reason to stay on the bare metal SDK?

    Best regards,

    Simon

Reply
  • Hi Sarma

    Can you explain what you mean by point 4 "Bring up NVRAM for Application sepcific data storage"? 

    The bare metal SDK does not currently have support for NFC, and you should contact the Nordic sales representative of your area for information on if/when this is planned. 

    In total, it sounds like you want quite a few features, and would recommend that you consider using the nRF Connect SDK ,which has all the requested features, instead of the bare metal SDK as it has a much more complete feature set. Is there a specfic reason to stay on the bare metal SDK?

    Best regards,

    Simon

Children
No Data
Related