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:
After powering on the TI BLE, the following events occur:
There are some repeating steps:
- ble_evt_dispatch
- client_handling_ble_evt_handler
- client_find
- on_ble_evt
- adv_report_parse
- adv_report_parse
The extra output is to determine possible causes for my problem:
- For client_find it goes on the return MAX_CLIENTS case, as it can't find any m_client that has that conn_handle;
- 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)).
- 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).
So after reading the values using nRF Control Panel, I modified the values accordingly:
- MULTILINK_PERIPHERAL_BASE_UUID: {{0xd3, 0xe6, 0x00, 0x01, 0x8f, 0x36, 0x40, 0xd6, 0xb2, 0xd5, 0xc5, 0xd9, 0xf5, 0xe8, 0x18, 0x69}}
- MULTILINK_PERIPHERAL_SERVICE_UUID: 0x2901 (not sure - see app printscreen)
- MULTILINK_PERIPHERAL_CHAR_UUID: 0x2901 (not sure - see app printscreen)
- 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