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

USB Connectivity Firmware not working with custom board and pc-ble-drive questions

Hi,

I am trying to use the USB connectivity firmware so that I can use the pc-ble-driver with it. 

I downloaded to my custom board the file 'connectivity_4.0.0_usb_with_s140_6.1.0.hex'. When I connect with USB (under Windows 10) I get a 'device not reckognized' failure. Specifically it registers as a 'Device Descriptor Request Failed'.

When I download the same firmware on the PCA10056 dev kit MCU, the device enumerates normally as a CDC COM port. Specifically windows 'see' it as 'nRF Connect USB CDC ACM'. When I tried using the dev kit as a connectivity chip from nRF connect, however, I couldn't make it work. NRF Connect requests a device programming  if I answer YES, I get the following

13:35:24.177
Validating connectivity firmware for device with serial number EEA5B0EF6817...
13:35:59.874
Error while setting up device EEA5B0EF6817: USB detach request sent, timeout while waiting for device reboot
13:35:59.881
Device closed.
If I answer NO:
Validating connectivity firmware for device with serial number EEA5B0EF6817...
13:40:15.475
Connectivity firmware is valid.
13:40:15.476
Connectivity firmware version: ble-connectivity 0.1.0+Aug-14-2018-15-12-51. SoftDevice API version: 3. Baud rate: 1000000.
13:40:15.481
Opening adapter connected to COM20
13:40:16.067
Reset performed on adapter COM20
13:40:16.068
Successfully opened COM20. Baud rate: 1000000. Flow control: none. Parity: none.
13:40:17.138
Adapter connected to COM20 opened
13:40:18.638
Failed to receive response for command
13:40:18.638
Received status with code 4 Unknown value, message: 'Error sending packet to target. Code #3'
13:40:20.203
Device closed.
The error is:
Enabling BLE failed (NRF_ERROR_INTERNAL)
Error Occured when enabling Softdevice. Errorcode: NRF_ERROR_INTERNAL(0x03)

The questions are then the following:

1) Can I use the USB connectivity firmware with my custom board?

2) Are there any special hardware requirements besides the USB port? I guess there should be zero other requirements (i.e like RTS/CTS are for UART)

3) If I manage to make the Connectivity Firmware work on my custom board then, can I use the pc-ble-driver from my Visual C# application to interface to Nordic chip? 

4) Why isn't the connectivity firmware working with nRF Connect using the chip on DK PCA10056?

Chip I am using is NRF52840 

SDK is 15.2.0

PC OS is Windows 10

NrRF Connecto v.2.2.0

Thank you for your help.

  • Hi,

    1) Most likely you will have to modify the USB connectivity firmware, in order to use it on your custom board.

    2) There are both special hardware and firmware requirements for using the precompiled USB connectivity firmware. The hardware requirements are for distinguishing between pca10056 (DK) and pca10059 (Dongle) from the pc side. The firmware requirements have to do with the fact that the Dongle does not have an on-board programmer MCU, so instead it comes with a preprogrammed USB bootloader. In turn this means the reset functionality is different. See also the SoftDevice and IC section of the readme, in particular the final remark of that section.

    What all this means in practice, is that the unmodified USB connectivity firmware tries to boot into a nonexistent bootloader on reset (and all bets are off for what happens next.) It should be possible, however, to modify the example for use with a custom board. For that you have to use the patch file on the serialization example from nRF5 SDK v15.2.0. See files and readme at pc-ble-driver/hex/ on github.

    3) For use with C# you will have to make bindings to the c/c++ pc-ble-driver by yourself. We do have a Python version (pc-ble-driver-py) and a JavaScript version (pc-ble-driver-js) although they are not yet updated to use the new pc-ble-driver v4. We do not have a C# version.

    4) The reason for why the USB connectivity firmware does not work on the pca10056 was outlined in 2), and again I will refer to the final remark in the readme.

    Regards,
    Terje

  • Hi tesc,

    Thank you very much for your reply. Sorry for my late reply. 

    It is not very clear from the documentation what the patch does. I will try it and come back if I need more assistance.

    Thank you.

Related