Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

nRf52833-DK doesn't start up with coin cell battery when running ble_app_uart example.

Dear,

we have a problem at the startup for our nRF52833-DK board powered with coin cell battery. nRf52833-DK doesn't start up with coin cell battery when running ble_app_uart example.

but nRf52833-DK start up with coin cell battery when running other example. ex) ble_app_blinky

how can we fix this problem?

Best Regards

Parents
  • Hello,

    My guess is that since you are using the battery, and not a USB cable, then the programmer on the DK is no longer powered. This is usually fine, but the ble_app_uart example is using the UART peripheral. The default UART pins (P0.06 and P0.08) are connected to the programmer on the DK, and this will pull up or down (don't remember from the top of my head) the RX pin. When it is not powered, it will  be left floating.

    Now, when the UART RX pin is left floating (disconnected) it will sometime trigger the interrupts (pulled up and down) by surrounding noise. This will trigger the UART to start interpreting the "incoming byte". When it isn't able to make sense of the incoming byte, it will give a callback event in main.c, uart_event_handle(). The event is the APP_UART_COMMUNICATION_ERROR, which will trigger the APP_ERROR_HANDLER();, which basically will reset the device. 

    So what you are seeing is probably that it is stuck in a reset loop before it ever gets the chance to start advertising. 

    Try to either connect the UART pins to a physical UART device, or comment out uart_init() in the application. Alternatively, you can comment out the middle line here:

            case APP_UART_COMMUNICATION_ERROR:
                //APP_ERROR_HANDLER(p_event->data.error_communication);
                break;

    But in that case, you will have a UART that is running, consuming power, but if it is not connected to anything, it will not do anything useful either, so it is better to comment out uart_init().

    I will be out of office for a couple of weeks from tomorrow, so if you have any follow up questions, it is probably better to create a new ticket. You can link to this one for background information.

    Best regards,

    Edvin

Reply
  • Hello,

    My guess is that since you are using the battery, and not a USB cable, then the programmer on the DK is no longer powered. This is usually fine, but the ble_app_uart example is using the UART peripheral. The default UART pins (P0.06 and P0.08) are connected to the programmer on the DK, and this will pull up or down (don't remember from the top of my head) the RX pin. When it is not powered, it will  be left floating.

    Now, when the UART RX pin is left floating (disconnected) it will sometime trigger the interrupts (pulled up and down) by surrounding noise. This will trigger the UART to start interpreting the "incoming byte". When it isn't able to make sense of the incoming byte, it will give a callback event in main.c, uart_event_handle(). The event is the APP_UART_COMMUNICATION_ERROR, which will trigger the APP_ERROR_HANDLER();, which basically will reset the device. 

    So what you are seeing is probably that it is stuck in a reset loop before it ever gets the chance to start advertising. 

    Try to either connect the UART pins to a physical UART device, or comment out uart_init() in the application. Alternatively, you can comment out the middle line here:

            case APP_UART_COMMUNICATION_ERROR:
                //APP_ERROR_HANDLER(p_event->data.error_communication);
                break;

    But in that case, you will have a UART that is running, consuming power, but if it is not connected to anything, it will not do anything useful either, so it is better to comment out uart_init().

    I will be out of office for a couple of weeks from tomorrow, so if you have any follow up questions, it is probably better to create a new ticket. You can link to this one for background information.

    Best regards,

    Edvin

Children
No Data
Related