nRF Command Line ToolsDesktop tool

Cross-platform desktop software

The nRF Command Line Tools is used for development, programming and debugging of Nordic Semiconductor's nRF51, nRF52, nRF53 and nRF91 Series devices.


Components:

  • nrfjprog executable - tool for programming through SEGGER J-LINK programmers and debuggers
  • mergehex executable - enables you to combine up to three .HEX files into one single file
  • nrfjprog DLL - a DLL that exports functions for programming and controlling nRF51, nRF52, nRF53 and nRF91 Series devices and lets developers create their own development tools using the DLLs API
  • SEGGER J-Link software and documentation pack


Available platforms:

  • Windows
  • Linux
  • macOS
Key features

Supports nRF51, nRF52, nRF53 and nRF91 Series

Flash utility

SEGGER J-Link support

HEX file merging

Create your own development tools

Windows

Linux

macOS

Choose platform and version

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

Selected version

10.12.1 Win32

nRF-Command-Line-Tools_10_12_1_Installer.exe

Changelog:

10.12.1 Win32

  • Main changes in this version

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

  • (highleveldll) Fixed issue where NRFJPROG_get_connected_probes would not find connected probes on some versions of OSX.

  • (highleveldll) Fixed issue on where listing serial ports caused a crash on Ubuntu 20.04.

  • (nrfjprog.dll) Fixed issue on where listing serial ports caused a crash on Ubuntu 20.04.

  • (nrfjprog.exe) Fixed issue on where listing serial ports caused a crash on Ubuntu 20.04.

  • (pynrfjprog)   Fixed issue on where listing serial ports caused a crash on Ubuntu 20.04.


     
  • Hashes, v.10.12.1

    nRF-Command-Line-Tools-Win32    SHA256:
    20F52AB90FD5F25F1147A5AAF401EAD5
    84D4617EC86B790C436203CD7240B429

    nRF-Command-Line-Tools-x64      SHA256:
    0D8E73E3E8F086A84E10867F4BC1EF41
    7DFF72E2EB83842216268FA986167862

    nRF-Pynrfjprog                  SHA256:
    9FC75621818F685C2E4B24F2783376F
    1BD5E39030A57D999DB28FC63F5A7C22B

    nRF-Command-Line-Tools-Linux32  SHA256:
    10E5414FEBB5EE5B4F6CA842C104C279
    9755CAB8D28CF9E5FD71D05890FFEF76

    nRF-Command-Line-Tools-Linux64  SHA256:
    B99558DD631DB7F06FE7CFAB0A876D35
    2851BBC1E97015432486588B9CAF8184

    nRF-Command-Line-Tools-OSX      SHA256:
    16B4F40BEEE75EC8D7A6B45B5C1B831
    A7602DC397791A7439282290D37B2A357

  • 3rd-party licenses, v.10.12.1

    base_n
    bzip2
    cppcodec
    crc
    inih
    jsoncons
    libzip
    mbedtls
    openssl
    spdlog
    zlib


10.12.0 Win32

  • Main changes in this version

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

    • Update bundled Segger installers and tar balls to v6.86f.
    • Updated doc string for NRFJPROG_erase_all to make the note about NVM block protection more clear.
    • Add function NRFJPROG_is_eraseprotect_enabled(). In devices that does not support erase protection (nrf51, nrf52), this function returns false.
    • If erase protection is enabled, erase functions will now return NOT_AVAILABLE_BECAUSE_PROTECTION if the target operation is not possible.
    • NRFJPROG_recover() can now disable erase protection if no readback protection is enabled.
    • Fixed issue where in nRF53 devices, NRFJPROG_readback_protect(SECURE) did not enable secure ap protection.
    • Fixed issue where in devices with trustzone, nrfjprog could select NVMC_NS for erase operations, causing the erase operation to fail silently.
    • Fixed issue there if SECURE readbackprotection was enabled, NRFJPROG_read(), NRFJPROG_read_u32(), NRFJPROG_write(), and NRFJPROG_write_u32() would fail with NOT_AVAILABLE_BECAUSE_PROTECTION even though the operation was possible.
  • Hashes, v.10.12.0

    nRF-Command-Line-Tools-Win32    SHA256:
    3A5E9EF58418DC2AD80D076D2685D886
    1DC78587E998664974CC65970967ABEB

    nRF-Command-Line-Tools-x64      SHA256:
    8AB05725DCEB83DB657875C2E23BE3B
    BB7994A741AC291D3E08F4849F2D9135F

    nRF-Pynrfjprog                  SHA256:
    7624C5A3621AA9D88329F5EB09055007
    C8D62FA760A8926FDA8BBCD23437C484

    nRF-Command-Line-Tools-Linux32  SHA256:
    2EE61E8870C715E1A5BDF8ADDA7F30D
    58611046C64C30CA5A8A11493BB04166D

    nRF-Command-Line-Tools-Linux64  SHA256:
    DE00540079F31831B4C99CE53FCB8F9B
    437F2198B8BFF4E2DF6A0529BE8FED08

    nRF-Command-Line-Tools-OSX      SHA256:
    389F82F8A2ADD3367D39ECD61286BA59
    E365FAFA889F01B4DC4D3D196C402E92

  • 3rd-party licenses, v.10.12.0

    base_n
    bzip2
    cppcodec
    crc
    inih
    jsoncons
    libzip
    mbedtls
    openssl
    spdlog
    zlib


10.11.1 Win32

  • Main changes in this version

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

    • Update bundled Segger installers and tar balls to v6.86f.
    • Updated doc string for NRFJPROG_erase_all to make the note about NVM block protection more clear.
    • Add function NRFJPROG_is_eraseprotect_enabled(). In devices that does not support erase protection (nrf51, nrf52), this function returns false.
    • If erase protection is enabled, erase functions will now return NOT_AVAILABLE_BECAUSE_PROTECTION if the target operation is not possible.
    • NRFJPROG_recover() can now disable erase protection if no readback protection is enabled.
    • Fixed issue where in nRF53 devices, NRFJPROG_readback_protect(SECURE) did not enable secure ap protection.
    • Fixed issue where in devices with trustzone, nrfjprog could select NVMC_NS for erase operations, causing the erase operation to fail silently.
    • Fixed issue there if SECURE readbackprotection was enabled, NRFJPROG_read(), NRFJPROG_read_u32(), NRFJPROG_write(), and NRFJPROG_write_u32() would fail with NOT_AVAILABLE_BECAUSE_PROTECTION even though the operation was possible.
  • Hashes, v.10.11.1

    nRF-Command-Line-Tools-Win32    SHA256:
    8d61a99b06d0eb5833d9fac820b64d54
    ce87375b98723239b0402f0e550c01cb

    nRF-Command-Line-Tools-Win32    SHA1:
    eb0d52e235220c55e1c6fbe61e6ef9f6ad4503eb

    nRF-Command-Line-Tools-Win32    MD5:
    eee17841c76c4adef942466817afabf9

  • 3rd-party licenses, v.10.11.1

    base_n
    bzip2
    cppcodec
    crc
    inih
    jsoncons
    libzip
    mbedtls
    openssl
    spdlog
    zlib


10.10.0 Win32

  • Changes in this version

    • Stopped testing nRF Pynrfjprog with Python 3.4
    • Removed limitation on how many files can be passed to mergehex –merge
    • Update bundled SEGGER installers and tar balls to v6.84a

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

  • Hashes, v.10.10.0

    nRF-Command-Line-Tools-Win32    SHA256:
    d03205856792f6d30ffed5a4cf4b0cf9
    2247fd9591eeaad5697056e656de554e

    nRF-Command-Line-Tools-x64      SHA256:
    faa202288f9b3dac8931a8b176dc35ff
    7e82fad4d7f95bd7c327fa4811a3c02e

    nRF-Command-Line-Tools-Linux32  SHA256:
    30eeba50d1498ecb3243417796601a0c
    92ebebdef86ecb6b62ab505f022eb41b

    nRF-Command-Line-Tools-Linux64  SHA256:
    41b2d5fea62178dc9788a90a3582f620
    0c68eb494afc595fa477e4f42bdb5357

    nRF-Command-Line-Tools-OSX      SHA256:
    ac2607ae37485b297e600724ee1413a2
    88f4fd8d7e4dfe324369952cf2f37a21

  • 3rd-party licenses, v.10.10.0

    base_n
    bzip2
    cppcodec
    crc
    inih
    jsoncons
    libzip
    mbedtls
    openssl
    spdlog
    zlib


10.9.0 Win32

  • 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.

  • Hashes, v.10.9.0

    nRF-Command-Line-Tools-Win32    SHA256:
    19c651556659e13b9dfa61862e49df02
    71aad28693176fa599ba35638f8d7ef2

    nRF-Command-Line-Tools-x64      SHA256:
    66d5468b1c889898cad0afa28aa08cbe
    bed69faffc8819f94dda09aee0d587a7

    nRF-Command-Line-Tools-Linux32  SHA256:
    8D61AC844AE3C92005AE1849B66DE5D9
    DF216E13854D3286CC5753EAAC1CCF6F

    nRF-Command-Line-Tools-Linux64  SHA256:
    5115418520b7c55248dc0df956f99c9a
    7a1e876b24a84d791380cce20073df31

    nRF-Command-Line-Tools-OSX      SHA256:
    0805ee65392a3168c33ba40c2b2bd2b9
    cdb3bc8b4e5609671d41fd42d4fe8c52

  • 3rd-party licenses, v.10.9.0

    base_n
    bzip2
    cppcodec
    crc
    inih
    jsoncons
    libzip
    mbedtls
    openssl
    spdlog
    zlib


10.8.0 Win32

  • 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 Win32

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 Win32

  • 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 Win32

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

10.4.1 Win32

    • 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 Win32

  • 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 Win32

  • NRFJPROG_erase_page() now returns UNAVAILABLE_BECAUSE_BPROT if block protection is enabled for the page to erase.
  • Removed undocumented sys_reset side effect of erase_page function in nRF91 dll.

10.2.1 Win32

  • (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 Win32

  • 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.1 Win32

  • Windows install Includes Segger J-Link Software Pack v6.40
  • See release notes for more details

9.8.0 Win32

  • Update to Segger J-Link Software Pack v6.34g
  • Only support Windows 7 and newer versions
  • Added option to support flash hex files with address-unaligned records
  • Renamed some dll header files, se release notes for details
 

9.7.3 Win32

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

9.7.2 Win32

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

9.7.1 Win32

  • 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 Win32

  • Windows install Includes Segger J-Link Software Pack v6.20b.
  • Add –ini option to nrfjprog.exe . Specifies location of nrfjprog.ini file.
  • Removed the possibility to define the QSPI settings file in the nrfjprog.ini file. Option --qspiini should be used instead.
  • Added support for nRF52832_xxAA_Rev2 and nRF52832_xxAB_Rev2 devices.
  • Fixed bug in jlinkarm dll detection in high level library on Linux and OS X. In some cases, library path was mistakenly treated as non-valid.
  • Added is_alive() and terminate() functions to multiAPI interface. Allows user to stop background MultiAPI threads and processes immediately.
  • Added NRFJPROG_get_library_info() function in HighLevel DLL. Allows readout of jlinkarm version and path to library file.
  • Added NRFJPROG_get_probe_info() function in HighLevel DLL. Allows readout of debug probe serial number, firmware version and requested clockspeed.