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.