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

ble_app_multilink_central on PCA10001

Hi,

I'm attempting to use 'S120/experimental/ble_app_multilink_central' running on a pca10001 to better understand the central / peripherial comm sequencing on the nrf51.

Using the ble_app_multilink_central with no changes except for the TARGET_DEV_NAME can someone help me understand the peripherial configuration details that will cause the central in this default configuration to generate events?

Thanks,

Jeff

  • Jeff,

    It's not totally clear what issues you are having from your question. However, when I ported the stock ble_app_multilink_central from nrf6310 to the PCA10001 I removed all hard references to

    #include "nrf6310.h"
    

    and changed them to use

    #include "boards.h"
    

    Then you'll also need to define BOARD_PCA10001 in your Target Options.

    image description

    This will at least get your LEDs and buttons on the correct pins.

    Edit: I also removed all references to

    #define ASSERT_LED_PIN_NO                LED_7            
    

    Since there are only 2 LEDs on the PCA10001

  • Hi Erik.

    Thanks for your reply. I'm not having any issues with the S120 central configuration as such, but was asking, perhaps not as clearly as possible, for suggestions on a peripheral configuration that will work with this default S120 central on a PCA10001.

    I have a TI SensorTag device (sorry Nordic) and changed the TARGET_DEV_NAME in the ble_app_multilink_central to 'SensorTag' expecting that the PCA10001 loaded with this central app and the S120 would see/respond the TI device. Alas, nothing.

    What am I missing? I'm still fairly new with these devices and wanted to use this as leanring for the central/peripheral configurations.

    Thanks again Erik for your help!

  • I also try to port "BLE Multi-link Example" to run on PCA10001.My actions are:

    List item

    1. I download "nrf51_sdk_v6_0_0_43681" and "s120_nrf51822_1.0.0_softdevice.hex"
    2. Load with nRFgo "s120_nrf51822_1.0.0_softdevice.hex" file to PCA10001
    3. Change BOARD_NRF6310 definition to BOARD_PCA10001 as explain devzone.nordicsemi.com/.../a00064.html and Erik Sanchez
    4. Redefine CONNECTED_LED_PIN_NO to LED_0 and ASSERT_LED_PIN_NO to LED_1
    5. Replace #include "nrf6310.h" with #include "boards.h"in main.c file.
    6. Set HWFC to false in pca10001.h to connect uart to PC terminal. After that while debugging i get: [APPL]: ASSERT: src/rem.c, 1373, error 0xdeadbeef.
    7. So i try to load s110_softdevice hex to flash, then i load "ble_app_multilink_central" to flash by address 0x16000 and 0x20002000. After that PCA10001 board begin to send via UART message: [APPL]: ASSERT: ..\client_handling.c, 314, error 0x00003001. This error mean that " SVC handler is missing " ( when call function sd_ble_uuid_vs_add() in client_handling.c, 314 ).

    P.s. I do not forget to rebuilt my application with the header files that come with used version of the SoftDevice. Using s120 (1.0.0.3) version with replacing header files in directory

    nrf51_sdk_v6_0_0_43681\nrf51822\Include\s120

    let me to get error:

    [APPL]: ASSERT: src/rem.c, 1369, error 0xdeadbeef
    

    So explain me please which SoftDevice version i need to use ( s110 or s120 ) and how to port ble_app_multilink_central project to run it on PCA10001 corrrectly? Thanks)

    P.s. I understand. This error occurs when you try to debug SoftDevice code. It is normal. Maybe someone useful sample code in attachment: example of a peripheral BLE on pca10000 and the central BLE unit on pca10001.nrf51_sdk_v6_0_0_43681_s110.rar

  • OK, well in that case you would probably want to change TARGET_DEV_NAME like you did and also change the following in client_handling.c to match your sensor tag service UUIDs:

    MULTILINK_PERIPHERAL_BASE_UUID and MULTILINK_PERIPHERAL_SERVICE_UUID so that the central will attempt to connect to the service you're advertising.

    Also, MULTILINK_PERIPHERAL_CHAR_UUID so that it will find an the appropriate service during discovery and enable notifications.

    The central makes some assumptions about the notification size and format (sizeof:1) but you can make whatever changes you need in the on_evt_hvx() function in client_handling.c.

    Hope this helps.

    1. You will need HWFC on the pca10001 board in order for the UART to work reliably.
    2. You need to use the S120 softdevice for anything that involves a central role (unless you try the S130 SD).
Related