nRF PynrfjprogDevelopment tool

Simple Python interface for the nrfjprog DLL 

The nRF Pynrfjprog is a Python package providing a simple Python interface for the nrfjprog DLL.

The package provides Python bindings for the nrfjprog DLL and is an excellent tool to use in a Python application test environment. It gives you all the functionality needed for properly testing the functionality of the nRF51, nRF52, nRF53 and nRF91 Series devices.


Key Features
Windows 32/64
support
Linux
support
macOS
support
Python
Script support
Key Features
Windows 32/64
support
Linux
support
macOS
support
Python
Script support

Choose platform and version

Choose your Desktop platform and select version (latest released version recommended)

Selected version

10.9.0 All (Python)

pynrfjprog-10.9.0.zip

Changelog:

10.9.0 All (Python)

  • Changes in this version

    • Fixed bug where custom instructions with only one argument in QSPI INI file caused a crash
    • nRF9160_XXAA: Introduced split between Engineering A (nRF9160_XXAA_rev1) and Revision 1 (nRF9160_XXAA_rev2)
    • In special circumstances, pin resets could cause debug power to be enabled. Fixed.
    • If jlink_path argument to NRFJPROG_open_dll is NULL or nullptr, the dll will attempt to search for a J-Link dll automatically.
    • NRFJPROG_qspi_custom had inconsistent argument types across dlls. Fixed.
    • Some QSPI commands could loop forever. They now time out after 15 minutes.
    • Fixed MCUBoot serial timing issue that caused the mcuboot process to time out.

    For a full overview of all changes, please read the release notes located in the installation directory.

  • Hash, v.10.9.0

    nRF-Pynrfjprog                  SHA256:
    F0BF5662762690D183515B4D895F4DB3
    7C7CDB2E6F9443C3502C8BA7D97F7A78




10.8.0 All (Python)

  • Changes in this version

    • Added SHA1, SHA256, and md5 hashes for all release files (see below)
    • Updated bundled Segger installers and tar balls to v6.70d
    • Added unicode support for CLI arguments in nrfjprog.exe
    • Added --deviceversion CLI argument for nrfjprog.exe
    • Fixed issue where some versions of nRF9160 would not be recognized by the family detection algorithm used when family is unknown
    • Added aliases for PC, LR, and SP registers in CPU register enumerators
    • Increased readability in logs

    For a full overview of all changes, please read the release notes located in the installation directory.

  • Hashes

    nRF-Command-Line-Tools-Win32, SHA256:
    1806a25131536584b7ddc01d1da4c609
    461a5ee9f3ee8b4a616afbd610125e35

    nRF-Command-Line-Tools-x64, SHA256:
    7d4225e01f9e2a52e51a94614485cdfb
    0697efdc19831ecb3c4786494d965a1f

    nRF-Pynrfjprog, SHA256:
    3585de8320903d7f5b23f4ce18859d9a
    c848d71ba718a54447dc4f61e00c4334

    nRF-Command-Line-Tools-Linux32, SHA256:
    83c032e1bed1b1bc29d30f77c168c222
    5f1c1f4a61cb32cf89450ef8a2dfe6e7

    nRF-Command-Line-Tools-Linux64, SHA256:
    411e52fe662f6c8dbc1325a82e8711e6c
    6f67c6dcd018cb32f0db785278ea7d6

    nRF-Command-Line-Tools-OSX, SHA256:
    0c6af1ce68829d1ccc7b600219b255605a
    0c7ca704dabc92f74a191aa16af0e4


10.7.0 All (Python)

Changelog from 10.6.0 to 10.7.0:
- (Release) Update bundled Segger installers and tar balls to v6.62b.

- (WindowsRelease) Included .lib files for all dlls.

- (OSXRelease) Fixed issue where OSX release contained a tar ball with the same name as the parent tar ball.

- (nrfjprog.exe) Added support for nRF52820_xxAA_REV2

- (nrfjprog.dll) Fix issue where nRF9160 targets could be identified as nRF9160_FUTURE.
- (nrfjprog.dll) Fix issue where nRF52 targets were not halted during page erase.
- (nrfjprog.dll) nRFJProg now updates the debug probe fw without user interaction again (changed in 10.6.0). Note that this may lead to issues with J-Link Dll versions v6.60 to v6.60f.
- (nrfjprog.dll) Added support for nRF52820_xxAA_REV2
- (nrfjprog.dll) NRFJPROG_connect_to_emu_with_snr() will fail with WRONG_FAMILY_FOR_DEVICE if the target device debug port IDR does not match the one expected by the dll.
- (nrfjprog.dll) NRFJPROG_connect_to_emu_without_snr() will fail with WRONG_FAMILY_FOR_DEVICE if the target device debug port IDR does not match the one expected by the dll.

- (pynrfjprog)   Added support for nRF52820_xxAA_REV2

- (highleveldll) Added support for nRF52820_xxAA_REV2

10.6.0 All (Python)

  • Update bundled Segger installers and tar balls to v6.60e.
  • Added support for modem firmware upgrade for nRF91 over serial port communication.
  • Fixed bug where nrfjprog could not be called from inside a folder containing utf characters.
  • Fixed issue where nrfjprog exe caused segmentation faults if an unsupported JLink Dll was loaded.
  • Documented “—log” functionality and argument option to set log file location.
  • Known issue: nRFJProg previously updated the debug probe fw without user interaction. Due to an issue with J-Link, a popup will now appear on connection if a fw update is available.

10.5.0 All (Python)

  • Added support for nRF5340
  • Update bundled Segger installers and tar balls to v6.54c.
  • Added rtt functionality to highleveldll

10.4.1 All (Python)

    • Installation of command line tools on OSX, fixed.
    • In some cases when nrfjprog was called through an indirection (ie. PATH or symlink), it could not find its local resources. Fixed.
    • For Linux and OSX, nrfdfu file had changed name. Fixed.
    • Bundled with Segger JLink version 6.50b

10.4.0 All (Python)

  • In devices with Trustzone, if AIRCR.SYSRESETREQS was set and the core was running NonSecure code, operations that required a call to disable_bprot could fail silently. Fixed.
  • In devices with SPU, if a page was set as NonSecure, erasepage and sectorerase failed silently. Fixed.
  • In special circumstances family detection in unknown dll could fail for nRF9160. Fixed.
  • Added MCUBoot support for Zephyr targets over serial port communication.
  • Updated Segger JLink to version 6.50b.

10.3.0 All (Python)

  • erase_page() now returns UNAVAILABLE_BECAUSE_BPROT if block protection is enabled for the page to erase.
  • Added NrfjprogdllErr enum UNAVAILABLE_BECAUSE_BPROT for when an operation is expected to fail due to block protection mechanisms.

10.2.1 All (Python)

  • (pynrfjprog) New functions added, including modem DFU
  • (nRF-Command-Line-Tools) Fixed issue where if BPROT, ACL, SPU or other similar mechanisms were used to protect memory, program might silently fail.
  • (nRF-Command-Line-Tools) Updated ipc_dfu bootloader
  • (nrfjprog) In some special circumstances page erase would fail to erase, fixed

10.1.1 All (Python)

  • Includes Segger J-Link Software Pack v6.44e
  • Added support for nRF9160
  • Added support for nRF52811
  • Added support for nRF52810 revision 2
  • Added support for nRF52840 revision 2
  • Initial release of OS X .dmg and .pkg packages
  • Initial release of Linux .deb package
  • Added HighLevel.py module, a python API for the nrfjprog.exe-like highlevelnrfjprog library
  • Changed to Nordic 5-clause license
  • Various bug fixes and improvements

9.8.0 All (Python)

  • (pynrfjprog)   Moved loadable library files (.dll-s, .so-s, .dylib-s) from OS-specific folders into common folders lib_x86 and lib_x64 depending on architecture. 
  • (pynrfjprog)   Added timestamp to the logging printouts.
  • (nRF5x-Command-Line-Tools) Update to Segger J-Link Software Pack v6.34g
  • (nRF5x-Command-Line-Tools) Only support Windows 7 and newer versions
  • (nRF5x-Command-Line-Tools) Added option to support flash hex files with address-unaligned records
  • (nRF5x-Command-Line-Tools) Renamed some dll header files, se release notes for details

9.7.3 All (Python)

  • Windows install includes Segger J-Link Software Pack v6.22g
  • Bug fixes and stability improvements

9.7.2 All (Python)

  • Windows install Includes Segger J-Link Software Pack v6.20i
  • Added support for new device nRF52840_xxAA_ENGB

9.7.1 All (Python)

  • Windows install Includes Segger J-Link Software Pack v6.20b
  • Fixed bug in jlinkarm dll detection on Linux and OS X. Some cases were not covered by 9.7.0 update.

9.7.0 All (Python)

  • Initial release of new High Level nRFJProgDLL
  • Added support for nRF52840_xxAA_Rev1 device
  • Added support for long frames in NRFJPROG_qspi_custom() function

9.6.0 All (Python)

  • Initial release of new High Level nRFJProgDLL
  • Added support for nRF52840_xxAA_Rev1 device
  • Added support for long frames in NRFJPROG_qspi_custom() function