Hi,
The project is based on nrf cloud reset FOTA sample, ncs 2.6.1, testing on nrf9160DK. I use a FT232 to monitor the output from uart2.
I want:
uart0: used for outputting system logs via the console.
uart2: used for interactive shell commands and SMP
The issue is that I see all the LOG_INF, LOG_ERR message printed to both uart0 and uart2.
I only want uart0 to log console info and uart2 for shell and SMP.
Can you please check where I was wrong:
prj.conf
# Sample CONFIG_REST_FOTA_DO_JITP=n CONFIG_NRF_CLOUD_REST_FOTA_SAMPLE_LOG_LEVEL_INF=y # nRF Cloud REST CONFIG_NRF_CLOUD_REST=y CONFIG_NRF_CLOUD_CLIENT_ID_SRC_IMEI=y CONFIG_MODEM_JWT=y CONFIG_NETWORKING=y CONFIG_NET_SOCKETS=y CONFIG_NET_SOCKETS_POSIX_NAMES=y CONFIG_NET_NATIVE=n CONFIG_NRF_CLOUD_CHECK_CREDENTIALS=y # FOTA CONFIG_NRF_CLOUD_FOTA_POLL=y # FOTA download CONFIG_FOTA_DOWNLOAD=y CONFIG_FOTA_DOWNLOAD_PROGRESS_EVT=y CONFIG_DFU_TARGET=y CONFIG_DOWNLOAD_CLIENT=y # MCUBOOT CONFIG_BOOTLOADER_MCUBOOT=y CONFIG_IMG_MANAGER=y CONFIG_STREAM_FLASH=y CONFIG_MCUBOOT_IMG_MANAGER=y CONFIG_IMG_ERASE_PROGRESSIVELY=y CONFIG_SECURE_BOOT=y CONFIG_BUILD_S1_VARIANT=y CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=n # Settings CONFIG_FLASH=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_FLASH_MAP=y CONFIG_FCB=y CONFIG_SETTINGS=y CONFIG_SETTINGS_FCB=y CONFIG_MPU_ALLOW_FLASH_WRITE=y # Button/LED support CONFIG_DK_LIBRARY=y # Modem/LTE Link CONFIG_NRF_MODEM_LIB=y CONFIG_LTE_LINK_CONTROL=y # AT Host library - Used to send AT commands directy from an UART terminal and to allow # integration with nRF Connect for Desktop applications. CONFIG_AT_HOST_LIBRARY=y # Extended AT host stack size since some nrf_cloud credentials are longer than 1024 bytes. CONFIG_AT_HOST_STACK_SIZE=2048 # Modem info CONFIG_MODEM_INFO=y CONFIG_MODEM_INFO_ADD_DEVICE=y CONFIG_MODEM_INFO_ADD_NETWORK=y CONFIG_MODEM_INFO_ADD_SIM=y CONFIG_MODEM_INFO_ADD_SIM_ICCID=y CONFIG_MODEM_INFO_ADD_SIM_IMSI=y # System CONFIG_HEAP_MEM_POOL_SIZE=8192 CONFIG_MAIN_STACK_SIZE=8192 CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=8192 CONFIG_ASSERT=y CONFIG_REBOOT=y CONFIG_FPU=y CONFIG_PICOLIBC_IO_FLOAT=y # Logging CONFIG_LOG=y CONFIG_LOG_MODE_IMMEDIATE=y CONFIG_UART_INTERRUPT_DRIVEN=y #Added for SMP CONFIG_DFU_TARGET_SMP=y CONFIG_SMP_CLIENT=y CONFIG_MCUMGR_GRP_IMG_CLIENT=y CONFIG_MCUMGR_GRP_OS_CLIENT=y CONFIG_MCUMGR=y CONFIG_ZCBOR=y #Fix: fatal error: bootutil/image.h: No such file or directory #include <bootutil/image.h> CONFIG_BOOT_IMAGE_ACCESS_HOOKS=y #Use custom UUID CONFIG_NRF_CLOUD_CLIENT_ID_SRC_INTERNAL_UUID=y # Disable UART Console and enable the RTT console # if uncommented, can see LOG_INF from uart2 and RTT, only +CSCON: from uart0 # CONFIG_UART_CONSOLE=n # CONFIG_RTT_CONSOLE=y # CONFIG_USE_SEGGER_RTT=y # if CONFIG_UART_CONSOLE=n, CONFIG_LOG_BACKEND_UART=y, can only see these +CSCON: type from uart0, LOG_INF from uart2 # if CONFIG_UART_CONSOLE=n, CONFIG_LOG_BACKEND_UART=n, can only see these +CSCON: type from uart0, no LOG_INF from uart0 and uart2 # if CONFIG_UART_CONSOLE=y, CONFIG_LOG_BACKEND_UART=n, can only see LOG_INF from uart2, not from uart0 # if CONFIG_UART_CONSOLE=y, CONFIG_LOG_BACKEND_UART=y, can see LOG_INF and +CSCON from both uart0 and uart2 CONFIG_UART_CONSOLE=y CONFIG_LOG_BACKEND_UART=y #Change sec_tag # CONFIG_NRF_CLOUD_SEC_TAG=21051025 #MCUMGR_CLIENT # Enable mcumgr smp client and shell CONFIG_CONSOLE=y CONFIG_SHELL=y CONFIG_NRF_MCUMGR_SMP_CLIENT=y CONFIG_NRF_MCUMGR_SMP_CLIENT_SHELL=y # Ensure an MCUboot-compatible binary is generated. CONFIG_BOOTLOADER_MCUBOOT=y # Enable flash operations. CONFIG_FLASH=y # Enable most core commands. CONFIG_MCUMGR_GRP_IMG=y CONFIG_MCUMGR_GRP_OS=y # Enable the serial mcumgr transport. # if CONFIG_MCUMGR_TRANSPORT_UART=n get error - nrf_mcumgr_smp_client: Failed to init DFU target SMP, something wrong with smp_client_object_init(&smp_client, SMP_SERIAL_TRANSPORT); CONFIG_MCUMGR_TRANSPORT_UART=y CONFIG_UART_MCUMGR_RX_BUF_COUNT=4 # Extend System Workqueue stack size # CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2304 # Application Event Manager: to fix: app_event_manager_priv.h: No such file CONFIG_APP_EVENT_MANAGER=y #To fix: RX ring buffer full. in shell_uart.c CONFIG_MCUMGR_TRANSPORT_SHELL=y
Overlay
/* Generic PIN definition for UART2 from nrf9160 to nRF52840 */ &pinctrl { mcumgr_uart_default: mcumgr_uart_default { group1 { psels = <NRF_PSEL(UART_TX, 0, 22)>;//, 29 //<NRF_PSEL(UART_RTS, 0, 27)>; }; group2 { psels = <NRF_PSEL(UART_RX, 0, 21)>;//, 28 //<NRF_PSEL(UART_CTS, 0, 26)>; bias-pull-up; }; }; mcumgr_uart_sleep: mcumgr_uart_sleep { group1 { psels = <NRF_PSEL(UART_TX, 0, 22)>, //29 <NRF_PSEL(UART_RX, 0, 21)>;//, 28 //<NRF_PSEL(UART_RTS, 0, 27)>, //<NRF_PSEL(UART_CTS, 0, 26)>; low-power-enable; }; }; }; &uart2 { compatible = "nordic,nrf-uarte"; //current-speed = <1000000>; current-speed = <115200>; status = "okay"; pinctrl-0 = <&mcumgr_uart_default>; pinctrl-1 = <&mcumgr_uart_sleep>; pinctrl-names = "default", "sleep"; //hw-flow-control; }; / { chosen { zephyr,console = &uart0; zephyr,shell-uart = &uart2;//&uart0; zephyr,uart-mcumgr = &uart2; }; }; //Merge setting from nrf9160dk_nrf9160_ns_0_14_0.overlay /* * Copyright (c) 2022 Nordic Semiconductor ASA * * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ / { chosen { nordic,pm-ext-flash = &mx25r64; }; }; /* External flash device is disabled by default */ &mx25r64 { status = "okay"; }; //Collide with UART2 &i2c2 { status = "disabled"; };
Thanks
/CJ