This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Multilink central scan problem

Hi,

I am using the nRF51-DK board as a central running with ble_app_multilink_central_s130_pca10028 sample application. I am using SDK version 9.0 with Keil 5.14 version. I have third party peripheral devices like Estimote, Sensor Tag. With the central device, I am not able to scan these peripheral devices. Can you please help me to scan these devices with the central board ?

  • Hi Akshat,

    How did you test that ? Note that the multilink_central example only connect to and print out log when the device that has the short or complete name matches target.

    What you should do is to print out the advertising data you receive when BLE_GAP_EVT_ADV_REPORT occurs.

    Make sure you are scanning without any whitelist (selective scanning)

  • Hi Hung,

    thanks for your response. I have already changed the TARGET_DEV_NAME to the peripheral device name. But the peripheral device is only advertising the BLE_GAP_AD_TYPE_FLAGS type, I just want to know how to scan primary services like Generic Access, Generic Attribute, Device Information and their properties. Is there any simple BLE scanner example for reference ?

  • @akshat: when scanning, the scanner can only read what's in the advertising packet and the address of the advertiser. So if the advertiser doesn't transmit anything else in the advertising packet, you have to find the address and do the filter on the address before you connect. After you have connected you can do service discovery and look for more information in the Att table, such as GAP, GATT, Device information etc.

  • Hi Hung,

    Thanks. I am able to read the characteristics and descriptors of a custom uuid. Now I want to discover all the services of peripheral device with multilink central. what should I need to do for this ? And also how to discover a peripheral device with a different base UUID. I have added the other UUID in : sd_ble_uuid_vs_add(&base_uuid, &m_base_uuid_type); but it is not working, I am getting an error : BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND , what should i have to do ?

  • The current ble_db_discovery.c module doesn't support generic discovery of the att table. You would need to register which service you want to discover in advance. So the 128 bit UUID should be known. If you want to do generic discovery, you can base on what we do now, and implement the mechanism to follow every service to discover all the characteristic of each service.

    Calling sd_ble_uuid_vs_add() should not return BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND please double check.

Related