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

Get no response from connectivity program running on custom board with pc-ble-driver hrc v5 example host

Hi, 

I'm expecting using a custom board with nrf52832 running connectivity program as a host to connect to the perpheral, and the hrc v5 example of pc-ble-driver is used as the pc host.

When trying to connect the pc program hrc_v5 to the board, the message (maybe just the first few bytes) can be reicived by the custom board, but the custom board just never response.

The SDK version used is 14.2.0. PC host progaram compiled with VS2017.

Did I missed anything? Or the custom board is just not supported by the connectivity ( as I've seen the uart is connected to the interface MCU but there's no such MCU on my custerm board)

Any comments are appriciated

Parents Reply Children
  • Hi Seven,

    (from the thread posted)

    The pc-ble-driver library is written for use with SEGGER J-Link devices. The J-Link OB firmware have a flow control sensing mechanism that will enable HWFC if it is detected on the other side. In the example, the flow control is set to none, but in the connectivity firmware, HWFC is enabled. If the serial to USB chip on your board does not support this automatic sensing, you might get error or unstable connections. Please try to modify the example to use flow control in line with the connectivity firmware.

  • Yeah that's exactly what I've done 'to modify the example to use flow control', by simply changed the enum form none to hardware like this @file main.c:

    static adapter_t * adapter_init(char * serial_port, uint32_t baud_rate)
    {
    physical_layer_t * phy;
    data_link_layer_t * data_link_layer;
    transport_layer_t * transport_layer;

    phy = sd_rpc_physical_layer_create_uart(serial_port, baud_rate, SD_RPC_FLOW_CONTROL_HARDWARE,
    SD_RPC_PARITY_NONE);
    data_link_layer = sd_rpc_data_link_layer_create_bt_three_wire(phy, 100);
    transport_layer = sd_rpc_transport_layer_create(data_link_layer, 100);
    return sd_rpc_adapter_create(transport_layer);
    }

    But after I did this, the host just no longer send any message again. Did I missed anything?

Related