This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PeripheralObserver with CC2540DK and CC2541EM

Guru 16800 points
Other Parts Discussed in Thread: BLE-STACK, CC2541

Hello,

I want to build PeripheralObserver with CC2540DK and CC2541EM.

When the connection is not built to the Android phone in the peripheral mode, the scanning works fine in the observer mode.
However, when the connection is built to the Android phone in the peripheral mode, the scanning does not work fine in the observer mode.

Why does the behavior happen?

I consult the following URL description and the sample code to build PeripheralObserver.
http://processors.wiki.ti.com/index.php/SimpleBLE_ComboRoles

And I'm using BLE-STACK v1.4.0 (http://www.ti.com/tool/ble-stack).

Best Regards.

Nomoto

  • Hello,

    So once you are connected, you stay connected but you do not see any advertisers?  

    BR,

    -Greg

  • Hello Greg-san,

    Once the peripheral is connected, the peripheral stays connected and the device wants to see advertising; because, the peripheral device also works as observer.
    I use CC22540 and CC2541 as PeripheralObserver.
    However, when the peripheral stays connected, the observer's scanning performance is very low.

    Best Regards.

    Nomoto

  • Hello,

    If you are not getting as many advertisements as expected, then you may not have enough time for scheduler to schedule scanning in between connection intervals. What connection interval are you using?  Is there any processing going on. What are scan interval, window, and duration. If this is straight code from wiki without modification then I can take a look at that.

     Also, try calling in init function

     VOID HCI_EXT_HaltDuringRfCmd( HCI_EXT_HALT_DURING_RF_DISABLE );

    maybe build for speed compile optimization.

    Set scan window = scan interval.

    BR,

    Greg

  • I do have similiar problem. I connect Iphone to peripheralobserver, and the peripheralobserver will discovery the peripheral's advertise data.

    In my case: The peripheral is advertising 1 every second. Peripheralobserver scanning windows is 4 second, whilelist On.

    Result:

    1. when peripheralobserver is not connected to iphone, peripheralobserver can easily scan the data.

    2. but when Iphone is connected, peripheralobserver scanning become hardly to scan a data. (may take up to 1 minute to detect 1 advertise data from peripheral)

     


  • Hello,

    Thank you for your reply.
    I tried the suggested work around, however the observer's scanning performance is not improved.

    scan interval = 1 second
    scan window   = 1 second

    I think the hardware is worked properly; because, the observer's scanning performance is good when the peripheral doesn't connect any devices.
    So, I think that the matter is in software (e.g. OSAL scheduling).

    Do you have any idea?

    Best Regards.

    Nomoto