Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

flashing binary onto nRF52840 USB dongle via Raspberry Pi 4

So, I have compiled blinky for the USB dongle52840, but am having difficulty getting west or the development toolchain to flash the dongle. Any help would be appteciated. I would be happy to share the recipe for developing zephyr from a raspberry pi, if I get it fully running. 

Cy

Parents Reply Children
  • The root cause of why nrfutil (and many related Nordic tools) keep failing on your Raspberry Pi setup in December 2025 is a combination of three things that all hit at once:

    1. You are using Python 3.13 (Debian trixie/bookworm on Raspberry Pi OS 64-bit now ships with Python 3.13 by mid-2025).
    2. The old Python-based nrfutil (the one from pypi.org, version 5.2.0) is completely unmaintained and does not support Python ≥ 3.8 at all. It fails in multiple ways:
      • AttributeError: 'dict' object has no attribute 'iteritems' (because .iteritems() was removed in Python 3)
      • module 'collections' has no attribute 'Hashable' (because in Python 3.10+ collections.Hashable became collections.abc.Hashable)
      • It forces PyYAML 4.2b4, which also breaks everything else (west, pyocd, etc.)
    3. Nordic replaced the old Python nrfutil years ago with a completely new standalone binary tool (also called nrfutil, but version 7.x/8.x). This new tool is written in Rust, distributed only as pre-built binaries, and works perfectly on Linux arm64 (including Raspberry Pi). The problem is that all the old download links you tried are either dead, redirected to HTML pages, or simply never existed for the new binary.

    Summary of what went wrong in your logs

    • Every pip install nrfutil gave you the ancient, dead 5.2.0 version → instantly broken on Python 3.13.
    • Every wget …nrfutil_Linux-arm64.zip from developer.nordicsemi.com or files.nordicsemi.com downloaded an HTML redirect page (17 KB), not the real ~10–15 MB binary → unzip fails.
    • The GitHub releases you tried (v7.11.0, v0.16.5, etc.) simply don’t have arm64 builds or the tags don’t exist.
Related