# VesiScan BASIC - Zephyr configuration # Stage 1: GPIO + Power Control + LED + Debug Logging # Stage 2: BLE (NUS) CONFIG_GPIO=y # Debug Message (RTT) # Zephyr logging subsystem enable. CONFIG_LOG=y # Print logs immediately when log API is called. CONFIG_LOG_MODE_IMMEDIATE=y # Default log level: 3 = INFO. CONFIG_LOG_DEFAULT_LEVEL=3 # Do not add ANSI color codes to logs. CONFIG_LOG_BACKEND_SHOW_COLOR=n # Enable printk(). CONFIG_PRINTK=y # Send Zephyr LOG output to SEGGER RTT. CONFIG_LOG_BACKEND_RTT=y # Enable SEGGER RTT support. CONFIG_USE_SEGGER_RTT=y # Enable Zephyr console subsystem. CONFIG_CONSOLE=y # Send console/printk output to RTT. CONFIG_RTT_CONSOLE=y # If RTT buffer is full, wait instead of dropping logs. CONFIG_LOG_BACKEND_RTT_MODE_BLOCK=y # RTT log backend output buffer size. CONFIG_LOG_BACKEND_RTT_OUTPUT_BUFFER_SIZE=1024 # Disable UART logging/console/serial driver. This project uses RTT instead of UART. CONFIG_LOG_BACKEND_UART=n CONFIG_SERIAL=n CONFIG_UART_CONSOLE=n # BLE stack # Enable Zephyr Bluetooth host stack. CONFIG_BT=y # Keep Bluetooth internal logs at warning level. CONFIG_BT_LOG_LEVEL_WRN=y # Operate as a BLE peripheral device. CONFIG_BT_PERIPHERAL=y # Default local device name. Runtime advertising name is set from SERIAL_NO by bt_set_name(). CONFIG_BT_DEVICE_NAME="VBT260300ZZ" # Allow runtime BLE name change with bt_set_name(SERIAL_NO). CONFIG_BT_DEVICE_NAME_DYNAMIC=y # Maximum runtime BLE name length. Current serial number is 12 characters. CONFIG_BT_DEVICE_NAME_MAX=16 # Allow only one simultaneous peripheral link. CONFIG_BT_MAX_CONN=1 # BLE NUS (Nordic UART Service) # Enable Nordic UART Service for BLE data exchange. CONFIG_BT_NUS=y # BLE PHY # Disable 2M PHY so the link stays on 1M PHY. CONFIG_BT_CTLR_PHY_2M=n # GATT / MTU # Enable GATT client support. May be removable if no client API is used. CONFIG_BT_GATT_CLIENT=y # L2CAP TX MTU. ATT MTU is this value minus 3 bytes. CONFIG_BT_L2CAP_TX_MTU=247 # BLE ACL TX buffer size for larger MTU packets. CONFIG_BT_BUF_ACL_TX_SIZE=251 # BLE ACL RX buffer size for larger MTU packets. CONFIG_BT_BUF_ACL_RX_SIZE=251 # Connection parameters # Preferred minimum connection interval: 12 x 1.25ms = 15ms. CONFIG_BT_PERIPHERAL_PREF_MIN_INT=12 # Preferred maximum connection interval: 12 x 1.25ms = 15ms. CONFIG_BT_PERIPHERAL_PREF_MAX_INT=12 # Slave latency 0: do not skip connection events. CONFIG_BT_PERIPHERAL_PREF_LATENCY=0 # Supervision timeout: 1000 x 10ms = 10s. CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=1000 # BLE security (production) # Enable BLE Security Manager Protocol for pairing/bonding. CONFIG_BT_SMP=y # Allow bonding so pairing information can be stored and reused. CONFIG_BT_BONDABLE=y # App provides the passkey through the auth callback. CONFIG_BT_APP_PASSKEY=y # Require MITM-protected pairing. CONFIG_BT_SMP_ENFORCE_MITM=y # Allow only LE Secure Connections pairing. CONFIG_BT_SMP_SC_ONLY=y # Store and restore BLE bond/security information through settings. CONFIG_BT_SETTINGS=y # Maximum number of stored bonded peers. CONFIG_BT_MAX_PAIRED=20 # ADC (battery) # Enable Zephyr ADC driver for battery voltage measurement. CONFIG_ADC=y # I2C (IMU: ICM42670P) # Enable Zephyr I2C driver for IMU communication. CONFIG_I2C=y # Direct nrfx SPIM3 driver for ADC121S051 # Enable nrfx SPIM driver for direct echo ADC SPI control. CONFIG_NRFX_SPIM=y # System # Heap memory available for runtime dynamic allocation. CONFIG_HEAP_MEM_POOL_SIZE=4096 # Stack size for Zephyr system workqueue thread. CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 # BLE RX stack sizes # BLE RX thread stack size. Helps prevent overflow during RX/security processing. CONFIG_BT_RX_STACK_SIZE=4096 # DFU # Build the application for MCUboot bootloader environment. CONFIG_BOOTLOADER_MCUBOOT=y # Enable zcbor library used by mcumgr/SMP/DFU CBOR payloads. CONFIG_ZCBOR=y # Version string used by MCUboot imgtool signing and versioned DFU zip naming. CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="0.0.2+9" # Internal flash # Enable internal flash driver. CONFIG_FLASH=y # Enable flash partition/slot lookup APIs. CONFIG_FLASH_MAP=y # Persistent application settings (FDS replacement) # Enable Zephyr NVS storage. CONFIG_NVS=y # Enable Zephyr settings subsystem. CONFIG_SETTINGS=y # Use NVS as the settings backend. CONFIG_SETTINGS_NVS=y # Number of flash sectors used by settings/NVS backend. CONFIG_SETTINGS_NVS_SECTOR_COUNT=2 # settings_storage partition size. 0x2000 = 8KB. CONFIG_PM_PARTITION_SIZE_SETTINGS_STORAGE=0x2000 # mcumgr framework # Enable mcumgr management framework. CONFIG_MCUMGR=y # mcumgr over BLE transport # Enable mcumgr/SMP messages over BLE SMP service. CONFIG_MCUMGR_TRANSPORT_BT=y # Require authenticated BLE connection for mcumgr read/write operations. CONFIG_MCUMGR_TRANSPORT_BT_PERM_RW_AUTHEN=y # Reassemble SMP packets fragmented over BLE. CONFIG_MCUMGR_TRANSPORT_BT_REASSEMBLY=y # mcumgr transport receive buffer size for DFU image chunks. CONFIG_MCUMGR_TRANSPORT_NETBUF_SIZE=1024 # CBOR (mcumgr/SMP/DFU command payload format) # Maximum CBOR byte/string length. CONFIG_ZCBOR_MAX_STR_LEN=512 # mcumgr callbacks/hooks # Enable mcumgr management event notification hooks. CONFIG_MCUMGR_MGMT_NOTIFICATION_HOOKS=y # Enable image upload/DFU status hooks. CONFIG_MCUMGR_GRP_IMG_STATUS_HOOKS=y # Enable SMP command done/failed status hooks. CONFIG_MCUMGR_SMP_COMMAND_STATUS_HOOKS=y # mcumgr command groups # Enable image management group: upload, test, confirm, state. CONFIG_MCUMGR_GRP_IMG=y # Enable OS management group: reset and OS-related commands. CONFIG_MCUMGR_GRP_OS=y # MCUboot image handling # Enable image manager for MCUboot image state/verify/confirm operations. CONFIG_IMG_MANAGER=y # Write uploaded image data to flash as a stream. CONFIG_STREAM_FLASH=y # Netcore HCI IPC # nRF52840 build does not use network core HCI IPC. #CONFIG_SB_CONFIG_NETCORE_HCI_IPC=y #SB_CONFIG_NETCORE_HCI_IPC=y