This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

nRF51DK ble_app_multilink_central not working

Hi,

I just started developing with nRF51DK, tested some working examples to figure the basic things out (Blinky, UART, etc).

I can't figure out how to make the multilink example to work. I have a TI BLE that I use as peripheral.

My ultimate goal is to detect when this particular device is in range and the signal is at a defined value [for example to act like a proximity peripheral] (so some hints are welcomed, besides my main problem). So if you can point me where to get this values, it would be great (I don't need to connect to the peripheral to get this values, I need to get them as nRF Master Control panel displays it without connecting to the device).

So far I managed to do the following:

I uploaded S120 softdevice using nRFgo, and get the code to work on the board. I also included the Segger RTT for debugging purposes.

To understand what is happening I did put a print in every function with the name of it.

So at first I started the nRF51DK without powering on the TI BLE, and I have the following output:

image description

After powering on the TI BLE, the following events occur:

image description

There are some repeating steps:

  1. ble_evt_dispatch
  2. client_handling_ble_evt_handler
  3. client_find
  4. on_ble_evt
  5. adv_report_parse
  6. adv_report_parse

The extra output is to determine possible causes for my problem:

  1. For client_find it goes on the return MAX_CLIENTS case, as it can't find any m_client that has that conn_handle;
  2. In adv_report_parse called by on_ble_evt (twice), in both cases it returns NRF_ERROR_NOT_FOUND (5) because the field_type doesn't match (see output: 1 (BLE_GAP_AD_TYPE_FLAGS) and 6 (BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_MORE_AVAILABLE) instead of 9 (BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME) or 8 (BLE_GAP_AD_TYPE_SHORT_LOCAL_NAME)).
  3. The cycle repeats;

I also did changed MULTILINK_PERIPHERAL_BASE_UUID, MULTILINK_PERIPHERAL_SERVICE_UUID, MULTILINK_PERIPHERAL_CHAR_UUID and TARGET_DEV_NAME as follows:

I also attached a print-screen with the output from nRF Control Panel regarding the TI BLE (the module is working properly as a peripheral, I did managed to get (notify) and write some text using the UART, but I can't program this device).

image description

So after reading the values using nRF Control Panel, I modified the values accordingly:

  1. MULTILINK_PERIPHERAL_BASE_UUID: {{0xd3, 0xe6, 0x00, 0x01, 0x8f, 0x36, 0x40, 0xd6, 0xb2, 0xd5, 0xc5, 0xd9, 0xf5, 0xe8, 0x18, 0x69}}
  2. MULTILINK_PERIPHERAL_SERVICE_UUID: 0x2901 (not sure - see app printscreen)
  3. MULTILINK_PERIPHERAL_CHAR_UUID: 0x2901 (not sure - see app printscreen)
  4. TARGET_DEV_NAME: "ME30"

So that's all the info relevant that I could think of. If you need any other information to solve my problem please ask me and I will get back as soon as I can.

Thank you, Vlad

Parents
  • The UUIDs should matter. You need to figure out why the parser can't find the 0x08 or 0x09 types in the advertising packet. image description

    This is the content of an advertising packet from ble_app_multilink_peripheral. I used nRF Sniffer to capture it, it may be able to sniff the advertising packets from your TI chip as well. Or you could try to use the debugger to examine the data in the advertising packet.

Reply
  • The UUIDs should matter. You need to figure out why the parser can't find the 0x08 or 0x09 types in the advertising packet. image description

    This is the content of an advertising packet from ble_app_multilink_peripheral. I used nRF Sniffer to capture it, it may be able to sniff the advertising packets from your TI chip as well. Or you could try to use the debugger to examine the data in the advertising packet.

Children
No Data
Related