From 334e3958b507981304cdd26c47ef2c30e170550f Mon Sep 17 00:00:00 2001
From: Pbopbo
Date: Tue, 24 Feb 2026 14:21:41 +0100
Subject: [PATCH] Enables lfxo. Clean up.
---
CMakePresets.json | 30 +-----
ai_stuff/agents.md | 22 +++++
bl54l15_radio0.overlay | 43 ---------
bl54l15_radio0_new.overlay | 44 ---------
bl54l15_radio0_radio1.overlay | 7 ++
bl54l15_radio1.overlay | 43 ---------
bl654pa_gpio_uart.overlay | 58 ------------
boards/nrf54l15dk_nrf54l15_cpuapp.overlay | 7 ++
hci.code-workspace | 11 ---
lfxo.conf | 4 +
nrf52840_gpio_uart.overlay | 17 ----
overlay-all-bt_ll_sw_split.conf | 109 ----------------------
prj.conf | 5 +
13 files changed, 46 insertions(+), 354 deletions(-)
create mode 100644 ai_stuff/agents.md
delete mode 100644 bl54l15_radio0.overlay
delete mode 100644 bl54l15_radio0_new.overlay
delete mode 100644 bl54l15_radio1.overlay
delete mode 100644 bl654pa_gpio_uart.overlay
delete mode 100644 hci.code-workspace
create mode 100644 lfxo.conf
delete mode 100644 nrf52840_gpio_uart.overlay
delete mode 100644 overlay-all-bt_ll_sw_split.conf
diff --git a/CMakePresets.json b/CMakePresets.json
index bb08148..f4c52b6 100644
--- a/CMakePresets.json
+++ b/CMakePresets.json
@@ -5,34 +5,6 @@
"minor": 20
},
"configurePresets": [
- {
- "name": "build_bl54_radio0",
- "displayName": "Build for nRF54l15 DK nRF54l15 Application",
- "generator": "Ninja",
- "binaryDir": "${sourceDir}/build_bl54_radio0",
- "cacheVariables": {
- "NCS_TOOLCHAIN_VERSION": "NONE",
- "BOARD": "nrf54l15dk/nrf54l15/cpuapp",
- "EXTRA_CONF_FILE": "iso.conf;internal_osc.conf",
- "CONF_FILE": "prj.conf",
- "DTC_OVERLAY_FILE": "bl54l15_radio0_new.overlay",
- "BOARD_ROOT": "${sourceDir}/"
- }
- },
- {
- "name": "build_bl54_radio1",
- "displayName": "Build for nRF54l15 DK nRF54l15 Application",
- "generator": "Ninja",
- "binaryDir": "${sourceDir}/build_bl54_radio1",
- "cacheVariables": {
- "NCS_TOOLCHAIN_VERSION": "NONE",
- "BOARD": "nrf54l15dk/nrf54l15/cpuapp",
- "EXTRA_CONF_FILE": "iso.conf;internal_osc.conf",
- "CONF_FILE": "prj.conf",
- "DTC_OVERLAY_FILE": "bl54l15_radio1.overlay",
- "BOARD_ROOT": "${sourceDir}/"
- }
- },
{
"name": "build_nrf54_radio0_radio1",
"displayName": "Build for nRF54l15 DK nRF54l15 Application",
@@ -41,7 +13,7 @@
"cacheVariables": {
"NCS_TOOLCHAIN_VERSION": "NONE",
"BOARD": "nrf54l15dk/nrf54l15/cpuapp",
- "EXTRA_CONF_FILE": "iso.conf;internal_osc.conf",
+ "EXTRA_CONF_FILE": "iso.conf;internal_osc.conf;lfxo.conf",
"CONF_FILE": "prj.conf",
"DTC_OVERLAY_FILE": "bl54l15_radio0_radio1.overlay"
}
diff --git a/ai_stuff/agents.md b/ai_stuff/agents.md
new file mode 100644
index 0000000..24f45d5
--- /dev/null
+++ b/ai_stuff/agents.md
@@ -0,0 +1,22 @@
+Complete hci_uart_beacon build/flash/reset/UART workflow (user-provided commands):
+
+# 1. Build
+cd /home/paul/ncs/v3.0.2 && nrfutil toolchain-manager launch --ncs-version v3.0.2 -- west build --build-dir /home/paul/Documents/hci_uart_beacon/build /home/paul/Documents/hci_uart_beacon --board nrf54l15dk/nrf54l15/cpuapp
+
+# 2. Flash
+cd /home/paul/ncs/v3.0.2 && nrfutil toolchain-manager launch --ncs-version v3.0.2 -- west flash --build-dir /home/paul/Documents/hci_uart_beacon/build
+
+# 3. Reset device
+nrfutil device reset --serial-number 1050076061
+
+# 4. UART capture (30s timeout)
+timeout 30 minicom --device /dev/serial/by-id/usb-FTDI_C232HM-DDHSL-0_FTUD2ZB4-if00-port0 --baudrate 1000000
+
+Notes:
+- Use nrfutil toolchain-manager launch wrapper for NCS v3.0.2
+- Board: nrf54l15dk/nrf54l15/cpuapp for nRF54L15
+- Serial number for reset: 1050076061
+- UART device: /dev/serial/by-id/usb-FTDI_C232HM-DDHSL-0_FTUD2ZB4-if00-port0
+- Baudrate: 1000000 (matches UART configuration)
+- Timeout 30s on minicom to auto-exit
+- Start the UART and directly after that reset, to get the output
\ No newline at end of file
diff --git a/bl54l15_radio0.overlay b/bl54l15_radio0.overlay
deleted file mode 100644
index 2a662cd..0000000
--- a/bl54l15_radio0.overlay
+++ /dev/null
@@ -1,43 +0,0 @@
-&uart20 {
- compatible = "nordic,nrf-uarte";
- status = "okay";
- current-speed = <1000000>;
- hw-flow-control;
-};
-
-&pinctrl {
- uart20_default: uart20_default {
- group1 {
- psels = ,
- ;
- };
- group2 {
- psels = ,
- ;
- bias-pull-up;
- };
- };
-
- uart20_sleep: uart20_sleep {
- group1 {
- psels = ,
- ,
- ,
- ;
- low-power-enable;
- };
- };
-};
-
-/ {
- chosen {
- //zephyr,console = &uart20;
- //zephyr,shell-uart = &uart20;
- //zephyr,uart-mcumgr = &uart0;
- //zephyr,bt-mon-uart = &uart0;
- zephyr,bt-c2h-uart = &uart20;
- };
-};
-&power {
- status = "okay";
-};
\ No newline at end of file
diff --git a/bl54l15_radio0_new.overlay b/bl54l15_radio0_new.overlay
deleted file mode 100644
index 20e3da4..0000000
--- a/bl54l15_radio0_new.overlay
+++ /dev/null
@@ -1,44 +0,0 @@
-&uart20 {
- compatible = "nordic,nrf-uarte";
- status = "okay";
- current-speed = <1000000>;
- hw-flow-control;
-};
-
-
-&pinctrl {
- uart20_default: uart20_default {
- group1 {
- psels = ,
- ;
- };
- group2 {
- psels = ,
- ;
- bias-pull-up;
- };
- };
-
- uart20_sleep: uart20_sleep {
- group1 {
- psels = ,
- ,
- ,
- ;
- low-power-enable;
- };
- };
-};
-
-/ {
- chosen {
- //zephyr,console = &uart20;
- //zephyr,shell-uart = &uart20;
- //zephyr,uart-mcumgr = &uart0;
- //zephyr,bt-mon-uart = &uart0;
- zephyr,bt-c2h-uart = &uart20;
- };
-};
-&power {
- status = "okay";
-};
\ No newline at end of file
diff --git a/bl54l15_radio0_radio1.overlay b/bl54l15_radio0_radio1.overlay
index ebca968..9c65a87 100644
--- a/bl54l15_radio0_radio1.overlay
+++ b/bl54l15_radio0_radio1.overlay
@@ -1,3 +1,10 @@
+&lfxo {
+ status = "okay";
+ clock-frequency = <32768>;
+ load-capacitors = "internal";
+ load-capacitance-femtofarad = <7000>;
+};
+
&uart20 {
compatible = "nordic,nrf-uarte";
status = "okay";
diff --git a/bl54l15_radio1.overlay b/bl54l15_radio1.overlay
deleted file mode 100644
index 2109160..0000000
--- a/bl54l15_radio1.overlay
+++ /dev/null
@@ -1,43 +0,0 @@
-&uart20 {
- compatible = "nordic,nrf-uarte";
- status = "okay";
- current-speed = <1000000>;
- hw-flow-control;
-};
-
-&pinctrl {
- uart20_default: uart20_default {
- group1 {
- psels = ,
- ;
- };
- group2 {
- psels = ,
- ;
- bias-pull-up;
- };
- };
-
- uart20_sleep: uart20_sleep {
- group1 {
- psels = ,
- ,
- ,
- ;
- low-power-enable;
- };
- };
-};
-
-/ {
- chosen {
- //zephyr,console = &uart20;
- //zephyr,shell-uart = &uart20;
- //zephyr,uart-mcumgr = &uart0;
- //zephyr,bt-mon-uart = &uart0;
- zephyr,bt-c2h-uart = &uart20;
- };
-};
-&power {
- status = "okay";
-};
\ No newline at end of file
diff --git a/bl654pa_gpio_uart.overlay b/bl654pa_gpio_uart.overlay
deleted file mode 100644
index 00e6fd0..0000000
--- a/bl654pa_gpio_uart.overlay
+++ /dev/null
@@ -1,58 +0,0 @@
-&uart0 {
- compatible = "nordic,nrf-uarte";
- status = "okay";
- current-speed = <1000000>; //<115200>;
- hw-flow-control;
-};
-
-
-&pinctrl {
- uart0_default: uart0_default {
- group1 {
- psels = , // SIO6
- ; //SIO5
- };
- group2 {
- psels = , //SIO8
- ; //SIO7
- bias-pull-up;
- };
- };
-
- uart0_sleep: uart0_sleep {
- group1 {
- psels = ,
- ,
- ,
- ;
- low-power-enable;
- };
- };
-};
-
-/ {
- chosen {
- //zephyr,console = &uart0;
- //zephyr,shell-uart = &uart0;
- //zephyr,uart-mcumgr = &uart0;
- //zephyr,bt-mon-uart = &uart0;
- zephyr,bt-c2h-uart = &uart0;
- };
-};
-
-/ {
- /* Information from Nordic SDK-Based Application Development and SKY66112 datasheet */
- nrf_radio_fem: fem { // node needs to be named nrf_radio_fem for the build system to pull in the nececcarry configs
- compatible = "generic-fem-two-ctrl-pins";
- ctx-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
- crx-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
- ctx-settle-time-us = <23>;
- crx-settle-time-us = <5>;
- tx-gain-db = <22>;
- rx-gain-db = <11>;
- };
-};
-
-&radio {
- fem = <&nrf_radio_fem>;
-};
diff --git a/boards/nrf54l15dk_nrf54l15_cpuapp.overlay b/boards/nrf54l15dk_nrf54l15_cpuapp.overlay
index 7613ab8..fa92d38 100644
--- a/boards/nrf54l15dk_nrf54l15_cpuapp.overlay
+++ b/boards/nrf54l15dk_nrf54l15_cpuapp.overlay
@@ -4,6 +4,13 @@
* SPDX-License-Identifier: Apache-2.0
*/
+&lfxo {
+ status = "okay";
+ clock-frequency = <32768>;
+ load-capacitors = "internal";
+ load-capacitance-femtofarad = <7000>;
+};
+
&uart20 {
compatible = "nordic,nrf-uarte";
current-speed = <1000000>;
diff --git a/hci.code-workspace b/hci.code-workspace
deleted file mode 100644
index d2b5f98..0000000
--- a/hci.code-workspace
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "folders": [
- {
- "path": "../echo_bot"
- },
- {
- "path": "."
- }
- ],
- "settings": {}
-}
\ No newline at end of file
diff --git a/lfxo.conf b/lfxo.conf
new file mode 100644
index 0000000..ae374c2
--- /dev/null
+++ b/lfxo.conf
@@ -0,0 +1,4 @@
+CONFIG_CLOCK_CONTROL=y
+CONFIG_CLOCK_CONTROL_NRF=y
+CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
+CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=n
diff --git a/nrf52840_gpio_uart.overlay b/nrf52840_gpio_uart.overlay
deleted file mode 100644
index bfdc3af..0000000
--- a/nrf52840_gpio_uart.overlay
+++ /dev/null
@@ -1,17 +0,0 @@
-&uart0 {
- compatible = "nordic,nrf-uarte";
- status = "okay";
- current-speed = <1000000>;
- hw-flow-control;
-};
-
-
-/ {
- chosen {
- // zephyr,console = &uart0;
- // zephyr,shell-uart = &uart0;
- // zephyr,uart-mcumgr = &uart0;
- // zephyr,bt-mon-uart = &uart0;
- zephyr,bt-c2h-uart = &uart0; // make uart0 the hci interfac
- };
-};
\ No newline at end of file
diff --git a/overlay-all-bt_ll_sw_split.conf b/overlay-all-bt_ll_sw_split.conf
deleted file mode 100644
index 8d6dbdd..0000000
--- a/overlay-all-bt_ll_sw_split.conf
+++ /dev/null
@@ -1,109 +0,0 @@
-CONFIG_BT_BUF_EVT_RX_COUNT=16
-
-CONFIG_BT_BUF_EVT_RX_SIZE=255
-CONFIG_BT_BUF_ACL_RX_SIZE=255
-CONFIG_BT_BUF_ACL_TX_SIZE=251
-CONFIG_BT_BUF_CMD_TX_SIZE=255
-
-# Host and Controller common dependencies
-CONFIG_BT_EXT_ADV=y
-CONFIG_BT_PER_ADV=y
-CONFIG_BT_PER_ADV_SYNC=y
-CONFIG_BT_PER_ADV_SYNC_MAX=2
-
-# Broadcast and Connected ISO
-CONFIG_BT_ISO_BROADCASTER=y
-CONFIG_BT_ISO_SYNC_RECEIVER=y
-CONFIG_BT_ISO_CENTRAL=y
-CONFIG_BT_ISO_PERIPHERAL=y
-
-# ISO Streams
-CONFIG_BT_ISO_MAX_CHAN=2
-
-# Controller
-CONFIG_BT_LL_SW_SPLIT=y
-CONFIG_BT_CTLR_ASSERT_HANDLER=y
-CONFIG_BT_CTLR_DTM_HCI=y
-
-# Rx ACL and Adv Reports
-CONFIG_BT_CTLR_RX_BUFFERS=9
-CONFIG_BT_CTLR_DATA_LENGTH_MAX=251
-
-# Coded PHY support
-CONFIG_BT_CTLR_PHY_CODED=y
-
-# Advertising Sets and Extended Scanning
-CONFIG_BT_CTLR_ADV_EXT=y
-CONFIG_BT_CTLR_ADV_SET=3
-CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=191
-CONFIG_BT_CTLR_SCAN_DATA_LEN_MAX=1650
-
-CONFIG_BT_CTLR_ADVANCED_FEATURES=y
-CONFIG_BT_CTLR_ADV_AUX_SET=3
-CONFIG_BT_CTLR_ADV_AUX_PDU_BACK2BACK=y
-CONFIG_BT_CTLR_ADV_SYNC_SET=3
-CONFIG_BT_CTLR_ADV_SYNC_PDU_BACK2BACK=y
-CONFIG_BT_CTLR_ADV_DATA_BUF_MAX=6
-
-# Increase the below to receive interleaved advertising chains
-CONFIG_BT_CTLR_SCAN_AUX_SET=1
-
-CONFIG_BT_CTLR_ADV_RESERVE_MAX=n
-CONFIG_BT_CTLR_CENTRAL_RESERVE_MAX=n
-CONFIG_BT_CTLR_SLOT_RESERVATION_UPDATE=n
-CONFIG_BT_CTLR_SCAN_UNRESERVED=y
-CONFIG_BT_TICKER_NEXT_SLOT_GET_MATCH=y
-CONFIG_BT_TICKER_EXT=y
-CONFIG_BT_TICKER_EXT_SLOT_WINDOW_YIELD=y
-
-# Control Procedure
-CONFIG_BT_CTLR_LLCP_LOCAL_PROC_CTX_BUF_NUM=6
-
-# Direction Finding
-CONFIG_BT_CTLR_DF=y
-CONFIG_BT_CTLR_DF_PER_ADV_CTE_NUM_MAX=3
-CONFIG_BT_CTLR_DF_PER_SCAN_CTE_NUM_MAX=3
-
-# Direction Finding Tx
-CONFIG_BT_CTLR_DF_CTE_TX=y
-CONFIG_BT_CTLR_DF_CONN_CTE_TX=y
-CONFIG_BT_CTLR_DF_ANT_SWITCH_TX=y
-CONFIG_BT_CTLR_DF_CONN_CTE_RSP=y
-
-# Direction Finding Rx
-CONFIG_BT_CTLR_DF_CTE_RX=y
-CONFIG_BT_CTLR_DF_CONN_CTE_RX=y
-CONFIG_BT_CTLR_DF_ANT_SWITCH_RX=y
-CONFIG_BT_CTLR_DF_CONN_CTE_REQ=y
-
-# ISO Broadcaster Controller
-CONFIG_BT_CTLR_ADV_EXT=y
-CONFIG_BT_CTLR_ADV_PERIODIC=y
-CONFIG_BT_CTLR_ADV_ISO=y
-CONFIG_BT_CTLR_ADV_ISO_PDU_LEN_MAX=247
-CONFIG_BT_CTLR_ADV_ISO_STREAM_MAX=2
-
-# ISO Receive Controller
-CONFIG_BT_CTLR_ADV_EXT=y
-CONFIG_BT_CTLR_SYNC_PERIODIC=y
-CONFIG_BT_CTLR_SYNC_ISO=y
-CONFIG_BT_CTLR_SYNC_ISO_PDU_LEN_MAX=251
-CONFIG_BT_CTLR_SYNC_ISO_STREAM_MAX=2
-
-# ISO Connection Oriented
-CONFIG_BT_CTLR_CENTRAL_ISO=y
-CONFIG_BT_CTLR_PERIPHERAL_ISO=y
-CONFIG_BT_CTLR_CONN_ISO_SDU_LEN_MAX=247
-CONFIG_BT_CTLR_CONN_ISO_PDU_LEN_MAX=251
-
-# ISO Transmissions
-CONFIG_BT_CTLR_ISO_TX_BUFFERS=8
-CONFIG_BT_CTLR_ISO_TX_BUFFER_SIZE=255
-CONFIG_BT_CTLR_ISOAL_SOURCES=2
-
-# ISO Receptions
-CONFIG_BT_CTLR_ISO_RX_BUFFERS=8
-CONFIG_BT_CTLR_ISOAL_SINKS=2
-
-# Tx Power Dynamic Control
-CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y
diff --git a/prj.conf b/prj.conf
index 0ad4858..986dae0 100644
--- a/prj.conf
+++ b/prj.conf
@@ -4,6 +4,11 @@ CONFIG_UART_CONSOLE=n
CONFIG_GPIO=y
CONFIG_SERIAL=y
CONFIG_UART_INTERRUPT_DRIVEN=y
+
+CONFIG_CLOCK_CONTROL=y
+CONFIG_CLOCK_CONTROL_NRF=y
+CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
+CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=n
CONFIG_BT=y
CONFIG_BT_CTLR=y
CONFIG_BT_LL_SOFTDEVICE=y