nRF5 SDK is not maintained anymore
More Info: Consider nRF Connect SDK for new designs

BLE disconnected while using virtual UART and HW_UART

Hello,

In my project i am using nrf52840 and i have change the default UART pins to P1.3 (TX) and P1.4(RX) and while using virtual UART like BLE UART  i mean in the sense sending data from the APP TO MCU and vice versa here at the same time if  i am trying to use the HW_UART BLE gets disconnected.

1. why its happening like this.??

2. Please suggest me to resolve this.

thank you.

Parents
  • Hi,

    It is not possible to guess the disconnect reasons based on your information.

    • It would be nice to get the disconnect reason. Based on that you can see which side of the connection initiated a disconnect and why. If it is a supervision time out disconnect then you can debug to see which device did not respond in the connection.
    • check to see if there are any app_error_check faults in your application.

  • Hello,

    thanks for the reply, i will explain the whole application then it will be easy for me to give a debug information so the actual application is i want to control the stepper motor with nrf52840 over BLE like sending some commands over BLE to MCU  and receiving the data's from the MCU this is only over a BLE the another way of communication is sending data over HW_UART like using RS232 which is connected to the MCU  and sensor board. when sensor board sending a data over RS232 to MCU it should accept the data and receive the data.

    so overall the virtual UART communication(BLE UART) as well as HW_UART (RS232) communication should happen at a time without any BLE disconnection and its working fine for some time and some time BLE gets disconnected.

    thank you.

  • Hi,

    It will still be nice to get a sniffer trace and/or disconnect reason to see why BLE is getting disconnected. BLE can get disconnected due to many reasons and the reason is given in the disconnect event to the application.

    Assuming that you are using nRF5SDK with a softdevice, the disconnect reason can be extracted from the event to the application like below

    static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
    {
       ...
       ...
            case BLE_GAP_EVT_DISCONNECTED:
            {
                NRF_LOG_INFO("Disconnected, reason 0x%x.",
                             p_gap_evt->params.disconnected.reason);
                             
    ...
    ...

Reply
  • Hi,

    It will still be nice to get a sniffer trace and/or disconnect reason to see why BLE is getting disconnected. BLE can get disconnected due to many reasons and the reason is given in the disconnect event to the application.

    Assuming that you are using nRF5SDK with a softdevice, the disconnect reason can be extracted from the event to the application like below

    static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
    {
       ...
       ...
            case BLE_GAP_EVT_DISCONNECTED:
            {
                NRF_LOG_INFO("Disconnected, reason 0x%x.",
                             p_gap_evt->params.disconnected.reason);
                             
    ...
    ...

Children
Related