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

connectivity Firmware - SDK 17.0.2

Hi,

I am trying to to adjust the connectivity Firmware, so our own firmware update tool can talk to it, but I can't even get the example to work.

I am developing on a nRF52840-DK so I tried the example from examples/connectivity/ble_connectivity/pca10056/ser_s140_uart. In the Future the connectivity FW will run on a custom hardware, where the nRF52 is connected to the PC over UART<->FTDI<->USB - that should be pretty similiar to UART<->SEGGER<->USB.

On the Software side I am on Ubuntu 18.04, nrfutil 6.1.0, nRF Connect v3.6.0 and nRF5 SDK 17.0.2. The toolchain is armgcc.

When I flash the connectivity firmware that comes with nrfutil (nrfutil dfu ble -f ...) the OTA update works just fine, the same goes for nRF Connect. But with the connectivity Firmware from the SDK I can't perform a DFU update. The output is as follows:

> nrfutil -v -v -v -v dfu ble -pkg dfu-Beacon_XS.zip -ic NRF52 --port /dev/ttyACM0

No target selected. Default device name: DfuTarg is used.
2020-11-25 12:00:22,200 Using connectivity board at serial port: /dev/ttyACM0
2020-11-25 12:00:22,202 Sending Application image.
2020-11-25 12:00:25,604 Successfully opened /dev/ttyACM0. Baud rate: 1000000. Flow control: none. Parity: none.
2020-11-25 12:00:25,604 evt> severity(20) message(Successfully opened /dev/ttyACM0. Baud rate: 1000000. Flow control: none. Parity: none.)
2020-11-25 12:00:25,604 RpcAppStatus.resetPerformed: Target Reset performed
2020-11-25 12:00:25,604 evt> status code(RpcAppStatus.resetPerformed) message(Target Reset performed)
2020-11-25 12:00:27,705 RpcAppStatus.pktSendMaxRetriesReached: No response from device. Tried to send packet 6 times.
2020-11-25 12:00:27,705 evt> status code(RpcAppStatus.pktSendMaxRetriesReached) message(No response from device. Tried to send packet 6 times.)
Traceback (most recent call last):
  File "/home/bob/.local/bin/nrfutil", line 8, in <module>
    sys.exit(cli())
  File "/home/bob/.local/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/bob/.local/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/bob/.local/lib/python3.6/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/bob/.local/lib/python3.6/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/bob/.local/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/bob/.local/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/bob/.local/lib/python3.6/site-packages/nordicsemi/__main__.py", line 1199, in ble
    dfu.dfu_send_images()
  File "/home/bob/.local/lib/python3.6/site-packages/nordicsemi/dfu/dfu.py", line 127, in dfu_send_images
    self._dfu_send_image(self.manifest.application)
  File "/home/bob/.local/lib/python3.6/site-packages/nordicsemi/dfu/dfu.py", line 88, in _dfu_send_image
    self.dfu_transport.open()
  File "/home/bob/.local/lib/python3.6/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 473, in open
    self.dfu_adapter.open()
  File "/home/bob/.local/lib/python3.6/site-packages/nordicsemi/dfu/dfu_transport_ble.py", line 103, in open
    self.adapter.driver.open()
  File "/home/bob/.local/lib/python3.6/site-packages/pc_ble_driver_py/ble_driver.py", line 107, in wrapper
    error_code=err_code,
pc_ble_driver_py.exceptions.NordicSemiException: Failed to open. Error code: NRF_ERROR_TIMEOUT

The connectivity firmware flashed with nrfutil/nRF Connect referes itself as "Connectivity firmware version: 4.1.2. SoftDevice API version: 5. Baud rate: 1000000." with Softdevice S132 v5.1.0. The Firmware in the SDK has the same version, but with S140 v7.2.0. I also tried with S132 v7.2.0 but that didn't help.

Am I using the right example, I couldn't find documentation to the connectivity firmware in the infocenter explaining the different versions of the example?

If the example I selected is the right one, what else am I doing wrong?

Thanks
Bob

Parents
  • Hello,

    I believe you are trying to compile and program the connectivity firmware that is used in nrfutil and nRF Connect for Desktop. Is that correct?

    If so, I must disappoint you. The FW that is used in nRF Connect for Desktop and nrfutil is not the same as the example from the SDK\examples\ble_connectivity. In fact, nrfutil and nRF Connect for Desktop doesn't use the same connectivity FW either, and unfortunately, none of them are open source. 

    Best regards,

    Edvin

  • Edvin,

    I'm looking for the actual SES or Keil project for the connectivity firmware that the BLE application in nRF Connect for Desktop uses so I can understand and reverse engineer the USB communication between the connected dev kit with the connectivity firmware and the BLE application.

    Is this what you were referring to when you said "none of them are open source"? If I misunderstood, could you point me in the right direction to find what I'm looking for?

    Thanks,
    Ethan.

  • Hello Ethan,

    This is built on the SDK\examples\connectivity\ble_connectivity example, but with some modifications. The actual source code (with modifications) is not open source, unfortunately, but I believe the example is is a good start if you want to know what's going on.

    Best of luck,

    Edvin

Reply Children
No Data
Related