<?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>Central getting disconnected automatically after few seconds with 0x08 reason.</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/50059/central-getting-disconnected-automatically-after-few-seconds-with-0x08-reason</link><description>Hello, 
 I am using custom nrf52832 PCB as central role. Also i have the peripheral with similar board . Peripheral communication is working properly if connected with the mobile device. 
 Where as the custom board with example code given by SDK V 15</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 25 Jul 2019 12:58:40 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/50059/central-getting-disconnected-automatically-after-few-seconds-with-0x08-reason" /><item><title>RE: Central getting disconnected automatically after few seconds with 0x08 reason.</title><link>https://devzone.nordicsemi.com/thread/200539?ContentTypeID=1</link><pubDate>Thu, 25 Jul 2019 12:58:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:af404292-64ae-4a90-80dd-b6a7d47d734d</guid><dc:creator>ssc</dc:creator><description>&lt;p&gt;No error message is shown . But the Peripheral gets the disconnect event also when i press the button to send the data the communication gets place. I am bit confused why the peripheral is getting the disconnect event ?. and if it is disconnecting then how the data is getting communicated.??? At&amp;nbsp; the time of disconnection the central does not get any disconnect event though.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Central getting disconnected automatically after few seconds with 0x08 reason.</title><link>https://devzone.nordicsemi.com/thread/200479?ContentTypeID=1</link><pubDate>Thu, 25 Jul 2019 10:56:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3120a3af-bd39-477b-bf6c-a4438c5ef992</guid><dc:creator>Vidar Berg</dc:creator><description>[quote userid="67304" url="~/f/nordic-q-a/50059/central-getting-disconnected-automatically-after-few-seconds-with-0x08-reason/200470"]NO. No the error is not shown as i removed the handler function.[/quote]
&lt;p&gt;Ok, what does the error message say now?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Central getting disconnected automatically after few seconds with 0x08 reason.</title><link>https://devzone.nordicsemi.com/thread/200470?ContentTypeID=1</link><pubDate>Thu, 25 Jul 2019 10:26:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:83ab3ce3-17da-4a21-9984-e5fe95a70ff3</guid><dc:creator>ssc</dc:creator><description>[quote userid="4240" url="~/f/nordic-q-a/50059/central-getting-disconnected-automatically-after-few-seconds-with-0x08-reason/200406"]Same error in app_button.c at line 186?[/quote]
&lt;p&gt;NO. No the error is not shown as i removed the handler function.&lt;/p&gt;
[quote userid="4240" url="~/f/nordic-q-a/50059/central-getting-disconnected-automatically-after-few-seconds-with-0x08-reason/200406"]Does it happen on startup, or do you need to do something to trigger it?[/quote]
&lt;p&gt;Yes. After connection event the device goes to NRF_BREAKPOINT_COND .&lt;/p&gt;
&lt;p&gt;Actually , I want to send the predefined&amp;nbsp; data to peripheral after detecting the key press is short or long from a 7*2 matrix keypad. i have done all the BLE stack related configuration as same as Led Button service example. Just the difference in the button handler.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Central getting disconnected automatically after few seconds with 0x08 reason.</title><link>https://devzone.nordicsemi.com/thread/200406?ContentTypeID=1</link><pubDate>Thu, 25 Jul 2019 07:29:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bab14197-8c86-47b4-a3f8-989560e4dc3e</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Same error in app_button.c at line 186? Does it happen on startup, or do you need to do something to trigger it?&lt;/p&gt;
&lt;p&gt;I can&amp;#39;t build your project here since there are several missing dependencies.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Central getting disconnected automatically after few seconds with 0x08 reason.</title><link>https://devzone.nordicsemi.com/thread/200304?ContentTypeID=1</link><pubDate>Wed, 24 Jul 2019 13:58:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a9dc4f43-5ae9-40aa-9315-77a28fed6391</guid><dc:creator>ssc</dc:creator><description>[quote userid="4240" url="~/f/nordic-q-a/50059/central-getting-disconnected-automatically-after-few-seconds-with-0x08-reason/200201"]he error indicates that you&amp;#39;ve called&amp;nbsp;app_button_enable() without configuring any buttons first.&amp;nbsp;&amp;nbsp;[/quote]
&lt;p&gt;yes error was due to the enabling the button without initializing it. But even after removing the function i am getting this error.I have added the C code below:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;
#include &amp;lt;stdint.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;quot;nrf_sdh.h&amp;quot;
#include &amp;quot;nrf_sdh_ble.h&amp;quot;
#include &amp;quot;nrf_sdh_soc.h&amp;quot;
#include &amp;quot;nrf_pwr_mgmt.h&amp;quot;
#include &amp;quot;app_timer.h&amp;quot;
#include &amp;quot;boards.h&amp;quot;
#include &amp;quot;bsp.h&amp;quot;
#include &amp;quot;bsp_btn_ble.h&amp;quot;
#include &amp;quot;ble.h&amp;quot;
#include &amp;quot;ble_hci.h&amp;quot;
#include &amp;quot;ble_advertising.h&amp;quot;
#include &amp;quot;ble_conn_params.h&amp;quot;
#include &amp;quot;ble_db_discovery.h&amp;quot;
#include &amp;quot;ble_lbs_c.h&amp;quot;
#include &amp;quot;nrf_ble_gatt.h&amp;quot;
#include &amp;quot;nrf_ble_scan.h&amp;quot;
#include &amp;quot;nrf_log.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_delay.h&amp;quot;
#include &amp;quot;app_uart.h&amp;quot;
#include &amp;quot;gpio.h&amp;quot;
#include &amp;quot;Timer_Driver.h&amp;quot;
#include &amp;quot;Battery_level.h&amp;quot;

#include &amp;quot;nrf_drv_saadc.h&amp;quot;
#include &amp;quot;nrf_drv_ppi.h&amp;quot;
#include &amp;quot;nrf_drv_timer.h&amp;quot;
#define CENTRAL_SCANNING_LED            BSP_BOARD_LED_0                     /**&amp;lt; Scanning LED will be on when the device is scanning. */
#define CENTRAL_CONNECTED_LED           BSP_BOARD_LED_1                     /**&amp;lt; Connected LED will be on when the device is connected. */
#define LEDBUTTON_LED                   BSP_BOARD_LED_2                     /**&amp;lt; LED to indicate a change of state of the the Button characteristic on the peer. */

#define SCAN_INTERVAL                   0x00A0                              /**&amp;lt; Determines scan interval in units of 0.625 millisecond. */
#define SCAN_WINDOW                     0x0050                              /**&amp;lt; Determines scan window in units of 0.625 millisecond. */
#define SCAN_DURATION                   0x0000                              /**&amp;lt; Timout when scanning. 0x0000 disables timeout. */

#define MIN_CONNECTION_INTERVAL         MSEC_TO_UNITS(7.5, UNIT_1_25_MS)    /**&amp;lt; Determines minimum connection interval in milliseconds. */
#define MAX_CONNECTION_INTERVAL         MSEC_TO_UNITS(30, UNIT_1_25_MS)     /**&amp;lt; Determines maximum connection interval in milliseconds. */
#define SLAVE_LATENCY                   0                                   /**&amp;lt; Determines slave latency in terms of connection events. */
#define SUPERVISION_TIMEOUT             MSEC_TO_UNITS(4000, UNIT_10_MS)     /**&amp;lt; Determines supervision time-out in units of 10 milliseconds. */

#define LEDBUTTON_BUTTON_PIN            BSP_BUTTON_1                        /**&amp;lt; Button that will write to the LED characteristic of the peer */
#define BUTTON_DETECTION_DELAY          APP_TIMER_TICKS(50)                 /**&amp;lt; Delay from a GPIOTE event until a button is reported as pushed (in number of timer ticks). */

#define APP_BLE_CONN_CFG_TAG            1                                   /**&amp;lt; A tag identifying the SoftDevice BLE configuration. */
#define APP_BLE_OBSERVER_PRIO           3                                   /**&amp;lt; Application&amp;#39;s BLE observer priority. You shouldn&amp;#39;t need to modify this value. */

NRF_BLE_SCAN_DEF(m_scan);                                       /**&amp;lt; Scanning module instance. */
BLE_LBS_C_DEF(m_ble_lbs_c);                                     /**&amp;lt; Main structure used by the LBS client module. */
NRF_BLE_GATT_DEF(m_gatt);                                       /**&amp;lt; GATT module instance. */
BLE_DB_DISCOVERY_DEF(m_db_disc);                                /**&amp;lt; DB discovery module instance. */

static char const m_target_periph_name[] = &amp;quot;Unirro&amp;quot;;     /**&amp;lt; Name of the device we try to connect to. This name is searched in the scan report data*/


/**@brief Function to handle asserts in the SoftDevice.
 *
 * @details This function will be called in case of an assert in the SoftDevice.
 *
 * @warning This handler is an example only and does not fit a final product. You need to analyze
 *          how your product is supposed to react in case of Assert.
 * @warning On assert from the SoftDevice, the system can only recover on reset.
 *
 * @param[in] line_num     Line number of the failing ASSERT call.
 * @param[in] p_file_name  File name of the failing ASSERT call.
 */
void assert_nrf_callback(uint16_t line_num, const uint8_t * p_file_name)
{
    app_error_handler(0xDEADBEEF, line_num, p_file_name);
}


/**@brief Function for the LEDs initialization.
 *
 * @details Initializes all LEDs used by the application.
 */
static void leds_init(void)
{
    bsp_board_init(BSP_INIT_LEDS);
}


/**@brief Function to start scanning.
 */
static void scan_start(void)
{
    ret_code_t err_code;

    err_code = nrf_ble_scan_start(&amp;amp;m_scan);
    APP_ERROR_CHECK(err_code);

    bsp_board_leds_off();
    bsp_board_led_on(CENTRAL_SCANNING_LED);
}


/**@brief Handles events coming from the LED Button central module.
 */
static void lbs_c_evt_handler(ble_lbs_c_t * p_lbs_c, ble_lbs_c_evt_t * p_lbs_c_evt)
{
    switch (p_lbs_c_evt-&amp;gt;evt_type)
    {
        case BLE_LBS_C_EVT_DISCOVERY_COMPLETE:
        {
            ret_code_t err_code;

            err_code = ble_lbs_c_handles_assign(&amp;amp;m_ble_lbs_c,
                                                p_lbs_c_evt-&amp;gt;conn_handle,
                                                &amp;amp;p_lbs_c_evt-&amp;gt;params.peer_db);
            NRF_LOG_INFO(&amp;quot;LED Button service discovered on conn_handle 0x%x.&amp;quot;, p_lbs_c_evt-&amp;gt;conn_handle);
            
//            err_code = app_button_enable();
//            APP_ERROR_CHECK(err_code);

            // LED Button service discovered. Enable notification of Button.
            err_code = ble_lbs_c_button_notif_enable(p_lbs_c);
            APP_ERROR_CHECK(err_code);
        } break; // BLE_LBS_C_EVT_DISCOVERY_COMPLETE

        case BLE_LBS_C_EVT_BUTTON_NOTIFICATION:
        {
            NRF_LOG_INFO(&amp;quot;Button state changed on peer to 0x%x.&amp;quot;, p_lbs_c_evt-&amp;gt;params.button.button_state);
            if (p_lbs_c_evt-&amp;gt;params.button.button_state)
            {
                bsp_board_led_on(LEDBUTTON_LED);
            }
            else
            {
                bsp_board_led_off(LEDBUTTON_LED);
            }
        } break; // BLE_LBS_C_EVT_BUTTON_NOTIFICATION

        default:
            // No implementation needed.
            break;
    }
}


/**@brief Function for handling BLE events.
 *
 * @param[in]   p_ble_evt   Bluetooth stack event.
 * @param[in]   p_context   Unused.
 */
static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
{
    ret_code_t err_code;
    
    // For readability.
    ble_gap_evt_t const * p_gap_evt = &amp;amp;p_ble_evt-&amp;gt;evt.gap_evt;

    switch (p_ble_evt-&amp;gt;header.evt_id)
    {
        // Upon connection, check which peripheral has connected (HR or RSC), initiate DB
        // discovery, update LEDs status and resume scanning if necessary. */
        case BLE_GAP_EVT_CONNECTED:
        {
            ble_gap_addr_t addr = p_ble_evt-&amp;gt;evt.gap_evt.params.connected.peer_addr;
          
            NRF_LOG_INFO(&amp;quot;Connected.&amp;quot;);
           
            
            err_code = ble_lbs_c_handles_assign(&amp;amp;m_ble_lbs_c, p_gap_evt-&amp;gt;conn_handle, NULL);
            APP_ERROR_CHECK(err_code);
            err_code = ble_db_discovery_start(&amp;amp;m_db_disc, p_gap_evt-&amp;gt;conn_handle);
            APP_ERROR_CHECK(err_code);

            // Update LEDs status, and check if we should be looking for more
            // peripherals to connect to.
            bsp_board_led_on(CENTRAL_CONNECTED_LED);
            bsp_board_led_off(CENTRAL_SCANNING_LED);
        } break;

        // Upon disconnection, reset the connection handle of the peer which disconnected, update
        // the LEDs status and start scanning again.
        case BLE_GAP_EVT_DISCONNECTED:
        {
            
            NRF_LOG_INFO(&amp;quot;Disconnected.&amp;quot;);
            
            bsp_board_led_off(CENTRAL_CONNECTED_LED);
            scan_start();
        } break;

        case BLE_GAP_EVT_TIMEOUT:
        {
            // We have not specified a timeout for scanning, so only connection attemps can timeout.
            if (p_gap_evt-&amp;gt;params.timeout.src == BLE_GAP_TIMEOUT_SRC_CONN)
            {
            
              
            }
        } break;

        case BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST:
        {
       
            // Accept parameters requested by peer.
            err_code = sd_ble_gap_conn_param_update(p_gap_evt-&amp;gt;conn_handle,
                                        &amp;amp;p_gap_evt-&amp;gt;params.conn_param_update_request.conn_params);
            APP_ERROR_CHECK(err_code);
        } break;

        case BLE_GAP_EVT_PHY_UPDATE_REQUEST:
        {
            NRF_LOG_DEBUG(&amp;quot;PHY update request.&amp;quot;);
            ble_gap_phys_t const phys =
            {
                .rx_phys = BLE_GAP_PHY_AUTO,
                .tx_phys = BLE_GAP_PHY_AUTO,
            };
            err_code = sd_ble_gap_phy_update(p_ble_evt-&amp;gt;evt.gap_evt.conn_handle, &amp;amp;phys);
            APP_ERROR_CHECK(err_code);
        } break;

        case BLE_GATTC_EVT_TIMEOUT:
        {
            // Disconnect on GATT Client timeout event.
            NRF_LOG_DEBUG(&amp;quot;GATT Client Timeout.&amp;quot;);
            err_code = sd_ble_gap_disconnect(p_ble_evt-&amp;gt;evt.gattc_evt.conn_handle,
                                             BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION);
            APP_ERROR_CHECK(err_code);
        } break;

        case BLE_GATTS_EVT_TIMEOUT:
        {
        
            // Disconnect on GATT Server timeout event.
            NRF_LOG_DEBUG(&amp;quot;GATT Server Timeout.&amp;quot;);
            err_code = sd_ble_gap_disconnect(p_ble_evt-&amp;gt;evt.gatts_evt.conn_handle,
                                             BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION);
            APP_ERROR_CHECK(err_code);
        } break;

        default:
            // No implementation needed.
        break;
    }
}


/**@brief LED Button client initialization.
 */
static void lbs_c_init(void)
{
    ret_code_t       err_code;
    ble_lbs_c_init_t lbs_c_init_obj;

    lbs_c_init_obj.evt_handler = lbs_c_evt_handler;

    err_code = ble_lbs_c_init(&amp;amp;m_ble_lbs_c, &amp;amp;lbs_c_init_obj);
    APP_ERROR_CHECK(err_code);
}


/**@brief Function for initializing the BLE stack.
 *
 * @details Initializes the SoftDevice and the BLE event interrupts.
 */
static void ble_stack_init(void)
{
    ret_code_t err_code;

    err_code = nrf_sdh_enable_request();
    APP_ERROR_CHECK(err_code);
    // Configure the BLE stack using the default settings.
    // Fetch the start address of the application RAM.
    uint32_t ram_start = 0;
    err_code = nrf_sdh_ble_default_cfg_set(APP_BLE_CONN_CFG_TAG, &amp;amp;ram_start);
    APP_ERROR_CHECK(err_code);
    // Enable BLE stack.
    err_code = nrf_sdh_ble_enable(&amp;amp;ram_start);
    APP_ERROR_CHECK(err_code);

    // Register a handler for BLE events.
    NRF_SDH_BLE_OBSERVER(m_ble_observer, APP_BLE_OBSERVER_PRIO, ble_evt_handler, NULL);
}



/**@brief Function for handling events from the button handler module.
 *
 * @param[in] pin_no        The pin that the event applies to.
 * @param[in] button_action The button action (press/release).
 */
static void button_event_handler(uint8_t pin_no, uint8_t button_action)
{
    ret_code_t err_code;

    switch (pin_no)
    {
        case LEDBUTTON_BUTTON_PIN:
            err_code = ble_lbs_led_status_send(&amp;amp;m_ble_lbs_c, button_action);
            NRF_LOG_INFO(&amp;quot;LBS write LED state %d&amp;quot;, button_action);
            if (err_code != NRF_SUCCESS &amp;amp;&amp;amp;
                err_code != BLE_ERROR_INVALID_CONN_HANDLE &amp;amp;&amp;amp;
                err_code != NRF_ERROR_INVALID_STATE)
            {
                APP_ERROR_CHECK(err_code);
            }
            if (err_code == NRF_SUCCESS)
            {
                NRF_LOG_INFO(&amp;quot;LBS write LED state %d&amp;quot;, button_action);
            }
            break;

        default:
            APP_ERROR_HANDLER(pin_no);
            break;
    }
}

/**@brief Function for handling Scaning events.
 *
 * @param[in]   p_scan_evt   Scanning event.
 */
static void scan_evt_handler(scan_evt_t const * p_scan_evt)
{
    ret_code_t err_code;

    switch(p_scan_evt-&amp;gt;scan_evt_id)
    {
        case NRF_BLE_SCAN_EVT_CONNECTING_ERROR:
            err_code = p_scan_evt-&amp;gt;params.connecting_err.err_code;
            APP_ERROR_CHECK(err_code);
            break;
        default:
          break;
    }
}



/**@brief Function for initializing the button handler module.
 */
static void buttons_init(void)
{
    ret_code_t err_code;

    //The array must be static because a pointer to it will be saved in the button handler module.
    static app_button_cfg_t buttons[] =
    {
        {LEDBUTTON_BUTTON_PIN, false, BUTTON_PULL, button_event_handler}
    };

    err_code = app_button_init(buttons, ARRAY_SIZE(buttons),
                               BUTTON_DETECTION_DELAY);
    APP_ERROR_CHECK(err_code);
}


/**@brief Function for handling database discovery events.
 *
 * @details This function is callback function to handle events from the database discovery module.
 *          Depending on the UUIDs that are discovered, this function should forward the events
 *          to their respective services.
 *
 * @param[in] p_event  Pointer to the database discovery event.
 */
static void db_disc_handler(ble_db_discovery_evt_t * p_evt)
{
    ble_lbs_on_db_disc_evt(&amp;amp;m_ble_lbs_c, p_evt);
}


/**@brief Database discovery initialization.
 */
static void db_discovery_init(void)
{
    ret_code_t err_code = ble_db_discovery_init(db_disc_handler);
    APP_ERROR_CHECK(err_code);
}


/**@brief Function for initializing the log.
 */
static void log_init(void)
{
    ret_code_t err_code = NRF_LOG_INIT(NULL);
    APP_ERROR_CHECK(err_code);

    NRF_LOG_DEFAULT_BACKENDS_INIT();
}


/**@brief Function for initializing the timer.
 */
static void timer_init(void)
{
    ret_code_t err_code = app_timer_init();
    APP_ERROR_CHECK(err_code);
}


/**@brief Function for initializing the Power manager. */
static void power_management_init(void)
{
    ret_code_t err_code;
    err_code = nrf_pwr_mgmt_init();
    APP_ERROR_CHECK(err_code);
}


static void scan_init(void)
{
    ret_code_t          err_code;
    nrf_ble_scan_init_t init_scan;

    memset(&amp;amp;init_scan, 0, sizeof(init_scan));

    init_scan.connect_if_match = true;
    init_scan.conn_cfg_tag     = APP_BLE_CONN_CFG_TAG;

    err_code = nrf_ble_scan_init(&amp;amp;m_scan, &amp;amp;init_scan, scan_evt_handler);
    APP_ERROR_CHECK(err_code);

    // Setting filters for scanning.
    err_code = nrf_ble_scan_filters_enable(&amp;amp;m_scan, NRF_BLE_SCAN_NAME_FILTER, false);
    APP_ERROR_CHECK(err_code);

    err_code = nrf_ble_scan_filter_set(&amp;amp;m_scan, SCAN_NAME_FILTER, m_target_periph_name);
    APP_ERROR_CHECK(err_code);
}


/**@brief Function for initializing the GATT module.
 */
static void gatt_init(void)
{
    ret_code_t err_code = nrf_ble_gatt_init(&amp;amp;m_gatt, NULL);
    APP_ERROR_CHECK(err_code);
}


/**@brief Function for handling the idle state (main loop).
 *
 * @details Handle any pending log operation(s), then sleep until the next event occurs.
 */
static void idle_state_handle(void)
{
//    NRF_LOG_FLUSH();
    nrf_pwr_mgmt_run();
}
void key_test_function()
{
ret_code_t err_code;
    switch(key_number)
      {
      case 1:
      key_number=0;
      break;
      case 0x02:
      key_number=0;
      break;
      case 3:
      key_number=0;
      break;
      case 4:
      key_number=0;
      break;
      case 5:
      key_number=0;
      break;
      case 6:
      key_number=0;
      break;
      case 7:
      key_number=0;
      break;
      case 8:
      key_number=0;
      break;
      case 9:
      key_number=0;
      break;
      case 10:
      key_number=0;
      break;
      case 11:
      key_number=0;
      break;
      case 12:
      key_number=0;
      break;
      case 13:
      key_number=0;
      break;
      case 14:
      key_number=0;
      break;
      case 0x82:
      key_number=0;
      break;
      case 15:
      key_number=0;
      break;

      }
}

int main(void)
{
    int test=0;
    float battery;
    gpio_triggerpin=0;
    gb_page_sel_key_count=0;
    key_pressed=0;
    key_number=0;
    gb_key_time_count=0;
    log_init();
    
    saadc_init();
    saadc_sampling_event_init();
    saadc_sampling_event_enable();
    gpio_init();
    leds_init();
    timer_init();

    ble_stack_init();
    scan_init();
    gatt_init();
    db_discovery_init();
    lbs_c_init();


    

    // Start execution.
    NRF_LOG_INFO(&amp;quot;Blinky CENTRAL example started\n&amp;quot;);
    scan_start();
    
    for(;;)//while(1)
    {
      Key_Detect();
      key_test_function();
      idle_state_handle();
    }
}


&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Central getting disconnected automatically after few seconds with 0x08 reason.</title><link>https://devzone.nordicsemi.com/thread/200202?ContentTypeID=1</link><pubDate>Wed, 24 Jul 2019 07:41:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:838be7d4-110f-4b70-bfc8-073c52078070</guid><dc:creator>awneil</dc:creator><description>[quote userid="4240" url="~/f/nordic-q-a/50059/central-getting-disconnected-automatically-after-few-seconds-with-0x08-reason/200201"]Would be helpful to see your code for this[/quote]
&lt;p&gt;Indeed.&lt;/p&gt;
&lt;p&gt;How to properly post source code:&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/6201._5F00_Insert-Code-_2D00_-Nordic.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;also use the same technique for posting logs - just leave the &amp;#39;Language&amp;#39; as &amp;#39;Text&amp;#39; (instead of changing to &amp;#39;C&amp;#39;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Central getting disconnected automatically after few seconds with 0x08 reason.</title><link>https://devzone.nordicsemi.com/thread/200201?ContentTypeID=1</link><pubDate>Wed, 24 Jul 2019 07:33:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c603829f-f65e-4c8c-b66f-74c41e163d8a</guid><dc:creator>Vidar Berg</dc:creator><description>[quote user="Sarika"]I am using external crystal on my board. Do i need to set any thing else.[/quote]
&lt;p&gt;&amp;nbsp;No, I think it&amp;#39;s probably unrelated to clock drift since you are using a crystal.&amp;nbsp;&lt;/p&gt;
[quote user="Sarika"]path&amp;gt;\components\libraries\button\app_button.c:186&amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;&lt;br /&gt;PC at: 0x0002DA9F&amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;&lt;br /&gt;&amp;lt;error&amp;gt; app: End of error report&amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;[/quote]
&lt;p&gt;&amp;nbsp;Would be helpful to see your code for this. The error indicates that you&amp;#39;ve called&amp;nbsp;app_button_enable() without configuring any buttons first.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Central getting disconnected automatically after few seconds with 0x08 reason.</title><link>https://devzone.nordicsemi.com/thread/200073?ContentTypeID=1</link><pubDate>Tue, 23 Jul 2019 13:13:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:92f9db40-10b1-47a7-b6ee-8b8f33c03dc3</guid><dc:creator>ssc</dc:creator><description>&lt;p&gt;I have done debugging on code.Got following errors:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;lt;info&amp;gt; app: LED Button service discovered on conn_handle 0x0.&amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;&lt;br /&gt;&amp;lt;error&amp;gt; app: Fatal error&amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;&lt;br /&gt;&amp;lt;error&amp;gt; app: ERROR 3735928559 [Unknown error code] at &amp;lt;the project path&amp;gt;\components\libraries\button\app_button.c:186&amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;&lt;br /&gt;PC at: 0x0002DA9F&amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;&lt;br /&gt;&amp;lt;error&amp;gt; app: End of error report&amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;&lt;/p&gt;
&lt;p&gt;can you please suggest what should i do?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Central getting disconnected automatically after few seconds with 0x08 reason.</title><link>https://devzone.nordicsemi.com/thread/199827?ContentTypeID=1</link><pubDate>Mon, 22 Jul 2019 13:47:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4ee91a7c-31a4-447b-bec8-6ee3aba6851f</guid><dc:creator>ssc</dc:creator><description>&lt;p&gt;Hello Vidar,&lt;/p&gt;
&lt;p&gt;I am using external crystal on my board. Do i need to set any thing else.&lt;/p&gt;
&lt;p&gt;Thanks and regards.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Central getting disconnected automatically after few seconds with 0x08 reason.</title><link>https://devzone.nordicsemi.com/thread/199776?ContentTypeID=1</link><pubDate>Mon, 22 Jul 2019 12:15:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:af2be7b6-7b9b-47ed-9e23-5ca5c378522e</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;This could be a symptom of clock drift. Do you have an external 32KHz crystal on your custom board, or are you using the internal RC oscillator for the &amp;#39;slow clock&amp;#39;? If you use the internal RC oscillator you need to set the clock accuracy&amp;nbsp;to 500 ppm when you enable the Softdevice.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>