LOG print goes to both uart0 and uart2 - nrf9160DK

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

Related