<?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>nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/108223/nrf52840-soft-reset-cause</link><description>hi 
 how i can get a log for why nrf52840 is reset when start advertising for bluetooth? 
 the reset register is 4 
 can i get more information from log? 
 how? 
 thank you</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 15 Feb 2024 17:06:30 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/108223/nrf52840-soft-reset-cause" /><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/469117?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2024 17:06:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:42113a65-ba88-4853-b96e-b4c33f7c604e</guid><dc:creator>simoiamma</dc:creator><description>&lt;p&gt;So, I really don&amp;#39;t know what could be the problem. I&amp;#39;m having the same issue with the LFXO crystal. Some boards works and other don&amp;#39;t. If I can get them to work I&amp;#39;ll let you know.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/469082?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2024 15:10:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:40cfc8b7-b384-4bff-9095-dc3f8d2aea04</guid><dc:creator>katrindqaws</dc:creator><description>&lt;p&gt;not exatly&lt;/p&gt;
&lt;p&gt;buy it is done in PCBWAY&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/469030?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2024 13:25:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9fd48e4b-a988-427a-8d07-dbc7ebaf9671</guid><dc:creator>simoiamma</dc:creator><description>&lt;p&gt;Do you know the process and at which temperature the board was soldered? Has the board been washed using ultrasonic cleaner?&lt;/p&gt;
&lt;div id="gtx-trans" style="left:487px;position:absolute;top:-20px;"&gt;
&lt;div class="gtx-trans-icon"&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/469000?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2024 11:39:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ed4e410b-c799-4ca5-af06-8d7c9b45605b</guid><dc:creator>katrindqaws</dc:creator><description>&lt;p&gt;i tested another PCB (of this circuit) but does not work&lt;/p&gt;
&lt;p&gt;if crystal is soldered incorrect orientation it should work because XC1 or XC2 is same to each other for rotate.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/468994?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2024 11:23:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b0fd96c0-58f1-4e8e-934c-f4e48b723908</guid><dc:creator>simoiamma</dc:creator><description>&lt;p&gt;I&amp;#39;m not an hardware designer expert, but I don&amp;#39;t see obvious error like too long or overlapping traces. Maybe the crystal is broken or soldered badly or with incorrect orientation, do you have the option of replacing it?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/468964?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2024 09:29:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7f0fc7dc-b404-41ab-9613-a67c1b9394c3</guid><dc:creator>katrindqaws</dc:creator><description>&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1707987224827v1.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/468956?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2024 08:51:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ab19fa75-56e6-4b5e-bf72-8ac8d662abfd</guid><dc:creator>simoiamma</dc:creator><description>&lt;p&gt;I think it may be better to have an image of the routing of the traces of the 32MHz crystal than the schematic.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m also having issue with external crystals, one possible cause could be too much heat transfer when soldering the crystal component.&lt;/p&gt;
&lt;p&gt;Simone&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/468950?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2024 08:44:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b6b3c92d-6e16-4249-8ad4-0fb184892dc7</guid><dc:creator>katrindqaws</dc:creator><description>&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1707986608744v1.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/468949?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2024 08:43:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4ae2c7d6-25b9-45a5-93b2-b173ba8ebcb2</guid><dc:creator>katrindqaws</dc:creator><description>&lt;p&gt;&lt;span id="pastedimage1707986562652v1" class="mceItem mceNonEditable mceInsertMediaItem mceInsertMediaItem mceInsertMediaItemImage" style="color:transparent;height:240px;width:320px;"&gt;...&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/468948?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2024 08:43:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c741ad62-3943-4667-a5f8-da57e0c3e626</guid><dc:creator>katrindqaws</dc:creator><description>&lt;p&gt;this is our circuit&lt;/p&gt;
&lt;p&gt;what is your idea about shematic?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/468941?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2024 08:05:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c6969093-e9ba-4ba2-9398-f56d8ed7d7c5</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;It means that you external oscillator is not starting or giving a stable clock. Yes, sounds more like a hardware related issue with the external clock or the connections to it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/468929?ContentTypeID=1</link><pubDate>Thu, 15 Feb 2024 06:42:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3dca3c29-c187-4ff4-ad92-8da66e8b759d</guid><dc:creator>katrindqaws</dc:creator><description>&lt;p&gt;i add this but the code is &lt;span class="Y2IQFc"&gt;Being stuck in while loop&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="Y2IQFc"&gt;it means the NRF_CLOCK-&amp;gt;EVENTS_HFCLKSTARTED is zero&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="Y2IQFc"&gt;what is the problem?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="Y2IQFc"&gt;hardware side?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/468850?ContentTypeID=1</link><pubDate>Wed, 14 Feb 2024 14:19:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:01b1da99-9ca4-40f1-b92c-24c370f96e96</guid><dc:creator>simoiamma</dc:creator><description>&lt;p&gt;You need to start the HFCLK somewhere before calling bt_enable(), with the code provided in the question I&amp;#39;ve linked in my previous answer, that is:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;	NRF_TIMER1-&amp;gt;BITMODE = TIMER_BITMODE_BITMODE_32Bit &amp;lt;&amp;lt; TIMER_BITMODE_BITMODE_Pos;
	NRF_TIMER1-&amp;gt;TASKS_CLEAR = 1;
	NRF_CLOCK-&amp;gt;EVENTS_HFCLKSTARTED = 0;
	NRF_TIMER1-&amp;gt;TASKS_START = 1;
	NRF_CLOCK-&amp;gt;TASKS_HFCLKSTART = 1;
	while(NRF_CLOCK-&amp;gt;EVENTS_HFCLKSTARTED == 0);
	NRF_TIMER1-&amp;gt;TASKS_CAPTURE[0] = 1;

	printk(&amp;quot;HF Clock has started. Startup time: %d uS\n&amp;quot;, NRF_TIMER1-&amp;gt;CC[0]);&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Simone&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/468457?ContentTypeID=1</link><pubDate>Mon, 12 Feb 2024 15:57:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:02acf80d-7c9e-4ea1-b9d2-72b9d8c3070c</guid><dc:creator>katrindqaws</dc:creator><description>&lt;p&gt;/*&lt;br /&gt;&amp;nbsp;* Copyright (c) 2018 Nordic Semiconductor ASA&lt;br /&gt;&amp;nbsp;*&lt;br /&gt;&amp;nbsp;* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;&lt;br /&gt;#include &amp;lt;zephyr/types.h&amp;gt;&lt;br /&gt;#include &amp;lt;stddef.h&amp;gt;&lt;br /&gt;#include &amp;lt;string.h&amp;gt;&lt;br /&gt;#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;#include &amp;lt;zephyr/sys/printk.h&amp;gt;&lt;br /&gt;#include &amp;lt;zephyr/sys/byteorder.h&amp;gt;&lt;br /&gt;#include &amp;lt;zephyr/kernel.h&amp;gt;&lt;br /&gt;#include &amp;lt;zephyr/drivers/gpio.h&amp;gt;&lt;br /&gt;#include &amp;lt;soc.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;zephyr/bluetooth/bluetooth.h&amp;gt;&lt;br /&gt;#include &amp;lt;zephyr/bluetooth/hci.h&amp;gt;&lt;br /&gt;#include &amp;lt;zephyr/bluetooth/conn.h&amp;gt;&lt;br /&gt;#include &amp;lt;zephyr/bluetooth/uuid.h&amp;gt;&lt;br /&gt;#include &amp;lt;zephyr/bluetooth/gatt.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;bluetooth/services/lbs.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;zephyr/settings/settings.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;dk_buttons_and_leds.h&amp;gt;&lt;br /&gt;#include &amp;lt;helpers/nrfx_reset_reason.h&amp;gt;&lt;br /&gt;#define DEVICE_NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CONFIG_BT_DEVICE_NAME&lt;br /&gt;#define DEVICE_NAME_LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (sizeof(DEVICE_NAME) - 1)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#define RUN_STATUS_LED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DK_LED1&lt;br /&gt;#define CON_STATUS_LED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DK_LED2&lt;br /&gt;#define RUN_LED_BLINK_INTERVAL&amp;nbsp; 1000&lt;br /&gt;&lt;br /&gt;#define USER_LED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DK_LED3&lt;br /&gt;&lt;br /&gt;#define USER_BUTTON&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DK_BTN1_MSK&lt;br /&gt;&lt;br /&gt;static bool app_button_state;&lt;br /&gt;uint32_t reason;&lt;br /&gt;&lt;br /&gt;static const struct bt_data ad[] = {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR)),&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BT_DATA(BT_DATA_NAME_COMPLETE, DEVICE_NAME, DEVICE_NAME_LEN),&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;static const struct bt_data sd[] = {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BT_DATA_BYTES(BT_DATA_UUID128_ALL, BT_UUID_LBS_VAL),&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;static void connected(struct bt_conn *conn, uint8_t err)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (err) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Connection failed (err %u)\n&amp;quot;, err);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Connected\n&amp;quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;dk_set_led_on(CON_STATUS_LED);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static void disconnected(struct bt_conn *conn, uint8_t reason)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Disconnected (reason %u)\n&amp;quot;, reason);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;dk_set_led_off(CON_STATUS_LED);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#ifdef CONFIG_BT_LBS_SECURITY_ENABLED&lt;br /&gt;static void security_changed(struct bt_conn *conn, bt_security_t level,&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enum bt_security_err err)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;char addr[BT_ADDR_LE_STR_LEN];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (!err) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Security changed: %s level %u\n&amp;quot;, addr, level);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;} else {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Security failed: %s level %u err %d\n&amp;quot;, addr, level,&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;err);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;#endif&lt;br /&gt;&lt;br /&gt;BT_CONN_CB_DEFINE(conn_callbacks) = {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;.connected&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = connected,&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;.disconnected&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = disconnected,&lt;br /&gt;#ifdef CONFIG_BT_LBS_SECURITY_ENABLED&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;.security_changed = security_changed,&lt;br /&gt;#endif&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;#if defined(CONFIG_BT_LBS_SECURITY_ENABLED)&lt;br /&gt;static void auth_passkey_display(struct bt_conn *conn, unsigned int passkey)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;char addr[BT_ADDR_LE_STR_LEN];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Passkey for %s: %06u\n&amp;quot;, addr, passkey);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static void auth_cancel(struct bt_conn *conn)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;char addr[BT_ADDR_LE_STR_LEN];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Pairing cancelled: %s\n&amp;quot;, addr);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static void pairing_complete(struct bt_conn *conn, bool bonded)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;char addr[BT_ADDR_LE_STR_LEN];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Pairing completed: %s, bonded: %d\n&amp;quot;, addr, bonded);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static void pairing_failed(struct bt_conn *conn, enum bt_security_err reason)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;char addr[BT_ADDR_LE_STR_LEN];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Pairing failed conn: %s, reason %d\n&amp;quot;, addr, reason);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static struct bt_conn_auth_cb conn_auth_callbacks = {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;.passkey_display = auth_passkey_display,&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;.cancel = auth_cancel,&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;static struct bt_conn_auth_info_cb conn_auth_info_callbacks = {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;.pairing_complete = pairing_complete,&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;.pairing_failed = pairing_failed&lt;br /&gt;};&lt;br /&gt;#else&lt;br /&gt;static struct bt_conn_auth_cb conn_auth_callbacks;&lt;br /&gt;static struct bt_conn_auth_info_cb conn_auth_info_callbacks;&lt;br /&gt;#endif&lt;br /&gt;&lt;br /&gt;static void app_led_cb(bool led_state)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;dk_set_led(USER_LED, led_state);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static bool app_button_cb(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return app_button_state;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static struct bt_lbs_cb lbs_callbacs = {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;.led_cb&amp;nbsp;&amp;nbsp;&amp;nbsp; = app_led_cb,&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;.button_cb = app_button_cb,&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;static void button_changed(uint32_t button_state, uint32_t has_changed)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (has_changed &amp;amp; USER_BUTTON) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t user_button_state = button_state &amp;amp; USER_BUTTON;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;bt_lbs_send_button_state(user_button_state);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;app_button_state = user_button_state ? true : false;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static int init_button(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int err;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;err = dk_buttons_init(button_changed);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (err) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Cannot init buttons (err: %d)\n&amp;quot;, err);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return err;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int blink_status = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int err;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Starting Bluetooth Peripheral LBS example\n&amp;quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;err = dk_leds_init();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (err) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;LEDs init failed (err %d)\n&amp;quot;, err);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;err = init_button();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (err) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Button init failed (err %d)\n&amp;quot;, err);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (IS_ENABLED(CONFIG_BT_LBS_SECURITY_ENABLED)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;err = bt_conn_auth_cb_register(&amp;amp;conn_auth_callbacks);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (err) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Failed to register authorization callbacks.\n&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;err = bt_conn_auth_info_cb_register(&amp;amp;conn_auth_info_callbacks);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (err) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Failed to register authorization info callbacks.\n&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;mpsl_clock_hfclk_latency_set(MPSL_CLOCK_HF_LATENCY_BEST);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;err = bt_enable(NULL);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (err) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Bluetooth init failed (err %d)\n&amp;quot;, err);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Bluetooth initialized\n&amp;quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (IS_ENABLED(CONFIG_SETTINGS)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;settings_load();&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;err = bt_lbs_init(&amp;amp;lbs_callbacs);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (err) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Failed to init LBS (err:%d)\n&amp;quot;, err);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;reason = nrfx_reset_reason_get();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(int i=0; i&amp;lt;5; i++){&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;dk_set_led(DK_LED1, (++blink_status) % 2);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;k_sleep(K_MSEC(500));&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;err = bt_le_adv_start(BT_LE_ADV_CONN, ad, ARRAY_SIZE(ad),sd, ARRAY_SIZE(sd));&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (err) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Advertising failed to start (err %d)\n&amp;quot;, err);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(int i=0; i&amp;lt;5; i++){&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;dk_set_led(DK_LED2, (++blink_status) % 2);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;k_sleep(K_MSEC(500));&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printk(&amp;quot;Advertising successfully started\n&amp;quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (;;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;dk_set_led(DK_LED3, (++blink_status) % 2);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;k_sleep(K_MSEC(RUN_LED_BLINK_INTERVAL));&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/468456?ContentTypeID=1</link><pubDate>Mon, 12 Feb 2024 15:56:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:74efca87-0f4c-4db6-baea-657e885008b5</guid><dc:creator>katrindqaws</dc:creator><description>&lt;p&gt;thank you simoiamma&lt;/p&gt;
&lt;p&gt;I add this line before bt_enable() line&lt;/p&gt;
&lt;p&gt;but the problem has not been solved yet!&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1707753312562v1.png" /&gt;&lt;/p&gt;
&lt;p&gt;my full code is copied from SDK samples:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/** Copyright (c) 2018 Nordic Semiconductor ASA** SPDX-License-Identifier: LicenseRef-Nordic-5-Clause*/#include &amp;lt;zephyr/types.h&amp;gt;#include &amp;lt;stddef.h&amp;gt;#include &amp;lt;string.h&amp;gt;#include &amp;lt;errno.h&amp;gt;#include &amp;lt;zephyr/sys/printk.h&amp;gt;#include &amp;lt;zephyr/sys/byteorder.h&amp;gt;#include &amp;lt;zephyr/kernel.h&amp;gt;#include &amp;lt;zephyr/drivers/gpio.h&amp;gt;#include &amp;lt;soc.h&amp;gt;#include &amp;lt;zephyr/bluetooth/bluetooth.h&amp;gt;#include &amp;lt;zephyr/bluetooth/hci.h&amp;gt;#include &amp;lt;zephyr/bluetooth/conn.h&amp;gt;#include &amp;lt;zephyr/bluetooth/uuid.h&amp;gt;#include &amp;lt;zephyr/bluetooth/gatt.h&amp;gt;#include &amp;lt;bluetooth/services/lbs.h&amp;gt;#include &amp;lt;zephyr/settings/settings.h&amp;gt;#include &amp;lt;dk_buttons_and_leds.h&amp;gt;#include &amp;lt;helpers/nrfx_reset_reason.h&amp;gt;#define DEVICE_NAME             CONFIG_BT_DEVICE_NAME#define DEVICE_NAME_LEN         (sizeof(DEVICE_NAME) - 1)#define RUN_STATUS_LED          DK_LED1#define CON_STATUS_LED          DK_LED2#define RUN_LED_BLINK_INTERVAL  1000#define USER_LED                DK_LED3#define USER_BUTTON             DK_BTN1_MSKstatic bool app_button_state;uint32_t reason;static const struct bt_data ad[] = {BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR)),BT_DATA(BT_DATA_NAME_COMPLETE, DEVICE_NAME, DEVICE_NAME_LEN),};static const struct bt_data sd[] = {BT_DATA_BYTES(BT_DATA_UUID128_ALL, BT_UUID_LBS_VAL),};static void connected(struct bt_conn *conn, uint8_t err){if (err) {printk(&amp;quot;Connection failed (err %u)\n&amp;quot;, err);return;}printk(&amp;quot;Connected\n&amp;quot;);dk_set_led_on(CON_STATUS_LED);}static void disconnected(struct bt_conn *conn, uint8_t reason){printk(&amp;quot;Disconnected (reason %u)\n&amp;quot;, reason);dk_set_led_off(CON_STATUS_LED);}#ifdef CONFIG_BT_LBS_SECURITY_ENABLEDstatic void security_changed(struct bt_conn *conn, bt_security_t level,enum bt_security_err err){char addr[BT_ADDR_LE_STR_LEN];bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));if (!err) {printk(&amp;quot;Security changed: %s level %u\n&amp;quot;, addr, level);} else {printk(&amp;quot;Security failed: %s level %u err %d\n&amp;quot;, addr, level,err);}}#endifBT_CONN_CB_DEFINE(conn_callbacks) = {.connected        = connected,.disconnected     = disconnected,#ifdef CONFIG_BT_LBS_SECURITY_ENABLED.security_changed = security_changed,#endif};#if defined(CONFIG_BT_LBS_SECURITY_ENABLED)static void auth_passkey_display(struct bt_conn *conn, unsigned int passkey){char addr[BT_ADDR_LE_STR_LEN];bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));printk(&amp;quot;Passkey for %s: %06u\n&amp;quot;, addr, passkey);}static void auth_cancel(struct bt_conn *conn){char addr[BT_ADDR_LE_STR_LEN];bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));printk(&amp;quot;Pairing cancelled: %s\n&amp;quot;, addr);}static void pairing_complete(struct bt_conn *conn, bool bonded){char addr[BT_ADDR_LE_STR_LEN];bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));printk(&amp;quot;Pairing completed: %s, bonded: %d\n&amp;quot;, addr, bonded);}static void pairing_failed(struct bt_conn *conn, enum bt_security_err reason){char addr[BT_ADDR_LE_STR_LEN];bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));printk(&amp;quot;Pairing failed conn: %s, reason %d\n&amp;quot;, addr, reason);}static struct bt_conn_auth_cb conn_auth_callbacks = {.passkey_display = auth_passkey_display,.cancel = auth_cancel,};static struct bt_conn_auth_info_cb conn_auth_info_callbacks = {.pairing_complete = pairing_complete,.pairing_failed = pairing_failed};#elsestatic struct bt_conn_auth_cb conn_auth_callbacks;static struct bt_conn_auth_info_cb conn_auth_info_callbacks;#endifstatic void app_led_cb(bool led_state){dk_set_led(USER_LED, led_state);}static bool app_button_cb(void){return app_button_state;}static struct bt_lbs_cb lbs_callbacs = {.led_cb    = app_led_cb,.button_cb = app_button_cb,};static void button_changed(uint32_t button_state, uint32_t has_changed){if (has_changed &amp;amp; USER_BUTTON) {uint32_t user_button_state = button_state &amp;amp; USER_BUTTON;bt_lbs_send_button_state(user_button_state);app_button_state = user_button_state ? true : false;}}static int init_button(void){int err;err = dk_buttons_init(button_changed);if (err) {printk(&amp;quot;Cannot init buttons (err: %d)\n&amp;quot;, err);}return err;}int main(void){int blink_status = 0;int err;printk(&amp;quot;Starting Bluetooth Peripheral LBS example\n&amp;quot;);err = dk_leds_init();if (err) {printk(&amp;quot;LEDs init failed (err %d)\n&amp;quot;, err);return 0;}err = init_button();if (err) {printk(&amp;quot;Button init failed (err %d)\n&amp;quot;, err);return 0;}if (IS_ENABLED(CONFIG_BT_LBS_SECURITY_ENABLED)) {err = bt_conn_auth_cb_register(&amp;amp;conn_auth_callbacks);if (err) {printk(&amp;quot;Failed to register authorization callbacks.\n&amp;quot;);return 0;}err = bt_conn_auth_info_cb_register(&amp;amp;conn_auth_info_callbacks);if (err) {printk(&amp;quot;Failed to register authorization info callbacks.\n&amp;quot;);return 0;}}mpsl_clock_hfclk_latency_set(MPSL_CLOCK_HF_LATENCY_BEST);err = bt_enable(NULL);if (err) {printk(&amp;quot;Bluetooth init failed (err %d)\n&amp;quot;, err);return 0;}printk(&amp;quot;Bluetooth initialized\n&amp;quot;);if (IS_ENABLED(CONFIG_SETTINGS)) {settings_load();}err = bt_lbs_init(&amp;amp;lbs_callbacs);if (err) {printk(&amp;quot;Failed to init LBS (err:%d)\n&amp;quot;, err);return 0;}reason = nrfx_reset_reason_get();for(int i=0; i&amp;lt;5; i++){dk_set_led(DK_LED1, (++blink_status) % 2);k_sleep(K_MSEC(500));}err = bt_le_adv_start(BT_LE_ADV_CONN, ad, ARRAY_SIZE(ad),sd, ARRAY_SIZE(sd));if (err) {printk(&amp;quot;Advertising failed to start (err %d)\n&amp;quot;, err);return 0;}for(int i=0; i&amp;lt;5; i++){dk_set_led(DK_LED2, (++blink_status) % 2);k_sleep(K_MSEC(500));}printk(&amp;quot;Advertising successfully started\n&amp;quot;);for (;;) {dk_set_led(DK_LED3, (++blink_status) % 2);k_sleep(K_MSEC(RUN_LED_BLINK_INTERVAL));}}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/468360?ContentTypeID=1</link><pubDate>Mon, 12 Feb 2024 09:57:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5fe87658-0e6b-4fe5-9fce-1d291c1a5562</guid><dc:creator>simoiamma</dc:creator><description>&lt;p&gt;Hi katrindqawn,&lt;/p&gt;
&lt;p&gt;I had the same problem and it was caused by the high ramp up time delay of the high frequency external crystal.&amp;nbsp;Have a look there:&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/107808/reset-with-hard-fault-after-bluetooth-advertising"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/107808/reset-with-hard-fault-after-bluetooth-advertising&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I solved starting the high frequency cristal before enabling ble subsystem, and also setting &amp;quot;&lt;span&gt;mpsl_clock_hfclk_latency_set&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;MPSL_CLOCK_HF_LATENCY_WORST_CASE&lt;/span&gt;&lt;span&gt;);&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;Hope it helps.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Simone&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nrf52840 soft reset cause</title><link>https://devzone.nordicsemi.com/thread/468352?ContentTypeID=1</link><pubDate>Mon, 12 Feb 2024 09:33:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2a765588-ba4b-4606-8b42-9fe0363fde17</guid><dc:creator>jemalkorra</dc:creator><description>&lt;p&gt;Hi, there is a function you can use to know the reset reason when the aplication reboots.&amp;nbsp;&lt;pre class="ui-code" data-mode="text"&gt;/**@brief Function to read the reason for the last reset. The reason is printed in the console. */
void get_reset_reason(void)
{
	int result = hwinfo_get_reset_cause(&amp;amp;reset_cause);
    if (result == 0) // Success, reset_cause now contains the reset cause flags
	{
        LOG_ERR(&amp;quot;RESET&amp;quot;);

		if (reset_cause &amp;amp; RESET_PIN) LOG_DBG(&amp;quot;Reset cause is: RESET_PIN\n&amp;quot;); // 0
		else if (reset_cause &amp;amp; RESET_SOFTWARE) LOG_DBG(&amp;quot;Reset cause is: RESET_SOFTWARE\n&amp;quot;); // 1
		else if (reset_cause &amp;amp; RESET_BROWNOUT) LOG_DBG(&amp;quot;Reset cause is: RESET_BROWNOUT\n&amp;quot;); // 2
		else if(reset_cause &amp;amp; RESET_POR) LOG_DBG(&amp;quot;Reset cause is: RESET_POR\n&amp;quot;); // 3
		else if(reset_cause &amp;amp; RESET_WATCHDOG) LOG_DBG(&amp;quot;Reset cause is: RESET_WATCHDOG\n&amp;quot;); // 4
		else if(reset_cause &amp;amp; RESET_DEBUG) LOG_DBG(&amp;quot;Reset cause is: RESET_DEBUG\n&amp;quot;); // 5
    	else if(reset_cause &amp;amp; RESET_SECURITY) LOG_DBG(&amp;quot;Reset cause is: RESET_SECURITY\n&amp;quot;); // 6
		else if(reset_cause &amp;amp; RESET_LOW_POWER_WAKE) LOG_DBG(&amp;quot;Reset cause is: RESET_LOW_POWER_WAKE\n&amp;quot;); // 7
		else if(reset_cause &amp;amp; RESET_CPU_LOCKUP) LOG_DBG(&amp;quot;Reset cause is: RESET_CPU_LOCKUP\n&amp;quot;); // 8
		else if(reset_cause &amp;amp; RESET_PARITY) LOG_DBG(&amp;quot;Reset cause is: RESET_PARITY\n&amp;quot;); // 9
		else if(reset_cause &amp;amp; RESET_PLL) LOG_DBG(&amp;quot;Reset cause is: RESET_PLL\n&amp;quot;); // 10
		else if(reset_cause &amp;amp; RESET_CLOCK) LOG_DBG(&amp;quot;Reset cause is: RESET_CLOCK\n&amp;quot;); // 11
		else if(reset_cause &amp;amp; RESET_HARDWARE) LOG_DBG(&amp;quot;Reset cause is: RESET_HARDWARE\n&amp;quot;); // 12
		else if(reset_cause &amp;amp; RESET_USER) LOG_DBG(&amp;quot;Reset cause is: RESET_USER\n&amp;quot;); // 13
		else if (reset_cause &amp;amp; RESET_TEMPERATURE) LOG_DBG(&amp;quot;Reset cause is: RESET_TEMPERATURE\n\n&amp;quot;); // 14
		else LOG_DBG(&amp;quot;\n\n reset cause is: %d\n\n&amp;quot;,reset_cause);

    	hwinfo_clear_reset_cause(); // Clear the hardware flags. In that way we see only the cause of last reset
    } else if (result == -ENOSYS) 
	{
		LOG_ERR(&amp;quot;\n\n there is no implementation for the particular device.\n\n&amp;quot;);
    } else 
	{
		LOG_ERR(&amp;quot;\n\n negative value on driver specific errors\n\n&amp;quot;);
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;In my case the reset reason is&amp;nbsp; RESET_SOFTWARE. But I would like to have more info, how can I get it? I have a zigbee apliocation and I suspect the reset happes after I free the buffer.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;zb_buf_free&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;bufid&lt;/span&gt;&lt;span&gt;); How can i debug this?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>