LLPM questions

Dear Nordic engineers

I ask a question about LLPM some time ago and I accidentally closed the discussion.Now there is a new follow up.

devzone.nordicsemi.com/.../llpm-questions

1、This issues has a FAE is working on it.We intercepted the packet and found that communication packet in the air is normal.This problem is because the callback function is not entered.Please give me some  good suggestions for this problem.  

2、Because this issues was only discovered during their internal testing, and there are no related complaints about products currently on the market, we suspect it is a problem with the test computer.Can be put on hold for now.

Now they have some new questions and need your help.

1、How to modify the connection interval of LLPM?We try to use function call set_conn_params in ble_conn_params.c to increase the connection interval  when received USB_DC_SUSPEND event.This is correct.When LLPM mode is enabled,the connection interval parameter ranges from 1000us to 7000us.Now we hope that the power consumption can be lower,so we would like to set the connection interval to be larger,but if modify the larger parameter ,it will not take effect.Is there any other way to modify the connection interval?

2、The LLPM mode communicates with the dongle.When there is a lot of communicates data,the event queue will overflow,causing the connection to be disconnected.Please tell me,how to increase the size of the event queue?

Thank you for your support and best regards~

  • Dear Kenneth

    Yesterday,I went to customers office.Now I understand why they need to modify the connection interval of LLPM.

    1、After the computer goes to sleep, if the connection interval is still 1ms, the power consumption of the computer will be particularly high, which does not meet the specification.So they want to modify the connection interval to 7ms, but after modifying it to 7ms, there will be a timeout and disconnection. This problem has not been resolved.

    So I have an idea: Is it possible to change the connection mode of dongle and keyboard from LLPM mode to BLE mode after the computer goes to sleep, because the power consumption of BLE mode will be lower, and then switch from BLE mode to LLPM after the computer wakes up mode, which solves their troubles. Do you think this will work? And how do I go about switching these two modes, by the relevant examples?

    2、Finally, they also asked about the problem of abnormal CAP and NUM indicators, is there any new update?

    Best regards.

  • Regarding 1) We don't have any example, but I can see they are trying to use ble_conn_params.c to set connection parameters, and they try to add a custom connection parameter update relying on USB state events (suspend and resume). This seems like a good approach. I have created an internal jira to look into this for future (DESK-1119).

    Regarding 2) No update from the internal jira (NCSDK-13208), it may be related to the zephyr Bluetooth host, so you may ask them to try to update to latest NCS release and see if they experience the same.

    Best regards,
    Kenneth

  • Dear Kenneth

    1. That is to say, my idea is feasible, allowing them to switch between the two modes in the USB event. So I would like to know how to switch between these two modes, or just need to update the connection interval. They tried updating a longer connection interval, which works to switch from LLPM mode to BLE mode, but switching from BLE mode to LLPM mode fails. Please give me some good advice.

    2. I would suggest that they use NCS1.9.1 for testing.

    Best regards.

  • 1) If it works switching from LLPM->BLE, but fails to switch from BLE->LLPM then ask them to check if they have done this in two steps as written in the Limitations:
    https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrfxlib/softdevice_controller/limitations.html# 

    "DRGN-11297: Maximum connection interval of 10 ms before entering LLPM-mode
    The maximum connection interval that can be active when switching to a connection interval of 1 ms is 10 ms.

    Workaround: An application that use a higher interval than 10 ms must perform two connection updates to use 1 ms connection interval:

    A first update to 10 ms connection interval.

    A second update to 1 ms connection interval."

    Best regards,
    Kenneth

  • Dear Kenneth

    We update the connection interval twice according to the method you said,and switch from BLE mode to LLPM mode,the following error will occur:

           static void update_peer_conn_params(const struct connected_peer *peer) -->
           LOG_WRN("Cannot update conn parameters for peer %p (err:%d)",
    error code is 5
    The following is the code,please heip me and give me some advice.Help us to see the code,why this error is happing.
     
    Best regard.

      

Related