This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NRF_LOG_INFO: Only the last log statement is printed out

I inherited a Nordic project that is running on the 52832 board with the 15.3 version of the SDK.  The project uses CLI, TWI, and logging.  The developer has to jump through hoops to get all 3 functioning at the same time.  I am now expanding the project.  The issue.  NRF_LOG_INFO works fine if I provide a constant string (e.q. NRF_LOG_INFO("Hello world");)

However, the minute I create a generic logging utility which uses non-stack memory (using data segment memory - statically declared array), only the last logged data is printed several times. 

so something like

XXX_LOG_PRINTF(LOG_INFO, "sensor initialization start.");
.... some more code here.....
XXX_LOG_PRINTF(LOG_INFO, "sensor initialization complete.");
My logging utility can take variable length arguments, etc.  So the "constant strings" you see in the calls above gets copied to a statically declared string which gets passed to the Nordic logging utility.
I only see the last line printed twice.  I have turned off deferred, so I am at a loss.

I have read the chapter on logging and think I understand the buffering concept on the front and back end.   I have tried messing with the sdk_config.h to no avail.   Here are what I think are relevant:

All my CLI commands and output work great.

#define NRF_LOG_DEFERRED 0
#define NRF_LOG_CLI_CMDS 1
#define NRF_LOG_FILTERS_ENABLED 0
The ways I have tried to log the info:
NRF_LOG_INFO("%s\n", NRF_LOG_PUSH((char *)pLogMsg));
or
NRF_LOG_RAW_INFO
I am running on Ubuntu linux, using minicom (which works great for constant strings and cli).  Segger, RTT or any other IDE is not an option.  This must be done via UART<
Please let me know if you need additional info to assist in this.
Thanks,
Jim
  • /**
    * Copyright (c) 2017 - 2019, Nordic Semiconductor ASA
    *
    * All rights reserved.
    *
    * Redistribution and use in source and binary forms, with or without modification,
    * are permitted provided that the following conditions are met:
    *
    * 1. Redistributions of source code must retain the above copyright notice, this
    * list of conditions and the following disclaimer.
    *
    * 2. Redistributions in binary form, except as embedded into a Nordic
    * Semiconductor ASA integrated circuit in a product or a software update for
    * such product, must reproduce the above copyright notice, this list of
    * conditions and the following disclaimer in the documentation and/or other
    * materials provided with the distribution.
    *
    * 3. Neither the name of Nordic Semiconductor ASA nor the names of its
    * contributors may be used to endorse or promote products derived from this
    * software without specific prior written permission.
    *
    * 4. This software, with or without modification, must only be used with a
    * Nordic Semiconductor ASA integrated circuit.
    *
    * 5. Any software provided in binary form under this license must not be reverse
    * engineered, decompiled, modified and/or disassembled.
    *
    * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
    * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
    * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
    * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
    * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    *
    */

    #ifndef SDK_CONFIG_H
    #define SDK_CONFIG_H
    // <<< Use Configuration Wizard in Context Menu >>>\n
    #ifdef USE_APP_CONFIG
    #include "app_config.h"
    #endif
    // <h> nRF_Drivers

    //==========================================================
    // <e> GPIOTE_ENABLED - nrf_drv_gpiote - GPIOTE peripheral driver - legacy layer
    //==========================================================
    #ifndef GPIOTE_ENABLED
    #define GPIOTE_ENABLED 1
    #endif
    // <o> GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS - Number of lower power input pins
    #ifndef GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS
    #define GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 4
    #endif

    // <o> GPIOTE_CONFIG_IRQ_PRIORITY - Interrupt priority

    // <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
    // <0=> 0 (highest)
    // <1=> 1
    // <2=> 2
    // <3=> 3
    // <4=> 4
    // <5=> 5
    // <6=> 6
    // <7=> 7

    #ifndef GPIOTE_CONFIG_IRQ_PRIORITY
    #define GPIOTE_CONFIG_IRQ_PRIORITY 6
    #endif

    // </e>

    // <e> NRFX_CLOCK_ENABLED - nrfx_clock - CLOCK peripheral driver
    //==========================================================
    #ifndef NRFX_CLOCK_ENABLED
    #define NRFX_CLOCK_ENABLED 1
    #endif
    // <o> NRFX_CLOCK_CONFIG_LF_SRC - LF Clock Source

    // <0=> RC
    // <1=> XTAL
    // <2=> Synth
    // <131073=> External Low Swing
    // <196609=> External Full Swing

    #ifndef NRFX_CLOCK_CONFIG_LF_SRC
    #define NRFX_CLOCK_CONFIG_LF_SRC 1
    #endif

    // <o> NRFX_CLOCK_CONFIG_IRQ_PRIORITY - Interrupt priority

    // <0=> 0 (highest)
    // <1=> 1
    // <2=> 2
    // <3=> 3
    // <4=> 4
    // <5=> 5
    // <6=> 6
    // <7=> 7

    #ifndef NRFX_CLOCK_CONFIG_IRQ_PRIORITY
    #define NRFX_CLOCK_CONFIG_IRQ_PRIORITY 6
    #endif

    // <e> NRFX_CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRFX_CLOCK_CONFIG_LOG_ENABLED
    #define NRFX_CLOCK_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRFX_CLOCK_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRFX_CLOCK_CONFIG_LOG_LEVEL
    #define NRFX_CLOCK_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRFX_CLOCK_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_CLOCK_CONFIG_INFO_COLOR
    #define NRFX_CLOCK_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRFX_CLOCK_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_CLOCK_CONFIG_DEBUG_COLOR
    #define NRFX_CLOCK_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // </e>

    // <e> NRFX_GPIOTE_ENABLED - nrfx_gpiote - GPIOTE peripheral driver
    //==========================================================
    #ifndef NRFX_GPIOTE_ENABLED
    #define NRFX_GPIOTE_ENABLED 1
    #endif
    // <o> NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS - Number of lower power input pins
    #ifndef NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS
    #define NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 1
    #endif

    // <o> NRFX_GPIOTE_CONFIG_IRQ_PRIORITY - Interrupt priority

    // <0=> 0 (highest)
    // <1=> 1
    // <2=> 2
    // <3=> 3
    // <4=> 4
    // <5=> 5
    // <6=> 6
    // <7=> 7

    #ifndef NRFX_GPIOTE_CONFIG_IRQ_PRIORITY
    #define NRFX_GPIOTE_CONFIG_IRQ_PRIORITY 6
    #endif

    // <e> NRFX_GPIOTE_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRFX_GPIOTE_CONFIG_LOG_ENABLED
    #define NRFX_GPIOTE_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRFX_GPIOTE_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRFX_GPIOTE_CONFIG_LOG_LEVEL
    #define NRFX_GPIOTE_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRFX_GPIOTE_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_GPIOTE_CONFIG_INFO_COLOR
    #define NRFX_GPIOTE_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRFX_GPIOTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_GPIOTE_CONFIG_DEBUG_COLOR
    #define NRFX_GPIOTE_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // </e>

    // <e> NRFX_PRS_ENABLED - nrfx_prs - Peripheral Resource Sharing module
    //==========================================================
    #ifndef NRFX_PRS_ENABLED
    #define NRFX_PRS_ENABLED 1
    #endif
    // <q> NRFX_PRS_BOX_0_ENABLED - Enables box 0 in the module.

    #ifndef NRFX_PRS_BOX_0_ENABLED
    #define NRFX_PRS_BOX_0_ENABLED 0
    #endif

    // <q> NRFX_PRS_BOX_1_ENABLED - Enables box 1 in the module.

    #ifndef NRFX_PRS_BOX_1_ENABLED
    #define NRFX_PRS_BOX_1_ENABLED 0
    #endif

    // <q> NRFX_PRS_BOX_2_ENABLED - Enables box 2 in the module.

    #ifndef NRFX_PRS_BOX_2_ENABLED
    #define NRFX_PRS_BOX_2_ENABLED 0
    #endif

    // <q> NRFX_PRS_BOX_3_ENABLED - Enables box 3 in the module.

    #ifndef NRFX_PRS_BOX_3_ENABLED
    #define NRFX_PRS_BOX_3_ENABLED 0
    #endif

    // <q> NRFX_PRS_BOX_4_ENABLED - Enables box 4 in the module.

    #ifndef NRFX_PRS_BOX_4_ENABLED
    #define NRFX_PRS_BOX_4_ENABLED 1
    #endif

    // <e> NRFX_PRS_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRFX_PRS_CONFIG_LOG_ENABLED
    #define NRFX_PRS_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRFX_PRS_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRFX_PRS_CONFIG_LOG_LEVEL
    #define NRFX_PRS_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRFX_PRS_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_PRS_CONFIG_INFO_COLOR
    #define NRFX_PRS_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRFX_PRS_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_PRS_CONFIG_DEBUG_COLOR
    #define NRFX_PRS_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // </e>

    // <e> NRFX_TWIM_ENABLED - nrfx_twim - TWIM peripheral driver
    //==========================================================
    #ifndef NRFX_TWIM_ENABLED
    #define NRFX_TWIM_ENABLED 1
    #endif
    // <q> NRFX_TWIM0_ENABLED - Enable TWIM0 instance

    #ifndef NRFX_TWIM0_ENABLED
    #define NRFX_TWIM0_ENABLED 0
    #endif

    // <q> NRFX_TWIM1_ENABLED - Enable TWIM1 instance

    #ifndef NRFX_TWIM1_ENABLED
    #define NRFX_TWIM1_ENABLED 0
    #endif

    // <o> NRFX_TWIM_DEFAULT_CONFIG_FREQUENCY - Frequency

    // <26738688=> 100k
    // <67108864=> 250k
    // <104857600=> 400k

    #ifndef NRFX_TWIM_DEFAULT_CONFIG_FREQUENCY
    #define NRFX_TWIM_DEFAULT_CONFIG_FREQUENCY 26738688
    #endif

    // <q> NRFX_TWIM_DEFAULT_CONFIG_HOLD_BUS_UNINIT - Enables bus holding after uninit

    #ifndef NRFX_TWIM_DEFAULT_CONFIG_HOLD_BUS_UNINIT
    #define NRFX_TWIM_DEFAULT_CONFIG_HOLD_BUS_UNINIT 0
    #endif

    // <o> NRFX_TWIM_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority

    // <0=> 0 (highest)
    // <1=> 1
    // <2=> 2
    // <3=> 3
    // <4=> 4
    // <5=> 5
    // <6=> 6
    // <7=> 7

    #ifndef NRFX_TWIM_DEFAULT_CONFIG_IRQ_PRIORITY
    #define NRFX_TWIM_DEFAULT_CONFIG_IRQ_PRIORITY 6
    #endif

    // <e> NRFX_TWIM_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRFX_TWIM_CONFIG_LOG_ENABLED
    #define NRFX_TWIM_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRFX_TWIM_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRFX_TWIM_CONFIG_LOG_LEVEL
    #define NRFX_TWIM_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRFX_TWIM_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_TWIM_CONFIG_INFO_COLOR
    #define NRFX_TWIM_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRFX_TWIM_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_TWIM_CONFIG_DEBUG_COLOR
    #define NRFX_TWIM_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <q> NRFX_TWIM_NRF52_ANOMALY_109_WORKAROUND_ENABLED - Enables nRF52 anomaly 109 workaround for TWIM.

    // <i> The workaround uses interrupts to wake up the CPU by catching
    // <i> the start event of zero-frequency transmission, clear the
    // <i> peripheral, set desired frequency, start the peripheral, and
    // <i> the proper transmission. See more in the Errata document or
    // <i> Anomaly 109 Addendum located at infocenter.nordicsemi.com/

    #ifndef NRFX_TWIM_NRF52_ANOMALY_109_WORKAROUND_ENABLED
    #define NRFX_TWIM_NRF52_ANOMALY_109_WORKAROUND_ENABLED 0
    #endif

    // </e>

    // <e> NRFX_TWIS_ENABLED - nrfx_twis - TWIS peripheral driver
    //==========================================================
    #ifndef NRFX_TWIS_ENABLED
    #define NRFX_TWIS_ENABLED 1
    #endif
    // <q> NRFX_TWIS0_ENABLED - Enable TWIS0 instance

    #ifndef NRFX_TWIS0_ENABLED
    #define NRFX_TWIS0_ENABLED 0
    #endif

    // <q> NRFX_TWIS1_ENABLED - Enable TWIS1 instance

    #ifndef NRFX_TWIS1_ENABLED
    #define NRFX_TWIS1_ENABLED 0
    #endif

    // <q> NRFX_TWIS_ASSUME_INIT_AFTER_RESET_ONLY - Assume that any instance would be initialized only once

    // <i> Optimization flag. Registers used by TWIS are shared by other peripherals. Normally, during initialization driver tries to clear all registers to known state before doing the initialization itself. This gives initialization safe procedure, no matter when it would be called. If you activate TWIS only once and do never uninitialize it - set this flag to 1 what gives more optimal code.

    #ifndef NRFX_TWIS_ASSUME_INIT_AFTER_RESET_ONLY
    #define NRFX_TWIS_ASSUME_INIT_AFTER_RESET_ONLY 0
    #endif

    // <q> NRFX_TWIS_NO_SYNC_MODE - Remove support for synchronous mode

    // <i> Synchronous mode would be used in specific situations. And it uses some additional code and data memory to safely process state machine by polling it in status functions. If this functionality is not required it may be disabled to free some resources.

    #ifndef NRFX_TWIS_NO_SYNC_MODE
    #define NRFX_TWIS_NO_SYNC_MODE 0
    #endif

    // <o> NRFX_TWIS_DEFAULT_CONFIG_ADDR0 - Address0
    #ifndef NRFX_TWIS_DEFAULT_CONFIG_ADDR0
    #define NRFX_TWIS_DEFAULT_CONFIG_ADDR0 0
    #endif

    // <o> NRFX_TWIS_DEFAULT_CONFIG_ADDR1 - Address1
    #ifndef NRFX_TWIS_DEFAULT_CONFIG_ADDR1
    #define NRFX_TWIS_DEFAULT_CONFIG_ADDR1 0
    #endif

    // <o> NRFX_TWIS_DEFAULT_CONFIG_SCL_PULL - SCL pin pull configuration

    // <0=> Disabled
    // <1=> Pull down
    // <3=> Pull up

    #ifndef NRFX_TWIS_DEFAULT_CONFIG_SCL_PULL
    #define NRFX_TWIS_DEFAULT_CONFIG_SCL_PULL 0
    #endif

    // <o> NRFX_TWIS_DEFAULT_CONFIG_SDA_PULL - SDA pin pull configuration

    // <0=> Disabled
    // <1=> Pull down
    // <3=> Pull up

    #ifndef NRFX_TWIS_DEFAULT_CONFIG_SDA_PULL
    #define NRFX_TWIS_DEFAULT_CONFIG_SDA_PULL 0
    #endif

    // <o> NRFX_TWIS_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority

    // <0=> 0 (highest)
    // <1=> 1
    // <2=> 2
    // <3=> 3
    // <4=> 4
    // <5=> 5
    // <6=> 6
    // <7=> 7

    #ifndef NRFX_TWIS_DEFAULT_CONFIG_IRQ_PRIORITY
    #define NRFX_TWIS_DEFAULT_CONFIG_IRQ_PRIORITY 6
    #endif

    // <e> NRFX_TWIS_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRFX_TWIS_CONFIG_LOG_ENABLED
    #define NRFX_TWIS_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRFX_TWIS_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRFX_TWIS_CONFIG_LOG_LEVEL
    #define NRFX_TWIS_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRFX_TWIS_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_TWIS_CONFIG_INFO_COLOR
    #define NRFX_TWIS_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRFX_TWIS_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_TWIS_CONFIG_DEBUG_COLOR
    #define NRFX_TWIS_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // </e>

    // <e> NRFX_TWI_ENABLED - nrfx_twi - TWI peripheral driver
    //==========================================================
    #ifndef NRFX_TWI_ENABLED
    #define NRFX_TWI_ENABLED 1
    #endif
    // <q> NRFX_TWI0_ENABLED - Enable TWI0 instance

    #ifndef NRFX_TWI0_ENABLED
    #define NRFX_TWI0_ENABLED 0
    #endif

    // <q> NRFX_TWI1_ENABLED - Enable TWI1 instance

    #ifndef NRFX_TWI1_ENABLED
    #define NRFX_TWI1_ENABLED 0
    #endif

    // <o> NRFX_TWI_DEFAULT_CONFIG_FREQUENCY - Frequency

    // <26738688=> 100k
    // <67108864=> 250k
    // <104857600=> 400k

    #ifndef NRFX_TWI_DEFAULT_CONFIG_FREQUENCY
    #define NRFX_TWI_DEFAULT_CONFIG_FREQUENCY 26738688
    #endif

    // <q> NRFX_TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT - Enables bus holding after uninit

    #ifndef NRFX_TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT
    #define NRFX_TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT 0
    #endif

    // <o> NRFX_TWI_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority

    // <0=> 0 (highest)
    // <1=> 1
    // <2=> 2
    // <3=> 3
    // <4=> 4
    // <5=> 5
    // <6=> 6
    // <7=> 7

    #ifndef NRFX_TWI_DEFAULT_CONFIG_IRQ_PRIORITY
    #define NRFX_TWI_DEFAULT_CONFIG_IRQ_PRIORITY 6
    #endif

    // <e> NRFX_TWI_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRFX_TWI_CONFIG_LOG_ENABLED
    #define NRFX_TWI_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRFX_TWI_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRFX_TWI_CONFIG_LOG_LEVEL
    #define NRFX_TWI_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRFX_TWI_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_TWI_CONFIG_INFO_COLOR
    #define NRFX_TWI_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRFX_TWI_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_TWI_CONFIG_DEBUG_COLOR
    #define NRFX_TWI_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // </e>

    // <e> NRFX_UARTE_ENABLED - nrfx_uarte - UARTE peripheral driver
    //==========================================================
    #ifndef NRFX_UARTE_ENABLED
    #define NRFX_UARTE_ENABLED 1
    #endif
    // <o> NRFX_UARTE0_ENABLED - Enable UARTE0 instance
    #ifndef NRFX_UARTE0_ENABLED
    #define NRFX_UARTE0_ENABLED 0
    #endif

    // <o> NRFX_UARTE_DEFAULT_CONFIG_HWFC - Hardware Flow Control

    // <0=> Disabled
    // <1=> Enabled

    #ifndef NRFX_UARTE_DEFAULT_CONFIG_HWFC
    #define NRFX_UARTE_DEFAULT_CONFIG_HWFC 0
    #endif

    // <o> NRFX_UARTE_DEFAULT_CONFIG_PARITY - Parity

    // <0=> Excluded
    // <14=> Included

    #ifndef NRFX_UARTE_DEFAULT_CONFIG_PARITY
    #define NRFX_UARTE_DEFAULT_CONFIG_PARITY 0
    #endif

    // <o> NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE - Default Baudrate

    // <323584=> 1200 baud
    // <643072=> 2400 baud
    // <1290240=> 4800 baud
    // <2576384=> 9600 baud
    // <3862528=> 14400 baud
    // <5152768=> 19200 baud
    // <7716864=> 28800 baud
    // <8388608=> 31250 baud
    // <10289152=> 38400 baud
    // <15007744=> 56000 baud
    // <15400960=> 57600 baud
    // <20615168=> 76800 baud
    // <30801920=> 115200 baud
    // <61865984=> 230400 baud
    // <67108864=> 250000 baud
    // <121634816=> 460800 baud
    // <251658240=> 921600 baud
    // <268435456=> 1000000 baud

    #ifndef NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE
    #define NRFX_UARTE_DEFAULT_CONFIG_BAUDRATE 30801920
    #endif

    // <o> NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority

    // <0=> 0 (highest)
    // <1=> 1
    // <2=> 2
    // <3=> 3
    // <4=> 4
    // <5=> 5
    // <6=> 6
    // <7=> 7

    #ifndef NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY
    #define NRFX_UARTE_DEFAULT_CONFIG_IRQ_PRIORITY 6
    #endif

    // <e> NRFX_UARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRFX_UARTE_CONFIG_LOG_ENABLED
    #define NRFX_UARTE_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRFX_UARTE_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRFX_UARTE_CONFIG_LOG_LEVEL
    #define NRFX_UARTE_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRFX_UARTE_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_UARTE_CONFIG_INFO_COLOR
    #define NRFX_UARTE_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRFX_UARTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_UARTE_CONFIG_DEBUG_COLOR
    #define NRFX_UARTE_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // </e>

    // <e> NRFX_UART_ENABLED - nrfx_uart - UART peripheral driver
    //==========================================================
    #ifndef NRFX_UART_ENABLED
    #define NRFX_UART_ENABLED 1
    #endif
    // <o> NRFX_UART0_ENABLED - Enable UART0 instance
    #ifndef NRFX_UART0_ENABLED
    #define NRFX_UART0_ENABLED 0
    #endif

    // <o> NRFX_UART_DEFAULT_CONFIG_HWFC - Hardware Flow Control

    // <0=> Disabled
    // <1=> Enabled

    #ifndef NRFX_UART_DEFAULT_CONFIG_HWFC
    #define NRFX_UART_DEFAULT_CONFIG_HWFC 0
    #endif

    // <o> NRFX_UART_DEFAULT_CONFIG_PARITY - Parity

    // <0=> Excluded
    // <14=> Included

    #ifndef NRFX_UART_DEFAULT_CONFIG_PARITY
    #define NRFX_UART_DEFAULT_CONFIG_PARITY 0
    #endif

    // <o> NRFX_UART_DEFAULT_CONFIG_BAUDRATE - Default Baudrate

    // <323584=> 1200 baud
    // <643072=> 2400 baud
    // <1290240=> 4800 baud
    // <2576384=> 9600 baud
    // <3866624=> 14400 baud
    // <5152768=> 19200 baud
    // <7729152=> 28800 baud
    // <8388608=> 31250 baud
    // <10309632=> 38400 baud
    // <15007744=> 56000 baud
    // <15462400=> 57600 baud
    // <20615168=> 76800 baud
    // <30924800=> 115200 baud
    // <61845504=> 230400 baud
    // <67108864=> 250000 baud
    // <123695104=> 460800 baud
    // <247386112=> 921600 baud
    // <268435456=> 1000000 baud

    #ifndef NRFX_UART_DEFAULT_CONFIG_BAUDRATE
    #define NRFX_UART_DEFAULT_CONFIG_BAUDRATE 30924800
    #endif

    // <o> NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority

    // <0=> 0 (highest)
    // <1=> 1
    // <2=> 2
    // <3=> 3
    // <4=> 4
    // <5=> 5
    // <6=> 6
    // <7=> 7

    #ifndef NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY
    #define NRFX_UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
    #endif

    // <e> NRFX_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRFX_UART_CONFIG_LOG_ENABLED
    #define NRFX_UART_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRFX_UART_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRFX_UART_CONFIG_LOG_LEVEL
    #define NRFX_UART_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRFX_UART_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_UART_CONFIG_INFO_COLOR
    #define NRFX_UART_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRFX_UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_UART_CONFIG_DEBUG_COLOR
    #define NRFX_UART_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // </e>

    // <e> NRF_CLOCK_ENABLED - nrf_drv_clock - CLOCK peripheral driver - legacy layer
    //==========================================================
    #ifndef NRF_CLOCK_ENABLED
    #define NRF_CLOCK_ENABLED 1
    #endif
    // <o> CLOCK_CONFIG_LF_SRC - LF Clock Source

    // <0=> RC
    // <1=> XTAL
    // <2=> Synth
    // <131073=> External Low Swing
    // <196609=> External Full Swing

    #ifndef CLOCK_CONFIG_LF_SRC
    #define CLOCK_CONFIG_LF_SRC 1
    #endif

    // <q> CLOCK_CONFIG_LF_CAL_ENABLED - Calibration enable for LF Clock Source

    #ifndef CLOCK_CONFIG_LF_CAL_ENABLED
    #define CLOCK_CONFIG_LF_CAL_ENABLED 0
    #endif

    // <o> CLOCK_CONFIG_IRQ_PRIORITY - Interrupt priority

    // <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
    // <0=> 0 (highest)
    // <1=> 1
    // <2=> 2
    // <3=> 3
    // <4=> 4
    // <5=> 5
    // <6=> 6
    // <7=> 7

    #ifndef CLOCK_CONFIG_IRQ_PRIORITY
    #define CLOCK_CONFIG_IRQ_PRIORITY 6
    #endif

    // </e>

    // <e> TWIS_ENABLED - nrf_drv_twis - TWIS peripheral driver - legacy layer
    //==========================================================
    #ifndef TWIS_ENABLED
    #define TWIS_ENABLED 1
    #endif
    // <q> TWIS0_ENABLED - Enable TWIS0 instance

    #ifndef TWIS0_ENABLED
    #define TWIS0_ENABLED 0
    #endif

    // <q> TWIS1_ENABLED - Enable TWIS1 instance

    #ifndef TWIS1_ENABLED
    #define TWIS1_ENABLED 1
    #endif

    // <q> TWIS_ASSUME_INIT_AFTER_RESET_ONLY - Assume that any instance would be initialized only once

    // <i> Optimization flag. Registers used by TWIS are shared by other peripherals. Normally, during initialization driver tries to clear all registers to known state before doing the initialization itself. This gives initialization safe procedure, no matter when it would be called. If you activate TWIS only once and do never uninitialize it - set this flag to 1 what gives more optimal code.

    #ifndef TWIS_ASSUME_INIT_AFTER_RESET_ONLY
    #define TWIS_ASSUME_INIT_AFTER_RESET_ONLY 0
    #endif

    // <q> TWIS_NO_SYNC_MODE - Remove support for synchronous mode

    // <i> Synchronous mode would be used in specific situations. And it uses some additional code and data memory to safely process state machine by polling it in status functions. If this functionality is not required it may be disabled to free some resources.

    #ifndef TWIS_NO_SYNC_MODE
    #define TWIS_NO_SYNC_MODE 0
    #endif

    // <o> TWIS_DEFAULT_CONFIG_ADDR0 - Address0
    #ifndef TWIS_DEFAULT_CONFIG_ADDR0
    #define TWIS_DEFAULT_CONFIG_ADDR0 0
    #endif

    // <o> TWIS_DEFAULT_CONFIG_ADDR1 - Address1
    #ifndef TWIS_DEFAULT_CONFIG_ADDR1
    #define TWIS_DEFAULT_CONFIG_ADDR1 0
    #endif

    // <o> TWIS_DEFAULT_CONFIG_SCL_PULL - SCL pin pull configuration

    // <0=> Disabled
    // <1=> Pull down
    // <3=> Pull up

    #ifndef TWIS_DEFAULT_CONFIG_SCL_PULL
    #define TWIS_DEFAULT_CONFIG_SCL_PULL 0
    #endif

    // <o> TWIS_DEFAULT_CONFIG_SDA_PULL - SDA pin pull configuration

    // <0=> Disabled
    // <1=> Pull down
    // <3=> Pull up

    #ifndef TWIS_DEFAULT_CONFIG_SDA_PULL
    #define TWIS_DEFAULT_CONFIG_SDA_PULL 0
    #endif

    // <o> TWIS_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority

    // <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
    // <0=> 0 (highest)
    // <1=> 1
    // <2=> 2
    // <3=> 3
    // <4=> 4
    // <5=> 5
    // <6=> 6
    // <7=> 7

    #ifndef TWIS_DEFAULT_CONFIG_IRQ_PRIORITY
    #define TWIS_DEFAULT_CONFIG_IRQ_PRIORITY 6
    #endif

    // </e>

    // <e> TWI_ENABLED - nrf_drv_twi - TWI/TWIM peripheral driver - legacy layer
    //==========================================================
    #ifndef TWI_ENABLED
    #define TWI_ENABLED 1
    #endif
    // <o> TWI_DEFAULT_CONFIG_FREQUENCY - Frequency

    // <26738688=> 100k
    // <67108864=> 250k
    // <104857600=> 400k

    #ifndef TWI_DEFAULT_CONFIG_FREQUENCY
    #define TWI_DEFAULT_CONFIG_FREQUENCY 26738688
    #endif

    // <q> TWI_DEFAULT_CONFIG_CLR_BUS_INIT - Enables bus clearing procedure during init

    #ifndef TWI_DEFAULT_CONFIG_CLR_BUS_INIT
    #define TWI_DEFAULT_CONFIG_CLR_BUS_INIT 0
    #endif

    // <q> TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT - Enables bus holding after uninit

    #ifndef TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT
    #define TWI_DEFAULT_CONFIG_HOLD_BUS_UNINIT 0
    #endif

    // <o> TWI_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority

    // <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
    // <0=> 0 (highest)
    // <1=> 1
    // <2=> 2
    // <3=> 3
    // <4=> 4
    // <5=> 5
    // <6=> 6
    // <7=> 7

    #ifndef TWI_DEFAULT_CONFIG_IRQ_PRIORITY
    #define TWI_DEFAULT_CONFIG_IRQ_PRIORITY 6
    #endif

    // <e> TWI0_ENABLED - Enable TWI0 instance
    //==========================================================
    #ifndef TWI0_ENABLED
    #define TWI0_ENABLED 1
    #endif
    // <q> TWI0_USE_EASY_DMA - Use EasyDMA (if present)

    #ifndef TWI0_USE_EASY_DMA
    #define TWI0_USE_EASY_DMA 0
    #endif

    // </e>

    // <e> TWI1_ENABLED - Enable TWI1 instance
    //==========================================================
    #ifndef TWI1_ENABLED
    #define TWI1_ENABLED 0
    #endif
    // <q> TWI1_USE_EASY_DMA - Use EasyDMA (if present)

    #ifndef TWI1_USE_EASY_DMA
    #define TWI1_USE_EASY_DMA 0
    #endif

    // </e>

    // <q> TWIM_NRF52_ANOMALY_109_WORKAROUND_ENABLED - Enables nRF52 anomaly 109 workaround for TWIM.

    // <i> The workaround uses interrupts to wake up the CPU by catching
    // <i> the start event of zero-frequency transmission, clear the
    // <i> peripheral, set desired frequency, start the peripheral, and
    // <i> the proper transmission. See more in the Errata document or
    // <i> Anomaly 109 Addendum located at infocenter.nordicsemi.com/

    #ifndef TWIM_NRF52_ANOMALY_109_WORKAROUND_ENABLED
    #define TWIM_NRF52_ANOMALY_109_WORKAROUND_ENABLED 0
    #endif

    // </e>

    // <e> UART_ENABLED - nrf_drv_uart - UART/UARTE peripheral driver - legacy layer
    //==========================================================
    #ifndef UART_ENABLED
    #define UART_ENABLED 1
    #endif
    // <o> UART_DEFAULT_CONFIG_HWFC - Hardware Flow Control

    // <0=> Disabled
    // <1=> Enabled

    #ifndef UART_DEFAULT_CONFIG_HWFC
    #define UART_DEFAULT_CONFIG_HWFC 0
    #endif

    // <o> UART_DEFAULT_CONFIG_PARITY - Parity

    // <0=> Excluded
    // <14=> Included

    #ifndef UART_DEFAULT_CONFIG_PARITY
    #define UART_DEFAULT_CONFIG_PARITY 0
    #endif

    // <o> UART_DEFAULT_CONFIG_BAUDRATE - Default Baudrate

    // <323584=> 1200 baud
    // <643072=> 2400 baud
    // <1290240=> 4800 baud
    // <2576384=> 9600 baud
    // <3862528=> 14400 baud
    // <5152768=> 19200 baud
    // <7716864=> 28800 baud
    // <10289152=> 38400 baud
    // <15400960=> 57600 baud
    // <20615168=> 76800 baud
    // <30801920=> 115200 baud
    // <61865984=> 230400 baud
    // <67108864=> 250000 baud
    // <121634816=> 460800 baud
    // <251658240=> 921600 baud
    // <268435456=> 1000000 baud

    #ifndef UART_DEFAULT_CONFIG_BAUDRATE
    #define UART_DEFAULT_CONFIG_BAUDRATE 30801920
    #endif

    // <o> UART_DEFAULT_CONFIG_IRQ_PRIORITY - Interrupt priority

    // <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
    // <0=> 0 (highest)
    // <1=> 1
    // <2=> 2
    // <3=> 3
    // <4=> 4
    // <5=> 5
    // <6=> 6
    // <7=> 7

    #ifndef UART_DEFAULT_CONFIG_IRQ_PRIORITY
    #define UART_DEFAULT_CONFIG_IRQ_PRIORITY 6
    #endif

    // <q> UART_EASY_DMA_SUPPORT - Driver supporting EasyDMA

    #ifndef UART_EASY_DMA_SUPPORT
    #define UART_EASY_DMA_SUPPORT 1
    #endif

    // <q> UART_LEGACY_SUPPORT - Driver supporting Legacy mode

    #ifndef UART_LEGACY_SUPPORT
    #define UART_LEGACY_SUPPORT 1
    #endif

    // <e> UART0_ENABLED - Enable UART0 instance
    //==========================================================
    #ifndef UART0_ENABLED
    #define UART0_ENABLED 1
    #endif
    // <q> UART0_CONFIG_USE_EASY_DMA - Default setting for using EasyDMA

    #ifndef UART0_CONFIG_USE_EASY_DMA
    #define UART0_CONFIG_USE_EASY_DMA 1
    #endif

    // </e>

    // </e>

    // </h>
    //==========================================================

    // <h> nRF_Libraries

    //==========================================================
    // <q> APP_FIFO_ENABLED - app_fifo - Software FIFO implementation

    #ifndef APP_FIFO_ENABLED
    #define APP_FIFO_ENABLED 1
    #endif

    // <e> APP_SCHEDULER_ENABLED - app_scheduler - Events scheduler
    //==========================================================
    #ifndef APP_SCHEDULER_ENABLED
    #define APP_SCHEDULER_ENABLED 1
    #endif
    // <q> APP_SCHEDULER_WITH_PAUSE - Enabling pause feature

    #ifndef APP_SCHEDULER_WITH_PAUSE
    #define APP_SCHEDULER_WITH_PAUSE 0
    #endif

    // <q> APP_SCHEDULER_WITH_PROFILER - Enabling scheduler profiling

    #ifndef APP_SCHEDULER_WITH_PROFILER
    #define APP_SCHEDULER_WITH_PROFILER 0
    #endif

    // </e>

    // <e> APP_TIMER_ENABLED - app_timer - Application timer functionality
    //==========================================================
    #ifndef APP_TIMER_ENABLED
    #define APP_TIMER_ENABLED 1
    #endif
    // <o> APP_TIMER_CONFIG_RTC_FREQUENCY - Configure RTC prescaler.

    // <0=> 32768 Hz
    // <1=> 16384 Hz
    // <3=> 8192 Hz
    // <7=> 4096 Hz
    // <15=> 2048 Hz
    // <31=> 1024 Hz

    #ifndef APP_TIMER_CONFIG_RTC_FREQUENCY
    #define APP_TIMER_CONFIG_RTC_FREQUENCY 0
    #endif

    // <o> APP_TIMER_CONFIG_IRQ_PRIORITY - Interrupt priority

    // <i> Priorities 0,2 (nRF51) and 0,1,4,5 (nRF52) are reserved for SoftDevice
    // <0=> 0 (highest)
    // <1=> 1
    // <2=> 2
    // <3=> 3
    // <4=> 4
    // <5=> 5
    // <6=> 6
    // <7=> 7

    #ifndef APP_TIMER_CONFIG_IRQ_PRIORITY
    #define APP_TIMER_CONFIG_IRQ_PRIORITY 6
    #endif

    // <o> APP_TIMER_CONFIG_OP_QUEUE_SIZE - Capacity of timer requests queue.
    // <i> Size of the queue depends on how many timers are used
    // <i> in the system, how often timers are started and overall
    // <i> system latency. If queue size is too small app_timer calls
    // <i> will fail.

    #ifndef APP_TIMER_CONFIG_OP_QUEUE_SIZE
    #define APP_TIMER_CONFIG_OP_QUEUE_SIZE 10
    #endif

    // <q> APP_TIMER_CONFIG_USE_SCHEDULER - Enable scheduling app_timer events to app_scheduler

    #ifndef APP_TIMER_CONFIG_USE_SCHEDULER
    #define APP_TIMER_CONFIG_USE_SCHEDULER 0
    #endif

    // <q> APP_TIMER_KEEPS_RTC_ACTIVE - Enable RTC always on

    // <i> If option is enabled RTC is kept running even if there is no active timers.
    // <i> This option can be used when app_timer is used for timestamping.

    #ifndef APP_TIMER_KEEPS_RTC_ACTIVE
    #define APP_TIMER_KEEPS_RTC_ACTIVE 0
    #endif

    // <o> APP_TIMER_SAFE_WINDOW_MS - Maximum possible latency (in milliseconds) of handling app_timer event.
    // <i> Maximum possible timeout that can be set is reduced by safe window.
    // <i> Example: RTC frequency 16384 Hz, maximum possible timeout 1024 seconds - APP_TIMER_SAFE_WINDOW_MS.
    // <i> Since RTC is not stopped when processor is halted in debugging session, this value
    // <i> must cover it if debugging is needed. It is possible to halt processor for APP_TIMER_SAFE_WINDOW_MS
    // <i> without corrupting app_timer behavior.

    #ifndef APP_TIMER_SAFE_WINDOW_MS
    #define APP_TIMER_SAFE_WINDOW_MS 300000
    #endif

    // <h> App Timer Legacy configuration - Legacy configuration.

    //==========================================================
    // <q> APP_TIMER_WITH_PROFILER - Enable app_timer profiling

    #ifndef APP_TIMER_WITH_PROFILER
    #define APP_TIMER_WITH_PROFILER 0
    #endif

    // <q> APP_TIMER_CONFIG_SWI_NUMBER - Configure SWI instance used.

    #ifndef APP_TIMER_CONFIG_SWI_NUMBER
    #define APP_TIMER_CONFIG_SWI_NUMBER 0
    #endif

    // </h>
    //==========================================================

    // </e>

    // <e> APP_UART_ENABLED - app_uart - UART driver
    //==========================================================
    #ifndef APP_UART_ENABLED
    #define APP_UART_ENABLED 1
    #endif
    // <o> APP_UART_DRIVER_INSTANCE - UART instance used

    // <0=> 0

    #ifndef APP_UART_DRIVER_INSTANCE
    #define APP_UART_DRIVER_INSTANCE 0
    #endif

    // </e>

    // <e> NRF_BALLOC_ENABLED - nrf_balloc - Block allocator module
    //==========================================================
    #ifndef NRF_BALLOC_ENABLED
    #define NRF_BALLOC_ENABLED 1
    #endif
    // <e> NRF_BALLOC_CONFIG_DEBUG_ENABLED - Enables debug mode in the module.
    //==========================================================
    #ifndef NRF_BALLOC_CONFIG_DEBUG_ENABLED
    #define NRF_BALLOC_CONFIG_DEBUG_ENABLED 0
    #endif
    // <o> NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS - Number of words used as head guard. <0-255>


    #ifndef NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS
    #define NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS 1
    #endif

    // <o> NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS - Number of words used as tail guard. <0-255>


    #ifndef NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS
    #define NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS 1
    #endif

    // <q> NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED - Enables basic checks in this module.

    #ifndef NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED
    #define NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED 0
    #endif

    // <q> NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED - Enables double memory free check in this module.

    #ifndef NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED
    #define NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED 0
    #endif

    // <q> NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED - Enables free memory corruption check in this module.

    #ifndef NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED
    #define NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED 0
    #endif

    // <q> NRF_BALLOC_CLI_CMDS - Enable CLI commands specific to the module

    #ifndef NRF_BALLOC_CLI_CMDS
    #define NRF_BALLOC_CLI_CMDS 1
    #endif

    // </e>

    // </e>

    // <q> NRF_CLI_UART_ENABLED - nrf_cli_uart - UART command line interface transport

    #ifndef NRF_CLI_UART_ENABLED
    #define NRF_CLI_UART_ENABLED 1
    #endif

    // <q> NRF_MEMOBJ_ENABLED - nrf_memobj - Linked memory allocator module

    #ifndef NRF_MEMOBJ_ENABLED
    #define NRF_MEMOBJ_ENABLED 1
    #endif

    // <e> NRF_PWR_MGMT_ENABLED - nrf_pwr_mgmt - Power management module
    //==========================================================
    #ifndef NRF_PWR_MGMT_ENABLED
    #define NRF_PWR_MGMT_ENABLED 1
    #endif
    // <e> NRF_PWR_MGMT_CONFIG_DEBUG_PIN_ENABLED - Enables pin debug in the module.

    // <i> Selected pin will be set when CPU is in sleep mode.
    //==========================================================
    #ifndef NRF_PWR_MGMT_CONFIG_DEBUG_PIN_ENABLED
    #define NRF_PWR_MGMT_CONFIG_DEBUG_PIN_ENABLED 0
    #endif
    // <o> NRF_PWR_MGMT_SLEEP_DEBUG_PIN - Pin number

    // <0=> 0 (P0.0)
    // <1=> 1 (P0.1)
    // <2=> 2 (P0.2)
    // <3=> 3 (P0.3)
    // <4=> 4 (P0.4)
    // <5=> 5 (P0.5)
    // <6=> 6 (P0.6)
    // <7=> 7 (P0.7)
    // <8=> 8 (P0.8)
    // <9=> 9 (P0.9)
    // <10=> 10 (P0.10)
    // <11=> 11 (P0.11)
    // <12=> 12 (P0.12)
    // <13=> 13 (P0.13)
    // <14=> 14 (P0.14)
    // <15=> 15 (P0.15)
    // <16=> 16 (P0.16)
    // <17=> 17 (P0.17)
    // <18=> 18 (P0.18)
    // <19=> 19 (P0.19)
    // <20=> 20 (P0.20)
    // <21=> 21 (P0.21)
    // <22=> 22 (P0.22)
    // <23=> 23 (P0.23)
    // <24=> 24 (P0.24)
    // <25=> 25 (P0.25)
    // <26=> 26 (P0.26)
    // <27=> 27 (P0.27)
    // <28=> 28 (P0.28)
    // <29=> 29 (P0.29)
    // <30=> 30 (P0.30)
    // <31=> 31 (P0.31)
    // <4294967295=> Not connected

    #ifndef NRF_PWR_MGMT_SLEEP_DEBUG_PIN
    #define NRF_PWR_MGMT_SLEEP_DEBUG_PIN 31
    #endif

    // </e>

    // <q> NRF_PWR_MGMT_CONFIG_CPU_USAGE_MONITOR_ENABLED - Enables CPU usage monitor.

    // <i> Module will trace percentage of CPU usage in one second intervals.

    #ifndef NRF_PWR_MGMT_CONFIG_CPU_USAGE_MONITOR_ENABLED
    #define NRF_PWR_MGMT_CONFIG_CPU_USAGE_MONITOR_ENABLED 0
    #endif

    // <e> NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_ENABLED - Enable standby timeout.
    //==========================================================
    #ifndef NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_ENABLED
    #define NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_ENABLED 0
    #endif
    // <o> NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_S - Standby timeout (in seconds).
    // <i> Shutdown procedure will begin no earlier than after this number of seconds.

    #ifndef NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_S
    #define NRF_PWR_MGMT_CONFIG_STANDBY_TIMEOUT_S 3
    #endif

    // </e>

    // <q> NRF_PWR_MGMT_CONFIG_FPU_SUPPORT_ENABLED - Enables FPU event cleaning.

    #ifndef NRF_PWR_MGMT_CONFIG_FPU_SUPPORT_ENABLED
    #define NRF_PWR_MGMT_CONFIG_FPU_SUPPORT_ENABLED 1
    #endif

    // <q> NRF_PWR_MGMT_CONFIG_AUTO_SHUTDOWN_RETRY - Blocked shutdown procedure will be retried every second.

    #ifndef NRF_PWR_MGMT_CONFIG_AUTO_SHUTDOWN_RETRY
    #define NRF_PWR_MGMT_CONFIG_AUTO_SHUTDOWN_RETRY 0
    #endif

    // <q> NRF_PWR_MGMT_CONFIG_USE_SCHEDULER - Module will use @ref app_scheduler.

    #ifndef NRF_PWR_MGMT_CONFIG_USE_SCHEDULER
    #define NRF_PWR_MGMT_CONFIG_USE_SCHEDULER 0
    #endif

    // <o> NRF_PWR_MGMT_CONFIG_HANDLER_PRIORITY_COUNT - The number of priorities for module handlers.
    // <i> The number of stages of the shutdown process.

    #ifndef NRF_PWR_MGMT_CONFIG_HANDLER_PRIORITY_COUNT
    #define NRF_PWR_MGMT_CONFIG_HANDLER_PRIORITY_COUNT 3
    #endif

    // </e>

    // <e> NRF_QUEUE_ENABLED - nrf_queue - Queue module
    //==========================================================
    #ifndef NRF_QUEUE_ENABLED
    #define NRF_QUEUE_ENABLED 1
    #endif
    // <q> NRF_QUEUE_CLI_CMDS - Enable CLI commands specific to the module

    #ifndef NRF_QUEUE_CLI_CMDS
    #define NRF_QUEUE_CLI_CMDS 1
    #endif

    // </e>

    // <q> NRF_SECTION_ITER_ENABLED - nrf_section_iter - Section iterator

    #ifndef NRF_SECTION_ITER_ENABLED
    #define NRF_SECTION_ITER_ENABLED 1
    #endif

    // <q> NRF_STRERROR_ENABLED - nrf_strerror - Library for converting error code to string.

    #ifndef NRF_STRERROR_ENABLED
    #define NRF_STRERROR_ENABLED 1
    #endif

    // <q> RETARGET_ENABLED - retarget - Retargeting stdio functions

    #ifndef RETARGET_ENABLED
    #define RETARGET_ENABLED 1
    #endif

    // <h> app_button - buttons handling module

    //==========================================================
    // <q> BUTTON_ENABLED - Enables Button module

    #ifndef BUTTON_ENABLED
    #define BUTTON_ENABLED 1
    #endif

    // <q> BUTTON_HIGH_ACCURACY_ENABLED - Enables GPIOTE high accuracy for buttons

    #ifndef BUTTON_HIGH_ACCURACY_ENABLED
    #define BUTTON_HIGH_ACCURACY_ENABLED 0
    #endif

    // </h>
    //==========================================================

    // <h> nrf_cli - Command line interface

    //==========================================================
    // <q> NRF_CLI_ENABLED - Enable/disable the CLI module.

    #ifndef NRF_CLI_ENABLED
    #define NRF_CLI_ENABLED 1
    #endif

    // <o> NRF_CLI_ARGC_MAX - Maximum number of parameters passed to the command handler.
    #ifndef NRF_CLI_ARGC_MAX
    #define NRF_CLI_ARGC_MAX 12
    #endif

    // <q> NRF_CLI_BUILD_IN_CMDS_ENABLED - CLI built-in commands.

    #ifndef NRF_CLI_BUILD_IN_CMDS_ENABLED
    #define NRF_CLI_BUILD_IN_CMDS_ENABLED 1
    #endif

    // <o> NRF_CLI_CMD_BUFF_SIZE - Maximum buffer size for a single command.
    #ifndef NRF_CLI_CMD_BUFF_SIZE
    #define NRF_CLI_CMD_BUFF_SIZE 128
    #endif

    // <q> NRF_CLI_ECHO_STATUS - CLI echo status. If set, echo is ON.

    #ifndef NRF_CLI_ECHO_STATUS
    #define NRF_CLI_ECHO_STATUS 1
    #endif

    // <q> NRF_CLI_WILDCARD_ENABLED - Enable wildcard functionality for CLI commands.

    #ifndef NRF_CLI_WILDCARD_ENABLED
    #define NRF_CLI_WILDCARD_ENABLED 0
    #endif

    // <q> NRF_CLI_METAKEYS_ENABLED - Enable additional control keys for CLI commands like ctrl+a, ctrl+e, ctrl+w, ctrl+u

    #ifndef NRF_CLI_METAKEYS_ENABLED
    #define NRF_CLI_METAKEYS_ENABLED 0
    #endif

    // <o> NRF_CLI_PRINTF_BUFF_SIZE - Maximum print buffer size.
    #ifndef NRF_CLI_PRINTF_BUFF_SIZE
    #define NRF_CLI_PRINTF_BUFF_SIZE 23
    #endif

    // <e> NRF_CLI_HISTORY_ENABLED - Enable CLI history mode.
    //==========================================================
    #ifndef NRF_CLI_HISTORY_ENABLED
    #define NRF_CLI_HISTORY_ENABLED 1
    #endif
    // <o> NRF_CLI_HISTORY_ELEMENT_SIZE - Size of one memory object reserved for CLI history.
    #ifndef NRF_CLI_HISTORY_ELEMENT_SIZE
    #define NRF_CLI_HISTORY_ELEMENT_SIZE 32
    #endif

    // <o> NRF_CLI_HISTORY_ELEMENT_COUNT - Number of history memory objects.
    #ifndef NRF_CLI_HISTORY_ELEMENT_COUNT
    #define NRF_CLI_HISTORY_ELEMENT_COUNT 8
    #endif

    // </e>

    // <q> NRF_CLI_VT100_COLORS_ENABLED - CLI VT100 colors.

    #ifndef NRF_CLI_VT100_COLORS_ENABLED
    #define NRF_CLI_VT100_COLORS_ENABLED 1
    #endif

    // <q> NRF_CLI_STATISTICS_ENABLED - Enable CLI statistics.

    #ifndef NRF_CLI_STATISTICS_ENABLED
    #define NRF_CLI_STATISTICS_ENABLED 1
    #endif

    // <q> NRF_CLI_LOG_BACKEND - Enable logger backend interface.

    #ifndef NRF_CLI_LOG_BACKEND
    #define NRF_CLI_LOG_BACKEND 1
    #endif

    // <q> NRF_CLI_USES_TASK_MANAGER_ENABLED - Enable CLI to use task_manager

    #ifndef NRF_CLI_USES_TASK_MANAGER_ENABLED
    #define NRF_CLI_USES_TASK_MANAGER_ENABLED 0
    #endif

    // </h>
    //==========================================================

    // <h> nrf_fprintf - fprintf function.

    //==========================================================
    // <q> NRF_FPRINTF_ENABLED - Enable/disable fprintf module.

    #ifndef NRF_FPRINTF_ENABLED
    #define NRF_FPRINTF_ENABLED 1
    #endif

    // <q> NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED - For each printed LF, function will add CR.

    #ifndef NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED
    #define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 1
    #endif

    // </h>
    //==========================================================

    // </h>
    //==========================================================

    // <h> nRF_Log

    //==========================================================
    // <e> NRF_LOG_BACKEND_RTT_ENABLED - nrf_log_backend_rtt - Log RTT backend
    //==========================================================
    #ifndef NRF_LOG_BACKEND_RTT_ENABLED
    #define NRF_LOG_BACKEND_RTT_ENABLED 0
    #endif
    // <o> NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings.
    // <i> Size of the buffer is a trade-off between RAM usage and processing.
    // <i> if buffer is smaller then strings will often be fragmented.
    // <i> It is recommended to use size which will fit typical log and only the
    // <i> longer one will be fragmented.

    #ifndef NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE
    #define NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE 1024
    #endif

    // <o> NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS - Period before retrying writing to RTT
    #ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS
    #define NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS 1
    #endif

    // <o> NRF_LOG_BACKEND_RTT_TX_RETRY_CNT - Writing to RTT retries.
    // <i> If RTT fails to accept any new data after retries
    // <i> module assumes that host is not active and on next
    // <i> request it will perform only one write attempt.
    // <i> On successful writing, module assumes that host is active
    // <i> and scheme with retry is applied again.

    #ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_CNT
    #define NRF_LOG_BACKEND_RTT_TX_RETRY_CNT 3
    #endif

    // </e>

    // <e> NRF_LOG_BACKEND_UART_ENABLED - nrf_log_backend_uart - Log UART backend
    //==========================================================
    #ifndef NRF_LOG_BACKEND_UART_ENABLED
    #define NRF_LOG_BACKEND_UART_ENABLED 1
    #endif
    // <o> NRF_LOG_BACKEND_UART_TX_PIN - UART TX pin
    #ifndef NRF_LOG_BACKEND_UART_TX_PIN
    #define NRF_LOG_BACKEND_UART_TX_PIN 6
    #endif

    // <o> NRF_LOG_BACKEND_UART_BAUDRATE - Default Baudrate

    // <323584=> 1200 baud
    // <643072=> 2400 baud
    // <1290240=> 4800 baud
    // <2576384=> 9600 baud
    // <3862528=> 14400 baud
    // <5152768=> 19200 baud
    // <7716864=> 28800 baud
    // <10289152=> 38400 baud
    // <15400960=> 57600 baud
    // <20615168=> 76800 baud
    // <30801920=> 115200 baud
    // <61865984=> 230400 baud
    // <67108864=> 250000 baud
    // <121634816=> 460800 baud
    // <251658240=> 921600 baud
    // <268435456=> 1000000 baud

    #ifndef NRF_LOG_BACKEND_UART_BAUDRATE
    #define NRF_LOG_BACKEND_UART_BAUDRATE 30801920
    #endif

    // <o> NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings.
    // <i> Size of the buffer is a trade-off between RAM usage and processing.
    // <i> if buffer is smaller then strings will often be fragmented.
    // <i> It is recommended to use size which will fit typical log and only the
    // <i> longer one will be fragmented.

    #ifndef NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE
    #define NRF_LOG_BACKEND_UART_TEMP_BUFFER_SIZE 1024
    #endif

    // </e>

    // <e> NRF_LOG_ENABLED - nrf_log - Logger
    //==========================================================
    #ifndef NRF_LOG_ENABLED
    #define NRF_LOG_ENABLED 1
    #endif
    // <h> Log message pool - Configuration of log message pool

    //==========================================================
    // <o> NRF_LOG_MSGPOOL_ELEMENT_SIZE - Size of a single element in the pool of memory objects.
    // <i> If a small value is set, then performance of logs processing
    // <i> is degraded because data is fragmented. Bigger value impacts
    // <i> RAM memory utilization. The size is set to fit a message with
    // <i> a timestamp and up to 2 arguments in a single memory object.

    #ifndef NRF_LOG_MSGPOOL_ELEMENT_SIZE
    #define NRF_LOG_MSGPOOL_ELEMENT_SIZE 100
    #endif

    // <o> NRF_LOG_MSGPOOL_ELEMENT_COUNT - Number of elements in the pool of memory objects
    // <i> If a small value is set, then it may lead to a deadlock
    // <i> in certain cases if backend has high latency and holds
    // <i> multiple messages for long time. Bigger value impacts
    // <i> RAM memory usage.

    #ifndef NRF_LOG_MSGPOOL_ELEMENT_COUNT
    #define NRF_LOG_MSGPOOL_ELEMENT_COUNT 50
    #endif

    // </h>
    //==========================================================

    // <q> NRF_LOG_ALLOW_OVERFLOW - Configures behavior when circular buffer is full.

    // <i> If set then oldest logs are overwritten. Otherwise a
    // <i> marker is injected informing about overflow.

    #ifndef NRF_LOG_ALLOW_OVERFLOW
    #define NRF_LOG_ALLOW_OVERFLOW 1
    #endif

    // <o> NRF_LOG_BUFSIZE - Size of the buffer for storing logs (in bytes).

    // <i> Must be power of 2 and multiple of 4.
    // <i> If NRF_LOG_DEFERRED = 0 then buffer size can be reduced to minimum.
    // <128=> 128
    // <256=> 256
    // <512=> 512
    // <1024=> 1024
    // <2048=> 2048
    // <4096=> 4096
    // <8192=> 8192
    // <16384=> 16384

    #ifndef NRF_LOG_BUFSIZE
    #define NRF_LOG_BUFSIZE 1024
    #endif

    // <q> NRF_LOG_CLI_CMDS - Enable CLI commands for the module.

    #ifndef NRF_LOG_CLI_CMDS
    #define NRF_LOG_CLI_CMDS 1
    #endif

    // <o> NRF_LOG_DEFAULT_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_LOG_DEFAULT_LEVEL
    #define NRF_LOG_DEFAULT_LEVEL 3
    #endif

    // <q> NRF_LOG_DEFERRED - Enable deffered logger.

    // <i> Log data is buffered and can be processed in idle.

    #ifndef NRF_LOG_DEFERRED
    #define NRF_LOG_DEFERRED 0
    #endif


    // <q> NRF_LOG_FILTERS_ENABLED - Enable dynamic filtering of logs.

    #ifndef NRF_LOG_FILTERS_ENABLED
    #define NRF_LOG_FILTERS_ENABLED 0
    #endif

    // <o> NRF_LOG_STR_PUSH_BUFFER_SIZE - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.

    // <16=> 16
    // <32=> 32
    // <64=> 64
    // <128=> 128
    // <256=> 256
    // <512=> 512
    // <1024=> 1024

    #ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
    #define NRF_LOG_STR_PUSH_BUFFER_SIZE 1024
    #endif

    // <o> NRF_LOG_STR_PUSH_BUFFER_SIZE - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.

    // <16=> 16
    // <32=> 32
    // <64=> 64
    // <128=> 128
    // <256=> 256
    // <512=> 512
    // <1024=> 1024

    #ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
    #define NRF_LOG_STR_PUSH_BUFFER_SIZE 1024
    #endif

    // <e> NRF_LOG_USES_COLORS - If enabled then ANSI escape code for colors is prefixed to every string
    //==========================================================
    #ifndef NRF_LOG_USES_COLORS
    #define NRF_LOG_USES_COLORS 1
    #endif
    // <o> NRF_LOG_COLOR_DEFAULT - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_LOG_COLOR_DEFAULT
    #define NRF_LOG_COLOR_DEFAULT 0
    #endif

    // <o> NRF_LOG_ERROR_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_LOG_ERROR_COLOR
    #define NRF_LOG_ERROR_COLOR 2
    #endif

    // <o> NRF_LOG_WARNING_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_LOG_WARNING_COLOR
    #define NRF_LOG_WARNING_COLOR 4
    #endif

    // </e>

    // <e> NRF_LOG_USES_TIMESTAMP - Enable timestamping

    // <i> Function for getting the timestamp is provided by the user
    //==========================================================
    #ifndef NRF_LOG_USES_TIMESTAMP
    #define NRF_LOG_USES_TIMESTAMP 0
    #endif
    // <o> NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY - Default frequency of the timestamp (in Hz) or 0 to use app_timer frequency.
    #ifndef NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY
    #define NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY 0
    #endif

    // </e>

    // <h> nrf_log module configuration

    //==========================================================
    // <h> nrf_log in nRF_Core

    //==========================================================
    // <e> NRF_MPU_LIB_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_MPU_LIB_CONFIG_LOG_ENABLED
    #define NRF_MPU_LIB_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_MPU_LIB_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_MPU_LIB_CONFIG_LOG_LEVEL
    #define NRF_MPU_LIB_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_MPU_LIB_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_MPU_LIB_CONFIG_INFO_COLOR
    #define NRF_MPU_LIB_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_MPU_LIB_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_MPU_LIB_CONFIG_DEBUG_COLOR
    #define NRF_MPU_LIB_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_STACK_GUARD_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_STACK_GUARD_CONFIG_LOG_ENABLED
    #define NRF_STACK_GUARD_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_STACK_GUARD_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_STACK_GUARD_CONFIG_LOG_LEVEL
    #define NRF_STACK_GUARD_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_STACK_GUARD_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_STACK_GUARD_CONFIG_INFO_COLOR
    #define NRF_STACK_GUARD_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_STACK_GUARD_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_STACK_GUARD_CONFIG_DEBUG_COLOR
    #define NRF_STACK_GUARD_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> TASK_MANAGER_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef TASK_MANAGER_CONFIG_LOG_ENABLED
    #define TASK_MANAGER_CONFIG_LOG_ENABLED 0
    #endif
    // <o> TASK_MANAGER_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef TASK_MANAGER_CONFIG_LOG_LEVEL
    #define TASK_MANAGER_CONFIG_LOG_LEVEL 3
    #endif

    // <o> TASK_MANAGER_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef TASK_MANAGER_CONFIG_INFO_COLOR
    #define TASK_MANAGER_CONFIG_INFO_COLOR 0
    #endif

    // <o> TASK_MANAGER_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef TASK_MANAGER_CONFIG_DEBUG_COLOR
    #define TASK_MANAGER_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // </h>
    //==========================================================

    // <h> nrf_log in nRF_Drivers

    //==========================================================
    // <e> CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef CLOCK_CONFIG_LOG_ENABLED
    #define CLOCK_CONFIG_LOG_ENABLED 0
    #endif
    // <o> CLOCK_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef CLOCK_CONFIG_LOG_LEVEL
    #define CLOCK_CONFIG_LOG_LEVEL 3
    #endif

    // <o> CLOCK_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef CLOCK_CONFIG_INFO_COLOR
    #define CLOCK_CONFIG_INFO_COLOR 0
    #endif

    // <o> CLOCK_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef CLOCK_CONFIG_DEBUG_COLOR
    #define CLOCK_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> COMP_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef COMP_CONFIG_LOG_ENABLED
    #define COMP_CONFIG_LOG_ENABLED 0
    #endif
    // <o> COMP_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef COMP_CONFIG_LOG_LEVEL
    #define COMP_CONFIG_LOG_LEVEL 3
    #endif

    // <o> COMP_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef COMP_CONFIG_INFO_COLOR
    #define COMP_CONFIG_INFO_COLOR 0
    #endif

    // <o> COMP_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef COMP_CONFIG_DEBUG_COLOR
    #define COMP_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> GPIOTE_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef GPIOTE_CONFIG_LOG_ENABLED
    #define GPIOTE_CONFIG_LOG_ENABLED 0
    #endif
    // <o> GPIOTE_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef GPIOTE_CONFIG_LOG_LEVEL
    #define GPIOTE_CONFIG_LOG_LEVEL 3
    #endif

    // <o> GPIOTE_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef GPIOTE_CONFIG_INFO_COLOR
    #define GPIOTE_CONFIG_INFO_COLOR 0
    #endif

    // <o> GPIOTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef GPIOTE_CONFIG_DEBUG_COLOR
    #define GPIOTE_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> LPCOMP_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef LPCOMP_CONFIG_LOG_ENABLED
    #define LPCOMP_CONFIG_LOG_ENABLED 0
    #endif
    // <o> LPCOMP_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef LPCOMP_CONFIG_LOG_LEVEL
    #define LPCOMP_CONFIG_LOG_LEVEL 3
    #endif

    // <o> LPCOMP_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef LPCOMP_CONFIG_INFO_COLOR
    #define LPCOMP_CONFIG_INFO_COLOR 0
    #endif

    // <o> LPCOMP_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef LPCOMP_CONFIG_DEBUG_COLOR
    #define LPCOMP_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> MAX3421E_HOST_CONFIG_LOG_ENABLED - Enable logging in the module
    //==========================================================
    #ifndef MAX3421E_HOST_CONFIG_LOG_ENABLED
    #define MAX3421E_HOST_CONFIG_LOG_ENABLED 0
    #endif
    // <o> MAX3421E_HOST_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef MAX3421E_HOST_CONFIG_LOG_LEVEL
    #define MAX3421E_HOST_CONFIG_LOG_LEVEL 3
    #endif

    // <o> MAX3421E_HOST_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef MAX3421E_HOST_CONFIG_INFO_COLOR
    #define MAX3421E_HOST_CONFIG_INFO_COLOR 0
    #endif

    // <o> MAX3421E_HOST_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef MAX3421E_HOST_CONFIG_DEBUG_COLOR
    #define MAX3421E_HOST_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRFX_USBD_CONFIG_LOG_ENABLED - Enable logging in the module
    //==========================================================
    #ifndef NRFX_USBD_CONFIG_LOG_ENABLED
    #define NRFX_USBD_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRFX_USBD_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRFX_USBD_CONFIG_LOG_LEVEL
    #define NRFX_USBD_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRFX_USBD_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_USBD_CONFIG_INFO_COLOR
    #define NRFX_USBD_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRFX_USBD_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRFX_USBD_CONFIG_DEBUG_COLOR
    #define NRFX_USBD_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> PDM_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef PDM_CONFIG_LOG_ENABLED
    #define PDM_CONFIG_LOG_ENABLED 0
    #endif
    // <o> PDM_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef PDM_CONFIG_LOG_LEVEL
    #define PDM_CONFIG_LOG_LEVEL 3
    #endif

    // <o> PDM_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef PDM_CONFIG_INFO_COLOR
    #define PDM_CONFIG_INFO_COLOR 0
    #endif

    // <o> PDM_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef PDM_CONFIG_DEBUG_COLOR
    #define PDM_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> PPI_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef PPI_CONFIG_LOG_ENABLED
    #define PPI_CONFIG_LOG_ENABLED 0
    #endif
    // <o> PPI_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef PPI_CONFIG_LOG_LEVEL
    #define PPI_CONFIG_LOG_LEVEL 3
    #endif

    // <o> PPI_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef PPI_CONFIG_INFO_COLOR
    #define PPI_CONFIG_INFO_COLOR 0
    #endif

    // <o> PPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef PPI_CONFIG_DEBUG_COLOR
    #define PPI_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> PWM_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef PWM_CONFIG_LOG_ENABLED
    #define PWM_CONFIG_LOG_ENABLED 0
    #endif
    // <o> PWM_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef PWM_CONFIG_LOG_LEVEL
    #define PWM_CONFIG_LOG_LEVEL 3
    #endif

    // <o> PWM_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef PWM_CONFIG_INFO_COLOR
    #define PWM_CONFIG_INFO_COLOR 0
    #endif

    // <o> PWM_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef PWM_CONFIG_DEBUG_COLOR
    #define PWM_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> QDEC_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef QDEC_CONFIG_LOG_ENABLED
    #define QDEC_CONFIG_LOG_ENABLED 0
    #endif
    // <o> QDEC_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef QDEC_CONFIG_LOG_LEVEL
    #define QDEC_CONFIG_LOG_LEVEL 3
    #endif

    // <o> QDEC_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef QDEC_CONFIG_INFO_COLOR
    #define QDEC_CONFIG_INFO_COLOR 0
    #endif

    // <o> QDEC_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef QDEC_CONFIG_DEBUG_COLOR
    #define QDEC_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> RNG_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef RNG_CONFIG_LOG_ENABLED
    #define RNG_CONFIG_LOG_ENABLED 0
    #endif
    // <o> RNG_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef RNG_CONFIG_LOG_LEVEL
    #define RNG_CONFIG_LOG_LEVEL 3
    #endif

    // <o> RNG_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef RNG_CONFIG_INFO_COLOR
    #define RNG_CONFIG_INFO_COLOR 0
    #endif

    // <o> RNG_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef RNG_CONFIG_DEBUG_COLOR
    #define RNG_CONFIG_DEBUG_COLOR 0
    #endif

    // <q> RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED - Enables logging of random numbers.

    #ifndef RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED
    #define RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED 0
    #endif

    // </e>

    // <e> RTC_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef RTC_CONFIG_LOG_ENABLED
    #define RTC_CONFIG_LOG_ENABLED 0
    #endif
    // <o> RTC_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef RTC_CONFIG_LOG_LEVEL
    #define RTC_CONFIG_LOG_LEVEL 3
    #endif

    // <o> RTC_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef RTC_CONFIG_INFO_COLOR
    #define RTC_CONFIG_INFO_COLOR 0
    #endif

    // <o> RTC_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef RTC_CONFIG_DEBUG_COLOR
    #define RTC_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> SAADC_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef SAADC_CONFIG_LOG_ENABLED
    #define SAADC_CONFIG_LOG_ENABLED 0
    #endif
    // <o> SAADC_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef SAADC_CONFIG_LOG_LEVEL
    #define SAADC_CONFIG_LOG_LEVEL 3
    #endif

    // <o> SAADC_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef SAADC_CONFIG_INFO_COLOR
    #define SAADC_CONFIG_INFO_COLOR 0
    #endif

    // <o> SAADC_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef SAADC_CONFIG_DEBUG_COLOR
    #define SAADC_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> SPIS_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef SPIS_CONFIG_LOG_ENABLED
    #define SPIS_CONFIG_LOG_ENABLED 0
    #endif
    // <o> SPIS_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef SPIS_CONFIG_LOG_LEVEL
    #define SPIS_CONFIG_LOG_LEVEL 3
    #endif

    // <o> SPIS_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef SPIS_CONFIG_INFO_COLOR
    #define SPIS_CONFIG_INFO_COLOR 0
    #endif

    // <o> SPIS_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef SPIS_CONFIG_DEBUG_COLOR
    #define SPIS_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> SPI_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef SPI_CONFIG_LOG_ENABLED
    #define SPI_CONFIG_LOG_ENABLED 0
    #endif
    // <o> SPI_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef SPI_CONFIG_LOG_LEVEL
    #define SPI_CONFIG_LOG_LEVEL 3
    #endif

    // <o> SPI_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef SPI_CONFIG_INFO_COLOR
    #define SPI_CONFIG_INFO_COLOR 0
    #endif

    // <o> SPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef SPI_CONFIG_DEBUG_COLOR
    #define SPI_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> TIMER_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef TIMER_CONFIG_LOG_ENABLED
    #define TIMER_CONFIG_LOG_ENABLED 0
    #endif
    // <o> TIMER_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef TIMER_CONFIG_LOG_LEVEL
    #define TIMER_CONFIG_LOG_LEVEL 3
    #endif

    // <o> TIMER_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef TIMER_CONFIG_INFO_COLOR
    #define TIMER_CONFIG_INFO_COLOR 0
    #endif

    // <o> TIMER_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef TIMER_CONFIG_DEBUG_COLOR
    #define TIMER_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> TWIS_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef TWIS_CONFIG_LOG_ENABLED
    #define TWIS_CONFIG_LOG_ENABLED 0
    #endif
    // <o> TWIS_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef TWIS_CONFIG_LOG_LEVEL
    #define TWIS_CONFIG_LOG_LEVEL 3
    #endif

    // <o> TWIS_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef TWIS_CONFIG_INFO_COLOR
    #define TWIS_CONFIG_INFO_COLOR 0
    #endif

    // <o> TWIS_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef TWIS_CONFIG_DEBUG_COLOR
    #define TWIS_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> TWI_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef TWI_CONFIG_LOG_ENABLED
    #define TWI_CONFIG_LOG_ENABLED 0
    #endif
    // <o> TWI_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef TWI_CONFIG_LOG_LEVEL
    #define TWI_CONFIG_LOG_LEVEL 3
    #endif

    // <o> TWI_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef TWI_CONFIG_INFO_COLOR
    #define TWI_CONFIG_INFO_COLOR 0
    #endif

    // <o> TWI_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef TWI_CONFIG_DEBUG_COLOR
    #define TWI_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> UART_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef UART_CONFIG_LOG_ENABLED
    #define UART_CONFIG_LOG_ENABLED 0
    #endif
    // <o> UART_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef UART_CONFIG_LOG_LEVEL
    #define UART_CONFIG_LOG_LEVEL 3
    #endif

    // <o> UART_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef UART_CONFIG_INFO_COLOR
    #define UART_CONFIG_INFO_COLOR 0
    #endif

    // <o> UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef UART_CONFIG_DEBUG_COLOR
    #define UART_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> USBD_CONFIG_LOG_ENABLED - Enable logging in the module
    //==========================================================
    #ifndef USBD_CONFIG_LOG_ENABLED
    #define USBD_CONFIG_LOG_ENABLED 0
    #endif
    // <o> USBD_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef USBD_CONFIG_LOG_LEVEL
    #define USBD_CONFIG_LOG_LEVEL 3
    #endif

    // <o> USBD_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef USBD_CONFIG_INFO_COLOR
    #define USBD_CONFIG_INFO_COLOR 0
    #endif

    // <o> USBD_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef USBD_CONFIG_DEBUG_COLOR
    #define USBD_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> WDT_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef WDT_CONFIG_LOG_ENABLED
    #define WDT_CONFIG_LOG_ENABLED 0
    #endif
    // <o> WDT_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef WDT_CONFIG_LOG_LEVEL
    #define WDT_CONFIG_LOG_LEVEL 3
    #endif

    // <o> WDT_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef WDT_CONFIG_INFO_COLOR
    #define WDT_CONFIG_INFO_COLOR 0
    #endif

    // <o> WDT_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef WDT_CONFIG_DEBUG_COLOR
    #define WDT_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // </h>
    //==========================================================

    // <h> nrf_log in nRF_Libraries

    //==========================================================
    // <e> APP_TIMER_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef APP_TIMER_CONFIG_LOG_ENABLED
    #define APP_TIMER_CONFIG_LOG_ENABLED 0
    #endif
    // <o> APP_TIMER_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef APP_TIMER_CONFIG_LOG_LEVEL
    #define APP_TIMER_CONFIG_LOG_LEVEL 3
    #endif

    // <o> APP_TIMER_CONFIG_INITIAL_LOG_LEVEL - Initial severity level if dynamic filtering is enabled.

    // <i> If module generates a lot of logs, initial log level can
    // <i> be decreased to prevent flooding. Severity level can be
    // <i> increased on instance basis.
    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef APP_TIMER_CONFIG_INITIAL_LOG_LEVEL
    #define APP_TIMER_CONFIG_INITIAL_LOG_LEVEL 3
    #endif

    // <o> APP_TIMER_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef APP_TIMER_CONFIG_INFO_COLOR
    #define APP_TIMER_CONFIG_INFO_COLOR 0
    #endif

    // <o> APP_TIMER_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef APP_TIMER_CONFIG_DEBUG_COLOR
    #define APP_TIMER_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED
    #define APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED 0
    #endif
    // <o> APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL
    #define APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL 3
    #endif

    // <o> APP_USBD_CDC_ACM_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef APP_USBD_CDC_ACM_CONFIG_INFO_COLOR
    #define APP_USBD_CDC_ACM_CONFIG_INFO_COLOR 0
    #endif

    // <o> APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR
    #define APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> APP_USBD_CONFIG_LOG_ENABLED - Enable logging in the module.
    //==========================================================
    #ifndef APP_USBD_CONFIG_LOG_ENABLED
    #define APP_USBD_CONFIG_LOG_ENABLED 0
    #endif
    // <o> APP_USBD_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef APP_USBD_CONFIG_LOG_LEVEL
    #define APP_USBD_CONFIG_LOG_LEVEL 3
    #endif

    // <o> APP_USBD_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef APP_USBD_CONFIG_INFO_COLOR
    #define APP_USBD_CONFIG_INFO_COLOR 0
    #endif

    // <o> APP_USBD_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef APP_USBD_CONFIG_DEBUG_COLOR
    #define APP_USBD_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> APP_USBD_DUMMY_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef APP_USBD_DUMMY_CONFIG_LOG_ENABLED
    #define APP_USBD_DUMMY_CONFIG_LOG_ENABLED 0
    #endif
    // <o> APP_USBD_DUMMY_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef APP_USBD_DUMMY_CONFIG_LOG_LEVEL
    #define APP_USBD_DUMMY_CONFIG_LOG_LEVEL 3
    #endif

    // <o> APP_USBD_DUMMY_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef APP_USBD_DUMMY_CONFIG_INFO_COLOR
    #define APP_USBD_DUMMY_CONFIG_INFO_COLOR 0
    #endif

    // <o> APP_USBD_DUMMY_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef APP_USBD_DUMMY_CONFIG_DEBUG_COLOR
    #define APP_USBD_DUMMY_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> APP_USBD_MSC_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef APP_USBD_MSC_CONFIG_LOG_ENABLED
    #define APP_USBD_MSC_CONFIG_LOG_ENABLED 0
    #endif
    // <o> APP_USBD_MSC_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef APP_USBD_MSC_CONFIG_LOG_LEVEL
    #define APP_USBD_MSC_CONFIG_LOG_LEVEL 3
    #endif

    // <o> APP_USBD_MSC_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef APP_USBD_MSC_CONFIG_INFO_COLOR
    #define APP_USBD_MSC_CONFIG_INFO_COLOR 0
    #endif

    // <o> APP_USBD_MSC_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef APP_USBD_MSC_CONFIG_DEBUG_COLOR
    #define APP_USBD_MSC_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED
    #define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED 0
    #endif
    // <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL
    #define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL 3
    #endif

    // <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR
    #define APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR 0
    #endif

    // <o> APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR
    #define APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_ATFIFO_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_ATFIFO_CONFIG_LOG_ENABLED
    #define NRF_ATFIFO_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_ATFIFO_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_ATFIFO_CONFIG_LOG_LEVEL
    #define NRF_ATFIFO_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL
    #define NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL 3
    #endif

    // <o> NRF_ATFIFO_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_ATFIFO_CONFIG_INFO_COLOR
    #define NRF_ATFIFO_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_ATFIFO_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_ATFIFO_CONFIG_DEBUG_COLOR
    #define NRF_ATFIFO_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_BALLOC_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_BALLOC_CONFIG_LOG_ENABLED
    #define NRF_BALLOC_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_BALLOC_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_BALLOC_CONFIG_LOG_LEVEL
    #define NRF_BALLOC_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL - Initial severity level if dynamic filtering is enabled.

    // <i> If module generates a lot of logs, initial log level can
    // <i> be decreased to prevent flooding. Severity level can be
    // <i> increased on instance basis.
    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL
    #define NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL 3
    #endif

    // <o> NRF_BALLOC_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_BALLOC_CONFIG_INFO_COLOR
    #define NRF_BALLOC_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_BALLOC_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_BALLOC_CONFIG_DEBUG_COLOR
    #define NRF_BALLOC_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED
    #define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL
    #define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL
    #define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL 3
    #endif

    // <o> NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR
    #define NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR
    #define NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED
    #define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL
    #define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL
    #define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL 3
    #endif

    // <o> NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR
    #define NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR
    #define NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED
    #define NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL
    #define NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL
    #define NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL 3
    #endif

    // <o> NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR
    #define NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR
    #define NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED
    #define NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL
    #define NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_CLI_BLE_UART_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_CLI_BLE_UART_CONFIG_INFO_COLOR
    #define NRF_CLI_BLE_UART_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR
    #define NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED
    #define NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL
    #define NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR
    #define NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR
    #define NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_CLI_UART_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_CLI_UART_CONFIG_LOG_ENABLED
    #define NRF_CLI_UART_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_CLI_UART_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_CLI_UART_CONFIG_LOG_LEVEL
    #define NRF_CLI_UART_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_CLI_UART_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_CLI_UART_CONFIG_INFO_COLOR
    #define NRF_CLI_UART_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_CLI_UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_CLI_UART_CONFIG_DEBUG_COLOR
    #define NRF_CLI_UART_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_LIBUARTE_CONFIG_LOG_ENABLED
    #define NRF_LIBUARTE_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_LIBUARTE_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_LIBUARTE_CONFIG_LOG_LEVEL
    #define NRF_LIBUARTE_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_LIBUARTE_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_LIBUARTE_CONFIG_INFO_COLOR
    #define NRF_LIBUARTE_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_LIBUARTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_LIBUARTE_CONFIG_DEBUG_COLOR
    #define NRF_LIBUARTE_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_MEMOBJ_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_MEMOBJ_CONFIG_LOG_ENABLED
    #define NRF_MEMOBJ_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_MEMOBJ_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_MEMOBJ_CONFIG_LOG_LEVEL
    #define NRF_MEMOBJ_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_MEMOBJ_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_MEMOBJ_CONFIG_INFO_COLOR
    #define NRF_MEMOBJ_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_MEMOBJ_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_MEMOBJ_CONFIG_DEBUG_COLOR
    #define NRF_MEMOBJ_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_PWR_MGMT_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_PWR_MGMT_CONFIG_LOG_ENABLED
    #define NRF_PWR_MGMT_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_PWR_MGMT_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_PWR_MGMT_CONFIG_LOG_LEVEL
    #define NRF_PWR_MGMT_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_PWR_MGMT_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_PWR_MGMT_CONFIG_INFO_COLOR
    #define NRF_PWR_MGMT_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_PWR_MGMT_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_PWR_MGMT_CONFIG_DEBUG_COLOR
    #define NRF_PWR_MGMT_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_QUEUE_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_QUEUE_CONFIG_LOG_ENABLED
    #define NRF_QUEUE_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_QUEUE_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_QUEUE_CONFIG_LOG_LEVEL
    #define NRF_QUEUE_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL
    #define NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL 3
    #endif

    // <o> NRF_QUEUE_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_QUEUE_CONFIG_INFO_COLOR
    #define NRF_QUEUE_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_QUEUE_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_QUEUE_CONFIG_DEBUG_COLOR
    #define NRF_QUEUE_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_SDH_ANT_LOG_ENABLED - Enable logging in SoftDevice handler (ANT) module.
    //==========================================================
    #ifndef NRF_SDH_ANT_LOG_ENABLED
    #define NRF_SDH_ANT_LOG_ENABLED 0
    #endif
    // <o> NRF_SDH_ANT_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_SDH_ANT_LOG_LEVEL
    #define NRF_SDH_ANT_LOG_LEVEL 3
    #endif

    // <o> NRF_SDH_ANT_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_SDH_ANT_INFO_COLOR
    #define NRF_SDH_ANT_INFO_COLOR 0
    #endif

    // <o> NRF_SDH_ANT_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_SDH_ANT_DEBUG_COLOR
    #define NRF_SDH_ANT_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_SDH_BLE_LOG_ENABLED - Enable logging in SoftDevice handler (BLE) module.
    //==========================================================
    #ifndef NRF_SDH_BLE_LOG_ENABLED
    #define NRF_SDH_BLE_LOG_ENABLED 0
    #endif
    // <o> NRF_SDH_BLE_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_SDH_BLE_LOG_LEVEL
    #define NRF_SDH_BLE_LOG_LEVEL 3
    #endif

    // <o> NRF_SDH_BLE_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_SDH_BLE_INFO_COLOR
    #define NRF_SDH_BLE_INFO_COLOR 0
    #endif

    // <o> NRF_SDH_BLE_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_SDH_BLE_DEBUG_COLOR
    #define NRF_SDH_BLE_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_SDH_LOG_ENABLED - Enable logging in SoftDevice handler module.
    //==========================================================
    #ifndef NRF_SDH_LOG_ENABLED
    #define NRF_SDH_LOG_ENABLED 0
    #endif
    // <o> NRF_SDH_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_SDH_LOG_LEVEL
    #define NRF_SDH_LOG_LEVEL 3
    #endif

    // <o> NRF_SDH_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_SDH_INFO_COLOR
    #define NRF_SDH_INFO_COLOR 0
    #endif

    // <o> NRF_SDH_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_SDH_DEBUG_COLOR
    #define NRF_SDH_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_SDH_SOC_LOG_ENABLED - Enable logging in SoftDevice handler (SoC) module.
    //==========================================================
    #ifndef NRF_SDH_SOC_LOG_ENABLED
    #define NRF_SDH_SOC_LOG_ENABLED 0
    #endif
    // <o> NRF_SDH_SOC_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_SDH_SOC_LOG_LEVEL
    #define NRF_SDH_SOC_LOG_LEVEL 3
    #endif

    // <o> NRF_SDH_SOC_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_SDH_SOC_INFO_COLOR
    #define NRF_SDH_SOC_INFO_COLOR 0
    #endif

    // <o> NRF_SDH_SOC_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_SDH_SOC_DEBUG_COLOR
    #define NRF_SDH_SOC_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_SORTLIST_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_SORTLIST_CONFIG_LOG_ENABLED
    #define NRF_SORTLIST_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_SORTLIST_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_SORTLIST_CONFIG_LOG_LEVEL
    #define NRF_SORTLIST_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_SORTLIST_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_SORTLIST_CONFIG_INFO_COLOR
    #define NRF_SORTLIST_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_SORTLIST_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_SORTLIST_CONFIG_DEBUG_COLOR
    #define NRF_SORTLIST_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> NRF_TWI_SENSOR_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef NRF_TWI_SENSOR_CONFIG_LOG_ENABLED
    #define NRF_TWI_SENSOR_CONFIG_LOG_ENABLED 0
    #endif
    // <o> NRF_TWI_SENSOR_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef NRF_TWI_SENSOR_CONFIG_LOG_LEVEL
    #define NRF_TWI_SENSOR_CONFIG_LOG_LEVEL 3
    #endif

    // <o> NRF_TWI_SENSOR_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_TWI_SENSOR_CONFIG_INFO_COLOR
    #define NRF_TWI_SENSOR_CONFIG_INFO_COLOR 0
    #endif

    // <o> NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR
    #define NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // <e> PM_LOG_ENABLED - Enable logging in Peer Manager and its submodules.
    //==========================================================
    #ifndef PM_LOG_ENABLED
    #define PM_LOG_ENABLED 1
    #endif
    // <o> PM_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef PM_LOG_LEVEL
    #define PM_LOG_LEVEL 3
    #endif

    // <o> PM_LOG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef PM_LOG_INFO_COLOR
    #define PM_LOG_INFO_COLOR 0
    #endif

    // <o> PM_LOG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef PM_LOG_DEBUG_COLOR
    #define PM_LOG_DEBUG_COLOR 0
    #endif

    // </e>

    // </h>
    //==========================================================

    // <h> nrf_log in nRF_Serialization

    //==========================================================
    // <e> SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED - Enables logging in the module.
    //==========================================================
    #ifndef SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED
    #define SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED 0
    #endif
    // <o> SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL - Default Severity level

    // <0=> Off
    // <1=> Error
    // <2=> Warning
    // <3=> Info
    // <4=> Debug

    #ifndef SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL
    #define SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL 3
    #endif

    // <o> SER_HAL_TRANSPORT_CONFIG_INFO_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef SER_HAL_TRANSPORT_CONFIG_INFO_COLOR
    #define SER_HAL_TRANSPORT_CONFIG_INFO_COLOR 0
    #endif

    // <o> SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR - ANSI escape code prefix.

    // <0=> Default
    // <1=> Black
    // <2=> Red
    // <3=> Green
    // <4=> Yellow
    // <5=> Blue
    // <6=> Magenta
    // <7=> Cyan
    // <8=> White

    #ifndef SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR
    #define SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR 0
    #endif

    // </e>

    // </h>
    //==========================================================

    // </h>
    //==========================================================

    // </e>

    // <q> NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED - nrf_log_str_formatter - Log string formatter

    #ifndef NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED
    #define NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED 1
    #endif

    // </h>
    //==========================================================

    // <h> nRF_Segger_RTT

    //==========================================================
    // <h> segger_rtt - SEGGER RTT

    //==========================================================
    // <o> SEGGER_RTT_CONFIG_BUFFER_SIZE_UP - Size of upstream buffer.
    // <i> Note that either @ref NRF_LOG_BACKEND_RTT_OUTPUT_BUFFER_SIZE
    // <i> or this value is actually used. It depends on which one is bigger.

    #ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_UP
    #define SEGGER_RTT_CONFIG_BUFFER_SIZE_UP 512
    #endif

    // <o> SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS - Maximum number of upstream buffers.
    #ifndef SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS
    #define SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS 2
    #endif

    // <o> SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN - Size of downstream buffer.
    #ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN
    #define SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN 16
    #endif

    // <o> SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS - Maximum number of downstream buffers.
    #ifndef SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS
    #define SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS 2
    #endif

    // <o> SEGGER_RTT_CONFIG_DEFAULT_MODE - RTT behavior if the buffer is full.

    // <i> The following modes are supported:
    // <i> - SKIP - Do not block, output nothing.
    // <i> - TRIM - Do not block, output as much as fits.
    // <i> - BLOCK - Wait until there is space in the buffer.
    // <0=> SKIP
    // <1=> TRIM
    // <2=> BLOCK_IF_FIFO_FULL

    #ifndef SEGGER_RTT_CONFIG_DEFAULT_MODE
    #define SEGGER_RTT_CONFIG_DEFAULT_MODE 0
    #endif

    // </h>
    //==========================================================

    // </h>
    //==========================================================

    // <<< end of configuration section >>>
    #endif //SDK_CONFIG_H

  • So I took the CLI example and added the following code and the same problem occurs.  I turned off deferred (=0), and the result is I never see the first log message, I just see the second message printed twice.

    static char message[256];
    
    void logMsg(const char *pMessage)
    {
        int cnt = 0;
    
        memset(message, 0, 256);
        cnt = snprintf(message, 255, pMessage); 
        message[cnt-1] = '\0';
        NRF_LOG_RAW_INFO("%s\n", message);
    
        return;
    }
    
    ....
    
    int main(void)
    {
    ...
        /* logMsg replaces the NRF_LOG_RAW_INFO */
        logMsg("Command Line Interface example started.\n");
        logMsg("Please press the Tab key to see all available commands.\n");
    
        while (true)
        {
            UNUSED_RETURN_VALUE(NRF_LOG_PROCESS());
    #if CLI_OVER_USB_CDC_ACM && APP_USBD_CONFIG_EVENT_QUEUE_ENABLE
            while (app_usbd_event_queue_process())
            {
                /* Nothing to do */
            }
    #endif
            cli_process();
        }
    }......
    
    [00:00:00.000,000] <warning> app: Logger configuration file not found.
    [00:00:00.000,122] <info> stack_guard: Stack Guard (128 bytes): 0x2000E000-0x2000E07F (total stack size: 8192 bytes, usable stack area: 8064 bytes)
    Please press the Tab key to see all available commands.
    Please press the Tab key to see all available commands.
    

  • Hello Jim,

    I tested the following:

    static void test_log(const char *pMessage)
    {
        NRF_LOG_RAW_INFO("%s\n", NRF_LOG_PUSH((char *)pMessage));   
    }
    
    int main(void)
    {
        // Initialize.
        log_init();
        buttons_leds_init();
        power_management_init();
    
        // Start execution.
        NRF_LOG_INFO("Test example started.");
        NRF_LOG_INFO("NRF_LOG_DEFERRED = %02x", NRF_LOG_DEFERRED);
        test_log("helloWorld");
        test_log("goodbyeWorld");
    
        // Enter main loop.
        for (;;)
        {
            idle_state_handle();
        }
    }

    And it prints:

    <info> app: Test example started.
    
    <info> app: NRF_LOG_DEFERRED = 00
    
    helloWorld
    goodbyeWorld
    

    Does that work for you?

    Or is it something specific in the example that you use that doesn't work?

    What is your log buffer size, NRF_LOG_BUFSIZE, in sdk_config.h?

    Best regards,

    Edvin

  • [Please use the CLI example as your baseline.  This is where I think the problem lies.  When only logging is enabled, things work ok.]

    You cannot use a basic example I do not think.  I see too many differences where things can go wrong.  If you take the CLI example from the SDK you can see the problem.  I think the issue is when you add CLI to logging.  I have increased buffer size to 1K at times.  Even with 1 word logs, they get duplicated.  Please look at my mods to the CLI example.

  • If I take the blinky example and add logging to that, there is no problems.  I see the same results as you do.  However, I want to see if you see the same results when you do a similar thing to the CLI example.  As you can see from the CLI some "unusual" config is done so that CLI and Logging can be done via the backend UART,

    Thanks for helping so far.....

Related