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

Run nrfutil dfu on a Raspberry Pi

Dear Community,

I am working on the following application: using the RaspberryPi to flash over-the-air nRF52 nodes (Nordic's Secure DFU BLE bootloader)

For that I have connected a PCA10056 to a RPi3, and now I am trying to use nrfutil to flash the nodes over BLE.

Unfortunately, it seems to be that the pc-ble-driver is not precompiled and working for the RPi ARM architecture. So my following step would be to build that from source code.

I had a first try but I was not successful. I am not sure if all the dependencies/tools are ready for the RPi. In the following post I have read that someone already did that:

https://devzone.nordicsemi.com/f/nordic-q-a/25402/how-to-arm-cross-compile-pc-ble-driver

Could you please explain how can we make it working on the RPi or even better to provide a guide showing how we can work with all your tools for nRF52 from a RPi computer?

I think it could be really interesting for the makers community.

Thank you in advance,

Javier

Parents
  • Hi,

    Compiling for Raspberry Pi have been done for an old version, see this blog post. I have not tested this myself, and I'm not aware if this have been done on later versions, however I do not see why it should not work.

    Can you describe your process for compiling and what issues you are facing? Are you trying to build pc-ble-driver, or pc-ble-driver-py?

    Best regards,
    Jørgen

  • The next problem that rises:

    Traceback (most recent call last):
      File "/usr/local/bin/nrfutil", line 11, in <module>
        load_entry_point('nrfutil==5.1.0', 'console_scripts', 'nrfutil')()
      File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 764, in __call__
        return self.main(*args, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 717, in main
        rv = self.invoke(ctx)
      File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 1137, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 1137, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 956, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 555, in invoke
        return callback(*args, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/nrfutil-5.1.0-py2.7.egg/nordicsemi/__main__.py", line 1129, in ble
        flasher = Flasher(serial_port=port, snr = jlink_snr)
      File "/usr/local/lib/python2.7/dist-packages/pc_ble_driver_py-0.11.4-py2.7.egg/pc_ble_driver_py/ble_driver.py", line 1063, in __init__
        raise NordicSemiException('nrfjprog not installed')
    pc_ble_driver_py.exceptions.NordicSemiException: nrfjprog not installed

    and the question: how could I use nrfutil in the RPi if there is no support of nrfjprog for that platform?

    Thank you again for your support.

    Javier

Reply
  • The next problem that rises:

    Traceback (most recent call last):
      File "/usr/local/bin/nrfutil", line 11, in <module>
        load_entry_point('nrfutil==5.1.0', 'console_scripts', 'nrfutil')()
      File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 764, in __call__
        return self.main(*args, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 717, in main
        rv = self.invoke(ctx)
      File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 1137, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 1137, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 956, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/usr/local/lib/python2.7/dist-packages/Click-7.0-py2.7.egg/click/core.py", line 555, in invoke
        return callback(*args, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/nrfutil-5.1.0-py2.7.egg/nordicsemi/__main__.py", line 1129, in ble
        flasher = Flasher(serial_port=port, snr = jlink_snr)
      File "/usr/local/lib/python2.7/dist-packages/pc_ble_driver_py-0.11.4-py2.7.egg/pc_ble_driver_py/ble_driver.py", line 1063, in __init__
        raise NordicSemiException('nrfjprog not installed')
    pc_ble_driver_py.exceptions.NordicSemiException: nrfjprog not installed

    and the question: how could I use nrfutil in the RPi if there is no support of nrfjprog for that platform?

    Thank you again for your support.

    Javier

Children
Related