<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>How logging is done in nrf52832 nrf17.0 sdk and nrf5.0 mesh sdk?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/72348/how-logging-is-done-in-nrf52832-nrf17-0-sdk-and-nrf5-0-mesh-sdk</link><description>Hi, 
 
 I want to know how logging is happening in the nrf 17.0 sdk and nrf5.0 mesh sdk is it different in any case in nrf sdk and nrf mesh sdk? As, in infocenter of nordic it is mentioned in logger module post, that we can use RTT or UART for backend</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 09 Mar 2021 17:54:36 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/72348/how-logging-is-done-in-nrf52832-nrf17-0-sdk-and-nrf5-0-mesh-sdk" /><item><title>RE: How logging is done in nrf52832 nrf17.0 sdk and nrf5.0 mesh sdk?</title><link>https://devzone.nordicsemi.com/thread/298831?ContentTypeID=1</link><pubDate>Tue, 09 Mar 2021 17:54:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e833eb07-0db4-4682-b67d-d1184d46e672</guid><dc:creator>Mttrinh</dc:creator><description>&lt;p&gt;Have you included the necessary header files and added the .c to your project like the project I referred to?&lt;/p&gt;
&lt;p&gt;I also noticed that &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/71925/how-to-send-data-to-uart-for-the-provisioner-example-of-mesh-sdk" rel="noopener noreferrer" target="_blank"&gt;this&lt;/a&gt;&amp;nbsp;is the same case? Like I mentioned in that thread you could also have a look at the &lt;span&gt;proximity coexist example where logging over UART is&amp;nbsp;initialized&amp;nbsp;by default.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How logging is done in nrf52832 nrf17.0 sdk and nrf5.0 mesh sdk?</title><link>https://devzone.nordicsemi.com/thread/298244?ContentTypeID=1</link><pubDate>Mon, 08 Mar 2021 06:15:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3d5679d7-a152-476c-bba7-d8ca4ada56f3</guid><dc:creator>Ela</dc:creator><description>&lt;p&gt;Hi Mttrinh,&lt;/p&gt;
&lt;p&gt;I have implemented in the same way as mentioned in the example, but getting lot of errors and not able to build the project, can you help me with this. And how shall i test this example code, i do not want to use on board debugger and USB cable i want to use the UART pins to test uart data.&lt;/p&gt;
&lt;p&gt;I am attaching the error i am getting:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;Building &amp;#39;provisioner_nrf52832_xxAA_s132_7.2.0&amp;#39; from solution &amp;#39;provisioner_nrf52832_xxAA_s132_7.2.0&amp;#39; in configuration &amp;#39;Debug&amp;#39;
  Compiling &amp;#39;main.c&amp;#39;
  Compiling &amp;#39;provisioner_helper.c&amp;#39;
  Compiling &amp;#39;node_setup.c&amp;#39;
  Compiling &amp;#39;rtt_input.c&amp;#39;
  Compiling &amp;#39;simple_hal.c&amp;#39;
  Compiling &amp;#39;mesh_adv.c&amp;#39;
  Compiling &amp;#39;nrf_mesh_weak.c&amp;#39;
  Compiling &amp;#39;ble_softdevice_support.c&amp;#39;
  Compiling &amp;#39;app_error_weak.c&amp;#39;
  Compiling &amp;#39;assertion_handler_weak.c&amp;#39;
  Compiling &amp;#39;nrf_log_default_backends.c&amp;#39;
  Compiling &amp;#39;retarget.c&amp;#39;
  Compiling &amp;#39;nrf_log_frontend.c&amp;#39;
  Compiling &amp;#39;app_uart_fifo.c&amp;#39;
  Compiling &amp;#39;nrf_log_str_formatter.c&amp;#39;
  Compiling &amp;#39;nrf_memobj.c&amp;#39;
  Compiling &amp;#39;nrf_log_backend_rtt.c&amp;#39;
  Compiling &amp;#39;nrf_log_backend_serial.c&amp;#39;
  Compiling &amp;#39;nrf_balloc.c&amp;#39;
  Compiling &amp;#39;nrf_ringbuf.c&amp;#39;
  Compiling &amp;#39;nrf_fprintf.c&amp;#39;
  Compiling &amp;#39;nrf_drv_uart.c&amp;#39;
  Compiling &amp;#39;app_fifo.c&amp;#39;
  Compiling &amp;#39;internal_event.c&amp;#39;
  Compiling &amp;#39;nrf_mesh_configure.c&amp;#39;
  Compiling &amp;#39;aes.c&amp;#39;
  Compiling &amp;#39;msg_cache.c&amp;#39;
  Compiling &amp;#39;transport.c&amp;#39;
  Compiling &amp;#39;packet_buffer.c&amp;#39;
  Compiling &amp;#39;event.c&amp;#39;
  Compiling &amp;#39;flash_manager_defrag.c&amp;#39;
  Compiling &amp;#39;fifo.c&amp;#39;
  Compiling &amp;#39;nrf_flash.c&amp;#39;
  Compiling &amp;#39;net_state.c&amp;#39;
  Compiling &amp;#39;mesh_flash.c&amp;#39;
  Compiling &amp;#39;nrf_mesh_utils.c&amp;#39;
  Compiling &amp;#39;nrf_mesh.c&amp;#39;
  Compiling &amp;#39;queue.c&amp;#39;
  Compiling &amp;#39;hal.c&amp;#39;
  Compiling &amp;#39;aes_cmac.c&amp;#39;
  Compiling &amp;#39;timer_scheduler.c&amp;#39;
  Compiling &amp;#39;long_timer.c&amp;#39;
  Compiling &amp;#39;timer.c&amp;#39;
  Compiling &amp;#39;rand.c&amp;#39;
  Compiling &amp;#39;nrf_mesh_opt.c&amp;#39;
  Compiling &amp;#39;mesh_opt.c&amp;#39;
  Compiling &amp;#39;timeslot.c&amp;#39;
  Compiling &amp;#39;timeslot_timer.c&amp;#39;
  Compiling &amp;#39;bearer_event.c&amp;#39;
  Compiling &amp;#39;enc.c&amp;#39;
  Compiling &amp;#39;net_packet.c&amp;#39;
  Compiling &amp;#39;network.c&amp;#39;
  Compiling &amp;#39;msqueue.c&amp;#39;
  Compiling &amp;#39;nrf_mesh_keygen.c&amp;#39;
  Compiling &amp;#39;cache.c&amp;#39;
  Compiling &amp;#39;log.c&amp;#39;
  Compiling &amp;#39;list.c&amp;#39;
  Compiling &amp;#39;flash_manager.c&amp;#39;
  Compiling &amp;#39;ccm_soft.c&amp;#39;
  Compiling &amp;#39;toolchain.c&amp;#39;
  Compiling &amp;#39;replay_cache.c&amp;#39;
  Compiling &amp;#39;beacon.c&amp;#39;
  Compiling &amp;#39;core_tx.c&amp;#39;
  Compiling &amp;#39;flash_manager_internal.c&amp;#39;
  Compiling &amp;#39;heartbeat.c&amp;#39;
  Compiling &amp;#39;mesh_config.c&amp;#39;
  Compiling &amp;#39;net_beacon.c&amp;#39;
  Compiling &amp;#39;fsm.c&amp;#39;
  Compiling &amp;#39;mesh_config_backend.c&amp;#39;
  Compiling &amp;#39;lpn.c&amp;#39;
  Compiling &amp;#39;mesh_config_flashman_glue.c&amp;#39;
  Compiling &amp;#39;core_tx_lpn.c&amp;#39;
  Compiling &amp;#39;mesh_lpn_subman.c&amp;#39;
  Compiling &amp;#39;core_tx_local.c&amp;#39;
  Compiling &amp;#39;emergency_cache.c&amp;#39;
  Compiling &amp;#39;mesh_mem_stdlib.c&amp;#39;
  Compiling &amp;#39;core_tx_adv.c&amp;#39;
  Assembling &amp;#39;thumb_crt0.s&amp;#39;
  Compiling &amp;#39;mesh_stack.c&amp;#39;
  Compiling &amp;#39;access_publish.c&amp;#39;
  Compiling &amp;#39;access_publish_retransmission.c&amp;#39;
  Compiling &amp;#39;access.c&amp;#39;
  Compiling &amp;#39;access_reliable.c&amp;#39;
  Compiling &amp;#39;device_state_manager.c&amp;#39;
  Compiling &amp;#39;ad_listener.c&amp;#39;
  Compiling &amp;#39;ad_type_filter.c&amp;#39;
  Compiling &amp;#39;adv_packet_filter.c&amp;#39;
  Compiling &amp;#39;advertiser.c&amp;#39;
  Compiling &amp;#39;bearer_handler.c&amp;#39;
  Compiling &amp;#39;broadcast.c&amp;#39;
  Compiling &amp;#39;gap_address_filter.c&amp;#39;
  Compiling &amp;#39;filter_engine.c&amp;#39;
  Compiling &amp;#39;radio_config.c&amp;#39;
  Compiling &amp;#39;rssi_filter.c&amp;#39;
  Compiling &amp;#39;scanner.c&amp;#39;
  Compiling &amp;#39;mesh_pa_lna.c&amp;#39;
  Compiling &amp;#39;SEGGER_RTT.c&amp;#39;
  Compiling &amp;#39;SEGGER_RTT_printf.c&amp;#39;
  Compiling &amp;#39;uECC.c&amp;#39;
  Compiling &amp;#39;nrfx_gpiote.c&amp;#39;
  Compiling &amp;#39;ble_advdata.c&amp;#39;
  Compiling &amp;#39;app_util_platform.c&amp;#39;
  Compiling &amp;#39;nrf_section_iter.c&amp;#39;
  Compiling &amp;#39;nrf_sdh_soc.c&amp;#39;
  Compiling &amp;#39;nrf_sdh.c&amp;#39;
    #warning Please select NRF_CLOCK_LF_ACCURACY_500_PPM when using NRF_CLOCK_LF_SRC_RC [-Wcpp]
  Compiling &amp;#39;nrf_sdh_ble.c&amp;#39;
  Compiling &amp;#39;ble_conn_params.c&amp;#39;
  Compiling &amp;#39;nrf_atomic.c&amp;#39;
  Compiling &amp;#39;ble_srv_common.c&amp;#39;
  Compiling &amp;#39;system_nrf52.c&amp;#39;
  Compiling &amp;#39;app_error.c&amp;#39;
  Assembling &amp;#39;ses_startup_nrf52.s&amp;#39;
  Compiling &amp;#39;app_error_handler_gcc.c&amp;#39;
  Compiling &amp;#39;prov_provisioner.c&amp;#39;
  Assembling &amp;#39;ses_startup_nrf_common.s&amp;#39;
  Compiling &amp;#39;nrf_mesh_prov.c&amp;#39;
  Compiling &amp;#39;provisioning.c&amp;#39;
  Compiling &amp;#39;prov_beacon.c&amp;#39;
  Compiling &amp;#39;prov_utils.c&amp;#39;
  Compiling &amp;#39;prov_bearer_adv.c&amp;#39;
  Compiling &amp;#39;config_client.c&amp;#39;
  Compiling &amp;#39;composition_data.c&amp;#39;
  Compiling &amp;#39;config_server.c&amp;#39;
  Compiling &amp;#39;packed_index_list.c&amp;#39;
  Compiling &amp;#39;health_server.c&amp;#39;
  Compiling &amp;#39;health_client.c&amp;#39;
  Compiling &amp;#39;app_timer_mesh.c&amp;#39;
  Compiling &amp;#39;app_timer_workaround.c&amp;#39;
  Compiling &amp;#39;nrf_fprintf_format.c&amp;#39;
  Generating linker script &amp;#39;provisioner_nrf52832_xxAA_s132_7.2.0.ld&amp;#39;
  Linking provisioner_nrf52832_xxAA_s132_7.2.0.elf
    build/provisioner_nrf52832_xxAA_s132_7.2.0_Debug/obj/app_uart_fifo.o: in function `nrf_drv_uart_rx&amp;#39;:
    undefined reference to `nrfx_uarte_rx&amp;#39;
    /home/ekta/Desktop/8_feb_21/SmartProducts/Firmware/3rdParty/nRF5/nRF5SDK/integration/nrfx/legacy/nrf_drv_uart.h:569: undefined reference to `nrfx_uarte_rx&amp;#39;
    /home/ekta/Desktop/8_feb_21/SmartProducts/Firmware/3rdParty/nRF5/nRF5SDK/integration/nrfx/legacy/nrf_drv_uart.h:569: undefined reference to `nrfx_uarte_rx&amp;#39;
    build/provisioner_nrf52832_xxAA_s132_7.2.0_Debug/obj/app_uart_fifo.o: in function `nrf_drv_uart_tx&amp;#39;:
    undefined reference to `nrfx_uarte_tx&amp;#39;
    build/provisioner_nrf52832_xxAA_s132_7.2.0_Debug/obj/app_uart_fifo.o: in function `nrf_drv_uart_rx&amp;#39;:
    undefined reference to `nrfx_uarte_rx&amp;#39;
    build/provisioner_nrf52832_xxAA_s132_7.2.0_Debug/obj/app_uart_fifo.o: in function `nrf_drv_uart_tx_in_progress&amp;#39;:
    undefined reference to `nrfx_uarte_tx_in_progress&amp;#39;
    build/provisioner_nrf52832_xxAA_s132_7.2.0_Debug/obj/app_uart_fifo.o: in function `nrf_drv_uart_tx&amp;#39;:
    undefined reference to `nrfx_uarte_tx&amp;#39;
    build/provisioner_nrf52832_xxAA_s132_7.2.0_Debug/obj/nrf_drv_uart.o: in function `nrf_drv_uart_init&amp;#39;:
    undefined reference to `nrfx_uarte_init&amp;#39;
Build failed&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Attaching the main.c file&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;pre class="ui-code" data-mode="text"&gt;/* Copyright (c) 2010 - 2020, 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 &amp;quot;AS IS&amp;quot; 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.
 */

#include &amp;lt;stdint.h&amp;gt;
#include &amp;lt;string.h&amp;gt;

/* HAL */
#include &amp;quot;boards.h&amp;quot;
#include &amp;quot;nrf_delay.h&amp;quot;
#include &amp;quot;simple_hal.h&amp;quot;
#include &amp;quot;app_timer.h&amp;quot;

/* Core */
#include &amp;quot;nrf_mesh.h&amp;quot;
#include &amp;quot;nrf_mesh_events.h&amp;quot;
#include &amp;quot;nrf_mesh_assert.h&amp;quot;
#include &amp;quot;access_config.h&amp;quot;
#include &amp;quot;device_state_manager.h&amp;quot;
#include &amp;quot;mesh_stack.h&amp;quot;
#include &amp;quot;net_state.h&amp;quot;
#include &amp;quot;mesh_opt_provisioner.h&amp;quot;
#include &amp;quot;mesh_config_entry.h&amp;quot;
#include &amp;quot;mesh_opt.h&amp;quot;

/* Provisioning and configuration */
#include &amp;quot;provisioner_helper.h&amp;quot;
#include &amp;quot;node_setup.h&amp;quot;
#include &amp;quot;mesh_app_utils.h&amp;quot;

/* Models */
#include &amp;quot;config_client.h&amp;quot;
#include &amp;quot;config_server.h&amp;quot;
#include &amp;quot;health_client.h&amp;quot;

/* Logging and RTT */
#include &amp;quot;rtt_input.h&amp;quot;
#include &amp;quot;log.h&amp;quot;

#include&amp;quot;nrf_log_ctrl.h&amp;quot;
#include &amp;quot;nrf_uart.h&amp;quot;
#include &amp;quot;app_uart.h&amp;quot;
#include &amp;quot;nrf_log_ctrl.h&amp;quot;
#include &amp;quot;nrf_log_default_backends.h&amp;quot;
//#include &amp;quot;nrf_log_backend_interface.h&amp;quot;


/* Example specific includes */
#include &amp;quot;example_network_config.h&amp;quot;
#include &amp;quot;nrf_mesh_config_examples.h&amp;quot;
#include &amp;quot;ble_softdevice_support.h&amp;quot;
#include &amp;quot;example_common.h&amp;quot;

/*****************************************************************************
 * Definitions
 *****************************************************************************/
#define APP_PROVISIONING_LED            BSP_LED_0
#define APP_CONFIGURATION_LED           BSP_LED_1





#define UART_TX_BUF_SIZE                256                                         /**&amp;lt; UART TX buffer size. */
#define UART_RX_BUF_SIZE                256                                         /**&amp;lt; UART RX buffer size. */
#include &amp;quot;app_uart.h&amp;quot;
#include &amp;quot;nrf_uart.h&amp;quot;
static bool m_device_provisioned;

/*****************************************************************************
 * Forward declaration of static functions
 *****************************************************************************/
static uint32_t provisioner_setter(mesh_config_entry_id_t id, const void * p_entry);
static void provisioner_getter(mesh_config_entry_id_t id, void * p_entry);
static void provisioner_deleter(mesh_config_entry_id_t id);
static void app_health_event_cb(const health_client_t * p_client, const health_client_evt_t * p_event);
static void app_config_successful_cb(void);
static void app_config_failed_cb(void);
static void app_mesh_core_event_cb (const nrf_mesh_evt_t * p_evt);

static void app_start(void);


/*****************************************************************************
 * Static variables
 *****************************************************************************/
/* Required for the provisioner helper module */
static network_dsm_handles_data_volatile_t m_dev_handles;

static network_stats_data_stored_t m_nw_state;
static bool m_node_prov_setup_started;
static nrf_mesh_evt_handler_t m_mesh_core_event_handler = { .evt_cb = app_mesh_core_event_cb };

NRF_MESH_STATIC_ASSERT(MESH_OPT_FIRST_FREE_ID &amp;lt;= MESH_APP_FILE_ID);
MESH_CONFIG_FILE(m_provisioner_file, MESH_APP_FILE_ID, MESH_CONFIG_STRATEGY_CONTINUOUS);

MESH_CONFIG_ENTRY(provisioner,
                  PROVISIONER_ENTRY_ID,
                  1,
                  sizeof(network_stats_data_stored_t),
                  provisioner_setter,
                  provisioner_getter,
                  provisioner_deleter,
                  false);

static uint32_t provisioner_setter(mesh_config_entry_id_t id, const void * p_entry)
{
    __LOG(LOG_SRC_APP, LOG_LEVEL_DBG1, &amp;quot;Provisioner setter ...\n&amp;quot;);
    NRF_MESH_ASSERT_DEBUG(PROVISIONER_RECORD == id.record);

    network_stats_data_stored_t * p_nsds = (network_stats_data_stored_t *) p_entry;
    memcpy(&amp;amp;m_nw_state, p_nsds, sizeof(network_stats_data_stored_t));

    return NRF_SUCCESS;
}

static void provisioner_getter(mesh_config_entry_id_t id, void * p_entry)
{
    __LOG(LOG_SRC_APP, LOG_LEVEL_DBG1, &amp;quot;Provisioner getter ...\n&amp;quot;);
    NRF_MESH_ASSERT_DEBUG(PROVISIONER_RECORD == id.record);

    network_stats_data_stored_t * p_nw_state = (network_stats_data_stored_t *) p_entry;
    memcpy(p_nw_state, &amp;amp;m_nw_state, sizeof(m_nw_state));
}

static void provisioner_deleter(mesh_config_entry_id_t id)
{
    __LOG(LOG_SRC_APP, LOG_LEVEL_DBG1, &amp;quot;Provisioner deleter ...\n&amp;quot;);
    NRF_MESH_ASSERT_DEBUG(PROVISIONER_RECORD == id.record);

    /* Clear and set default values. */
    memset(&amp;amp;m_nw_state, 0x00, sizeof(m_nw_state));
}

static void provisioner_store(void)
{
    mesh_config_entry_id_t id = PROVISIONER_ENTRY_ID;

    NRF_MESH_ERROR_CHECK(mesh_config_entry_set(id, &amp;amp;m_nw_state));
}

static void provisioner_invalidate(void)
{
    /* Stop scanner. */
    prov_helper_scan_stop();
    /* Delete all old values and remove from mesh config. */
    (void)mesh_config_entry_delete(PROVISIONER_ENTRY_ID);
}

/*****************************************************************************/

static void app_data_store_cb(void)
{
    provisioner_store();
}

/*****************************************************************************/
/**** Configuration process related callbacks ****/

static void app_config_successful_cb(void)
{
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Configuration of device %u successful\n&amp;quot;, m_nw_state.configured_devices);

    hal_led_pin_set(APP_CONFIGURATION_LED, 0);
    hal_led_pin_set(APP_PROVISIONING_LED, 1);

    m_nw_state.configured_devices++;
    provisioner_store();
    prov_helper_provision_next_device();
    prov_helper_scan_start();
}

static void app_config_failed_cb(void)
{
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Configuration of device %u failed.\n&amp;quot;, m_nw_state.configured_devices);
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Press Button/RTT 1 to retry configuration.\n&amp;quot;);
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Press Button/RTT 2 to start provisioning new nodes.\n&amp;quot;);
    m_node_prov_setup_started = false;
    hal_led_pin_set(APP_CONFIGURATION_LED, 0);
}

static void app_prov_success_cb(void)
{
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Provisioning successful\n&amp;quot;);

    hal_led_pin_set(APP_PROVISIONING_LED, 0);
    hal_led_pin_set(APP_CONFIGURATION_LED, 1);

    provisioner_store();
}

static void app_prov_failed_cb(void)
{
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Provisioning failed. Press Button 1 to retry.\n&amp;quot;);

    m_node_prov_setup_started = false;

    hal_led_pin_set(APP_PROVISIONING_LED, 0);
}


/*****************************************************************************/
/**** Model related callbacks ****/
static void app_health_event_cb(const health_client_t * p_client, const health_client_evt_t * p_event)
{
    switch (p_event-&amp;gt;type)
    {
        case HEALTH_CLIENT_EVT_TYPE_CURRENT_STATUS_RECEIVED:
            __LOG(LOG_SRC_APP,
                  LOG_LEVEL_INFO,
                  &amp;quot;Node 0x%04x alive with %u active fault(s), RSSI: %d\n&amp;quot;,
                  p_event-&amp;gt;p_meta_data-&amp;gt;src.value,
                  p_event-&amp;gt;data.fault_status.fault_array_length,
                  ((p_event-&amp;gt;p_meta_data-&amp;gt;p_core_metadata-&amp;gt;source == NRF_MESH_RX_SOURCE_SCANNER)
                       ? p_event-&amp;gt;p_meta_data-&amp;gt;p_core_metadata-&amp;gt;params.scanner.rssi
                       : 0));
            break;
        default:
            break;
    }
}

static void app_config_server_event_cb(const config_server_evt_t * p_evt)
{
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;config_server Event %d.\n&amp;quot;, p_evt-&amp;gt;type);

    if (p_evt-&amp;gt;type == CONFIG_SERVER_EVT_NODE_RESET)
    {
        /* This should never return */
        hal_device_reset(0);
    }
}

static void app_config_client_event_cb(config_client_event_type_t event_type, const config_client_event_t * p_event, uint16_t length)
{
    /* USER_NOTE: Do additional processing of config client events here if required */
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Config client event\n&amp;quot;);

    /* Pass events to the node setup helper module for further processing */
    node_setup_config_client_event_process(event_type, p_event, length);
}


static void provisioning_start(void)
{
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Start provisioning procedure ...\n&amp;quot;);

    prov_helper_provision_next_device();
    prov_helper_scan_start();

    hal_led_pin_set(APP_PROVISIONING_LED, 1);
}

static void provisioning_resume(void)
{
    if (!m_node_prov_setup_started)
    {
        /* If previously provisioned device is not configured. */
        if (m_nw_state.configured_devices &amp;lt; m_nw_state.provisioned_devices)
        {
            m_nw_state.provisioned_devices--;
            provisioning_start();
            m_node_prov_setup_started = true;
        }
    }
}

/** Check if all devices have been provisioned. If not, provision remaining devices.
 *  Check if all devices have been configured. If not, start configuring them.
 */
static void check_network_state(void)
{
    if (!m_node_prov_setup_started)
    {
        /* If previously provisioned device is not configured, start node setup procedure. */
        if (m_nw_state.configured_devices &amp;lt; m_nw_state.provisioned_devices)
        {
            /* Execute configuration */
            __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Waiting for provisioned node to be configured ...\n&amp;quot;);

            node_setup_start(m_nw_state.last_device_address, PROVISIONER_RETRY_COUNT,
                            m_nw_state.appkey, APPKEY_INDEX, NETKEY_INDEX, m_nw_state.current_uri);

            hal_led_pin_set(APP_CONFIGURATION_LED, 1);
        }
        else
        {
            provisioning_start();
        }

        m_node_prov_setup_started = true;
    }
    else
    {
        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Waiting for previous procedure to finish ...\n&amp;quot;);
    }
}

static void app_mesh_core_event_cb (const nrf_mesh_evt_t * p_evt)
{
    /* USER_NOTE: User can insert mesh core event processing here */
    switch(p_evt-&amp;gt;type)
    {
        /* Start user application specific functions only when stack is enabled */
        case NRF_MESH_EVT_ENABLED:
            __LOG(LOG_SRC_APP, LOG_LEVEL_DBG1, &amp;quot;Mesh evt: NRF_MESH_EVT_ENABLED\n&amp;quot;);
#if (PERSISTENT_STORAGE)
            /* Mesh stack initialization has been completed */
            app_start();
#endif
            break;

        case NRF_MESH_EVT_CONFIG_LOAD_FAILURE:
            if (p_evt-&amp;gt;params.config_load_failure.id.file == MESH_APP_FILE_ID)
            {
                __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Persistent provisioner data was corrupted. Set default values. \n&amp;quot;);
                /* Clear and set default values. */
                memset(&amp;amp;m_nw_state, 0x00, sizeof(m_nw_state));
            }
            break;

        default:
            break;
    }
}

/* Binds the local models correctly with the desired keys */
void app_default_models_bind_setup(void)
{
    /* Bind health client to App key, and configure publication key */
    ERROR_CHECK(access_model_application_bind(m_dev_handles.m_health_client_instance.model_handle, m_dev_handles.m_appkey_handle));
    ERROR_CHECK(access_model_publish_application_set(m_dev_handles.m_health_client_instance.model_handle, m_dev_handles.m_appkey_handle));

    /* Bind self-config server to the self device key */
    ERROR_CHECK(config_server_bind(m_dev_handles.m_self_devkey_handle));
}

static void node_reset(void)
{
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;----- Node reset  -----\n&amp;quot;);

    hal_led_blink_ms(HAL_LED_MASK, LED_BLINK_INTERVAL_MS, LED_BLINK_CNT_RESET);
    /* This function may return if there are ongoing flash operations. */
    mesh_stack_device_reset();
}

#if NRF_MESH_LOG_ENABLE
static const char m_usage_string[] =
    &amp;quot;\n&amp;quot;
    &amp;quot;\t\t--------------------------------------------------------------------------------\n&amp;quot;
    &amp;quot;\t\t Button/RTT 1) Initiate provisioning and configuration of unprovisioned devices.\n&amp;quot;
    &amp;quot;\t\t Button/RTT 4) Clear all the states to reset the node.\n&amp;quot;
    &amp;quot;\t\t--------------------------------------------------------------------------------\n&amp;quot;;
#endif

static void button_event_handler(uint32_t button_number)
{
    /* Increase button number because the buttons on the board is marked with 1 to 4 */
    button_number++;
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Button %u pressed\n&amp;quot;, button_number);
    switch (button_number)
    {
        case 1:
        {
            /* Check if all devices have been provisioned or not */
            check_network_state();
            break;
        }

        case 2:
        {
            provisioning_resume();
            break;
        }

        /* Initiate node reset */
        case 4:
        {
            if (mesh_stack_is_device_provisioned())
            {
                /* Clear all the states to reset the node. */
                provisioner_invalidate();
                mesh_stack_config_clear();
            }
            node_reset();
            break;
        }

        default:
            __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, m_usage_string);
            break;
    }
}

static void app_rtt_input_handler(int key)
{
    if (key &amp;gt;= &amp;#39;1&amp;#39; &amp;amp;&amp;amp; key &amp;lt;= &amp;#39;4&amp;#39;)
    {
        uint32_t button_number = key - &amp;#39;1&amp;#39;;
        button_event_handler(button_number);
    }
    else
    {
        __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, m_usage_string);
    }
}

void models_init_cb(void)
{
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Initializing and adding models\n&amp;quot;);
    m_dev_handles.m_netkey_handle = DSM_HANDLE_INVALID;
    m_dev_handles.m_appkey_handle = DSM_HANDLE_INVALID;
    m_dev_handles.m_self_devkey_handle = DSM_HANDLE_INVALID;

    /* This app requires following models :
     * config client : To be able to configure other devices
     * health client : To be able to interact with other health servers */
    ERROR_CHECK(config_client_init(app_config_client_event_cb));
    ERROR_CHECK(health_client_init(&amp;amp;m_dev_handles.m_health_client_instance, 0, app_health_event_cb));
}

static void mesh_init(void)
{
    bool device_provisioned;
    mesh_stack_init_params_t init_params =
    {
        .core.irq_priority       = NRF_MESH_IRQ_PRIORITY_LOWEST,
        .core.lfclksrc           = DEV_BOARD_LF_CLK_CFG,
        .models.models_init_cb   = models_init_cb,
        .models.config_server_cb = app_config_server_event_cb
    };

    nrf_mesh_evt_handler_add(&amp;amp;m_mesh_core_event_handler);
    uint32_t status = mesh_stack_init(&amp;amp;init_params, &amp;amp;device_provisioned);
    switch (status)
    {
        case NRF_ERROR_INVALID_DATA:
            __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Data in the persistent memory was corrupted.\n&amp;quot;);
            __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Reboot device before starting of the provisioning process.\n&amp;quot;);
            break;
        case NRF_SUCCESS:
            break;
        default:
            ERROR_CHECK(status);
    }

    if (status == NRF_SUCCESS)
    {
        /* Initialize the provisioner */
        mesh_provisioner_init_params_t m_prov_helper_init_info =
        {
            .p_dev_data = &amp;amp;m_dev_handles,
            .p_nw_data = &amp;amp;m_nw_state,
            .netkey_idx = NETKEY_INDEX,
            .attention_duration_s = ATTENTION_DURATION_S,
            .p_data_store_cb  = app_data_store_cb,
            .p_prov_success_cb = app_prov_success_cb,
            .p_prov_failed_cb = app_prov_failed_cb
        };
        prov_helper_init(&amp;amp;m_prov_helper_init_info);

        if (!device_provisioned)
        {
            __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Setup defaults: Adding keys, addresses, and bindings \n&amp;quot;);

            prov_helper_provision_self();
            app_default_models_bind_setup();
            app_data_store_cb();
        }
        else
        {
            __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Restored: Handles \n&amp;quot;);
            prov_helper_device_handles_load();
        }

        node_setup_cb_set(app_config_successful_cb, app_config_failed_cb);
    }
}





void uart_event_handle(app_uart_evt_t * p_event)
{
 printf(&amp;quot;\r\nUART started uart event handler.\r\n&amp;quot;);

}



/**@brief  Function for initializing the UART module.
 */
/**@snippet [UART Initialization] */
static void uart_init(void)
{
    uint32_t                     err_code;
    app_uart_comm_params_t const comm_params =
    {
        .rx_pin_no    = RX_PIN_NUMBER,
        .tx_pin_no    = TX_PIN_NUMBER,
        .rts_pin_no   = RTS_PIN_NUMBER,
        .cts_pin_no   = CTS_PIN_NUMBER,
        .flow_control = APP_UART_FLOW_CONTROL_DISABLED,
        .use_parity   = false,
#if defined (UART_PRESENT)
        .baud_rate    = NRF_UART_BAUDRATE_115200
#else
        .baud_rate    = NRF_UARTE_BAUDRATE_115200
#endif
    };

  APP_UART_FIFO_INIT(&amp;amp;comm_params,
                       UART_RX_BUF_SIZE,
                       UART_TX_BUF_SIZE,
                       uart_event_handle,
                       APP_IRQ_PRIORITY_LOWEST,
                       err_code);
    APP_ERROR_CHECK(err_code);
}
/**@snippet [UART Initialization] */








static void initialize(void)
{
      uart_init();
   
   // __LOG_INIT(LOG_SRC_APP | LOG_SRC_ACCESS, LOG_LEVEL_INFO, LOG_CALLBACK_DEFAULT);
    __LOG_INIT(LOG_SRC_APP | LOG_SRC_FRIEND, LOG_LEVEL_DBG1, log_callback_rtt);
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;----- BLE Mesh Static Provisioner Demo -----\n&amp;quot;);

    ERROR_CHECK(app_timer_init());
    hal_leds_init();

#if BUTTON_BOARD
    ERROR_CHECK(hal_buttons_init(button_event_handler));
#endif

    ble_stack_init();
    mesh_init();
    node_setup_uri_check();
}

static void app_start(void)
{
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Starting application ...\n&amp;quot;);
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Provisioned Nodes: %d, Configured Nodes: %d\n&amp;quot;,
          m_nw_state.provisioned_devices, m_nw_state.configured_devices);
    __LOG_XB(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Dev key &amp;quot;, m_nw_state.self_devkey, NRF_MESH_KEY_SIZE);
    __LOG_XB(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Net key &amp;quot;, m_nw_state.netkey, NRF_MESH_KEY_SIZE);
    __LOG_XB(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;App key &amp;quot;, m_nw_state.appkey, NRF_MESH_KEY_SIZE);
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;Press Button/RTT 1 to start provisioning and configuration process. \n&amp;quot;);
}

static void start(void)
{
    rtt_input_enable(app_rtt_input_handler, RTT_INPUT_POLL_PERIOD_MS);
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, &amp;quot;&amp;lt;start&amp;gt; \n&amp;quot;);

    ERROR_CHECK(mesh_stack_start());

#if (!PERSISTENT_STORAGE)
    app_start();
#endif

    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, m_usage_string);

    hal_led_mask_set(HAL_LED_MASK, LED_MASK_STATE_OFF);
    hal_led_blink_ms(HAL_LED_MASK, LED_BLINK_INTERVAL_MS, LED_BLINK_CNT_START);
}



/**@brief Function for initializing the nrf log module.
 */
 #if 0
static void log1_init(void)
{
    ret_code_t err_code = NRF_LOG_INIT(NULL);
    APP_ERROR_CHECK(err_code);

    NRF_LOG_DEFAULT_BACKENDS_INIT();
}
#endif








#if 0
void my_uart_callback(nrfx_uarte_event_t const * p_event,
                      void *                     p_context)
{
    //TODO: Handle &amp;#39;p_event&amp;#39;
}
#endif

int main(void)
{
    

   // nrfx_uarte_t m_uart = NRFX_UARTE_INSTANCE(0); 
    //nrfx_uarte_config_t m_uart_config = NRFX_UARTE_DEFAULT_CONFIG;
    
   // nrfx_uarte_init(&amp;amp;m_uart, &amp;amp;m_uart_config, my_uart_callback);



    // uart_init();
     //log1_init();

 //   ret_code_t err_code = NRF_LOG_INIT(NULL);
  //  APP_ERROR_CHECK(err_code);

    // NRF_LOG_DEFAULT_BACKENDS_INIT();

    initialize();
    start();

    for (;;)
    {
        (void)sd_app_evt_wait();
    }
}
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Attaching the log.c file&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/* Copyright (c) 2010 - 2020, 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 &amp;quot;AS IS&amp;quot; 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.
 */

#include &amp;lt;stdarg.h&amp;gt;
#include &amp;lt;stdint.h&amp;gt;
#include &amp;lt;nrf_error.h&amp;gt;
#include &amp;quot;log.h&amp;quot;
#if defined(HOST)
#include &amp;lt;stdio.h&amp;gt;
#endif
#include &amp;lt;stdio.h&amp;gt;
#if NRF_MESH_LOG_ENABLE

const char * g_log_hex_digits = &amp;quot;0123456789ABCDEF&amp;quot;;

uint32_t       g_log_dbg_msk = LOG_MSK_DEFAULT;
int32_t        g_log_dbg_lvl = LOG_LEVEL_DEFAULT;
log_callback_t m_log_callback = LOG_CALLBACK_DEFAULT;

#if (LOG_ENABLE_RTT &amp;amp;&amp;amp; !defined(HOST))
#include &amp;lt;SEGGER_RTT.h&amp;gt;

/* For some reason, this function, while not static, is not included in the RTT header files. */
int SEGGER_RTT_vprintf(unsigned, const char *, va_list *);

void log_callback_rtt(uint32_t dbg_level, const char * p_filename, uint16_t line,
    uint32_t timestamp, const char * format, va_list arguments)
{

   /* SEGGER_RTT_printf(0, &amp;quot;&amp;lt;t: %10u&amp;gt;, %s, %4d, &amp;quot;,timestamp, p_filename, line);
    SEGGER_RTT_vprintf(0, format, &amp;amp;arguments);*/
    printf( &amp;quot;&amp;lt;t: %10u&amp;gt;, %s, %4d, &amp;quot;,timestamp, p_filename, line);
    (void)vprintf(format, arguments);

}

void log_callback_logview(uint32_t dbg_level, const char * p_filename, uint16_t line,
    uint32_t timestamp, const char * format, va_list arguments)
{
    SEGGER_RTT_printf(0, &amp;quot;%u;%u;%s;%u;&amp;quot;, dbg_level, timestamp, p_filename, line);
    SEGGER_RTT_vprintf(0, format, &amp;amp;arguments);
    SEGGER_RTT_Write(0, &amp;quot;$&amp;quot;, 1);
}

#endif

#if defined(HOST) /* For unit tests and host builds */
void log_callback_stdout(uint32_t dbg_level, const char * p_filename, uint16_t line,
    uint32_t timestamp, const char * format, va_list arguments)
{
    printf(&amp;quot;&amp;lt;t: %10u&amp;gt;, %s, %4d, &amp;quot;,timestamp, p_filename, line);
    (void) vprintf(format, arguments);
}
#endif

void log_init(uint32_t mask, uint32_t level, log_callback_t callback)
{
    g_log_dbg_msk = mask;
    g_log_dbg_lvl = level;

    m_log_callback = callback;
}

void log_set_callback(log_callback_t callback)
{
    m_log_callback = callback;
}

void log_printf(uint32_t dbg_level, const char * p_filename, uint16_t line,
    uint32_t timestamp, const char * format, ...)
{
    va_list arguments; /*lint -save -esym(530,arguments) Symbol arguments not initialized. */
    va_start(arguments, format);
    log_vprintf(dbg_level, p_filename, line, timestamp, format, arguments);
    va_end(arguments); /*lint -restore */
}

void log_vprintf(uint32_t dbg_level, const char * p_filename, uint16_t line,
    uint32_t timestamp, const char * format, va_list arguments)
{
    if (m_log_callback != NULL)
    {
        m_log_callback(dbg_level, p_filename, line, timestamp, format, arguments);
    }
}

#endif
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Used the same sdk_config.h file. I have done these changes in provisioner example code of nrf 5.0 mesh sdk.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Please can you just help me in achieving this. I want to use UART logging in the provisioner example code of nrf 5.0 mesh. Can you please provide me the code changes for the provisioner project so that i can able to build it and test it.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank you so much&lt;/p&gt;
&lt;p&gt;Ela&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How logging is done in nrf52832 nrf17.0 sdk and nrf5.0 mesh sdk?</title><link>https://devzone.nordicsemi.com/thread/298239?ContentTypeID=1</link><pubDate>Mon, 08 Mar 2021 04:58:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e4d9be08-e5ce-46b0-b5d5-6aecef4ffe3d</guid><dc:creator>Ela</dc:creator><description>&lt;p&gt;Hi Mttrinh,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;1) Can you please explain me little more about in which sdk logging via uart is not enabled and how to enable logging via UART with mesh sdk. In both nrf 17.02 sdk and nrf 5.0 mesh sdk logging is happening via RTT, how to get the same logs what we are getting over RTT on UART with mesh sdk?&lt;/p&gt;
&lt;p&gt;2) I have tried implementing by taking same example reference but it did not work out for me, in this thread i have mentioned my code changes snippet for changes regarding uart logging, can you please just let me know what i have done wrong there, as changs are not working, i have taken the same example reference you mentioned.&lt;/p&gt;
&lt;p&gt;3) I am using nrf52832 DK.&amp;nbsp; I want to use UART pins not by using USB cable. I want to use UART pins (P0.8 RX and P0.6 Tx as mentioned in nrf52832 schematics) by connecting them to FTDI cable i do not want to use on baord debugger and USB for getting logs over UART. Can you please help me with this? It will be very helpful.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks &amp;amp; Regards,&lt;/p&gt;
&lt;p&gt;Ela&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How logging is done in nrf52832 nrf17.0 sdk and nrf5.0 mesh sdk?</title><link>https://devzone.nordicsemi.com/thread/298153?ContentTypeID=1</link><pubDate>Fri, 05 Mar 2021 15:16:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:71406abc-c626-4c28-9cca-27bd9f7e6397</guid><dc:creator>Mttrinh</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user=""]I want to know how logging is happening in the nrf 17.0 sdk and nrf5.0 mesh sdk is it different in any case in nrf sdk and nrf mesh sdk?[/quote]
&lt;p&gt;The difference in the two SDKs in regards to logging is that logging via UART isn&amp;#39;t enabled. This is possible to implement yourself.&amp;nbsp;&lt;/p&gt;
[quote user=""]1) Can we get logs or setup bidirectional communication over UART for nrf52832 development kit? If yes, then how, right now we are getting logs and sending commands using RTT for any existing example code. I have tried certain things as mentioned in some of devzone post and in the logger module section of the nordic infocenter, will attach the changes.&amp;nbsp;[/quote]
&lt;p&gt;Maybe &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/59428/adding-uart-code-to-the-light-switch-server-project" rel="noopener noreferrer" target="_blank"&gt;this&lt;/a&gt; can help you, there is also an example attached.&lt;/p&gt;
[quote user=""]2)&amp;nbsp; How should we test the logs over UART instead of RTT using the same USB cable or have to take connections from the UART pins ?[/quote]
&lt;p&gt;Are you using a DK? If so, the UART pins are in&lt;span&gt;ternally connected to the on-board debugger and you can connect it to a PC via a USB cable. It will be available as normal COM port.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How logging is done in nrf52832 nrf17.0 sdk and nrf5.0 mesh sdk?</title><link>https://devzone.nordicsemi.com/thread/298004?ContentTypeID=1</link><pubDate>Fri, 05 Mar 2021 10:30:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bf67e480-e4b3-46b3-82c4-cc6edc42a166</guid><dc:creator>Ela</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Is there any updates for this if anyone has?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks &amp;amp; Regards,&lt;/p&gt;
&lt;p&gt;Ela&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>