4 Replies Latest reply on Jan 8, 2020 12:34 AM by PICH_4397076

    CYW20706 - Congest on Notification

    PICH_4397076

      Dear all,,,

       

      1. We are testing the following two cases (A & B) with CYW20706.

       

      A. CYW20706 (BLE) and phone (BLE) connection,

           CYW20706 (BT) and phone (BT) connection,
           CYW20706 (BT) A2DP Sink is sent,
           In case of sending voice (mSBC, 16KHz) data as notification by phone (BLE)

       

      B. CYW20706 (BLE) and set top box (BLE) connection,
           CYW20706 (BT) and set top box (BT) connection,
           CYW20706 (BT) A2DP Sink is sent,
           In case of sending voice (mSBC, 16KHz) data as notification by phone (BLE)

       

      2. The following problem occurs when proceeding with A and B cases above.

       

      -. If you check the return value after executing the wiced_bt_gatt_send_notification () function

      (hci_control_le_notification_handler function),

      WICED_BT_GATT_CONGESTED [0x8F] and WICED_BT_GATT_INTERNAL_ERROR [0x81] was happened.

       

      -. To find a solution,

       

      -. After running wiced_bt_gatt_send_notification (),

      Checked if the return value is WICED_BT_GATT_CONGESTED [0x8F] and WICED_BT_GATT_INTERNAL_ERROR [0x81]).

      on GATT_CONGEST_EVT

       

      -. Implement a method to stop transmission when the event is issued and send again when the status is clear.

       

      -. In the case of a phone receiving notification data, it is recovered and transmitted, but in the case of the set top box (bluez) that is currently in progress, it is not recovered and rejects the transmission.

       

      3. I have 4 questions below.

       

      A. Is there a setting related to notification such as ** _ bt_cfg.c to prevent the WICED BT GATT CONGESTED = 0x8f status?

       

      B. Is there anything in CYW20706 that requires further action when the GATT_CONGEST_EVT event occurs?

      In the case of set top box (bluez), especially, can not be solved, What should I check and ask for the set-top vendor I'm testing with?

       

      C. What is causing the event (GATT_CONGEST_EVT)? Please explain.

       

      D. Please let me know if you have any examples to solve our problem!

       

      Thanks,

        • 1. Re: CYW20706 - Congest on Notification
          SheetalJ_96

          Hi PICH_4397076,

           

          GATT CONGESTION EVENT might occur because application is running low in TX buffers. Changing the size of the buffer pools is one of the solution for this.

          Once GATT congestion occurs, all GATT APIs are going to fail until the buffers clear and you should not try re-sending a notification/indication/response until you receive a second GATT_CONGESTED_EVT indicating that there are now available buffers. GATT_CONGESTION_EVT is caught in the GATT management callback.

          1 of 1 people found this helpful
          • 2. Re: CYW20706 - Congest on Notification
            PICH_4397076

            Dear All,,,

             

            How do I make my buffer-pools large?

            I don't know how to change it.

            Specifically, let me know how you can change it as code example!!!

             

            Thanks,

             

            • 3. Re: CYW20706 - Congest on Notification
              SheetalJ_96

              In wiced_bt_cfg.c file, can you try increasing the large buffer pools? Like

              const wiced_bt_cfg_buf_pool_t wiced_bt_cfg_buf_pools[WICED_BT_CFG_NUM_BUF_POOLS] =

              {

              /* { buf_size, buf_count } */

                { 64, 4 }, /* Small Buffer Pool */

                { 360, 4 }, /* Medium Buffer Pool (used for HCI & RFCOMM control messages, min recommended size is 360) */

                { 560, 8 }, /* Large Buffer Pool (used for HCI ACL messages) * // try putting buf_count as 10 also

                { 1056, 0 }, /* Extra Large Buffer Pool - Used for avdt media packets and miscellaneous (if not needed, set buf_count to 0) */

              };

              • 4. Re: CYW20706 - Congest on Notification
                PICH_4397076

                Dear All,,,

                 

                I have applied the two methods you have given below, but have not solved the problem yet.

                 

                -. Implement a method to stop transmission when the congest event is issued and send again when the status is clear.

                -. Increasing buffer pools size.

                 

                The key point of our problem is below.

                As you know, the CYW20706 device is a BT / BLE Dual Mode chipset.

                 

                After connecting BLE only, when sending VOICE DATA(16KHz) to Notification remotely, 
                no congest event occurs, and no omission occurs when the remote device receives the data.
                 
                However, after connecting to BT first, receiving sound source data(44.1KHz or 48KHz) to A2DP remotely 
                and at the same time, when BLE is connected and sending VOICE DATA(16KHz) to remote as notification, 
                a congest event occurs and omission occurs when the remote device receives the data.
                 
                Please let me know again how to solve this problem.
                 
                Thanks,