Read-back protection was enabled at the factory on modules with firmware version AB that are not part of an eval board. As of March 2017, modules are programmed with firmware version AD which does not enable read-back protection.
Read-back protection protects the pre-programmed bootloader (RigDFU), firmware (BMDware), the Nordic SoftDevice (S132 v2), plus any encryption keys that you may program. If the SWD port is required, the module must be "recovered" which results in a full erase of the firmware and user areas of flash.
RigDFU UART and OTA updates are not affected and may be used without the procedures below.
A Segger J-Link is required in order to perform the recovery as it accesses a control access point (CTRL-AP) as opposed to the traditional debug access point (D-AP). The BMD-300-EVAL J3 can be used for this purpose on target hardware. (Refer to section 5.6 of the BMD-300-EVAL user guide)
You can recover the module in one of the following ways:
- Run the Rigado BMD-300 Erase & Recovery utility found in our github “programmers” repository.
- From command prompt:
- Ensure the Nordic Command Line Tools are installed.
- Run: nrfjprog -f nrf52 –-recover
- If the module is visible through nRFgo, simply select "Erase All" when the module is selected (see image).
Note: The BMD-3xx-Eval board debug connector is for external targets only, and limited to nRF51 (BMD-200) and nRF52 (BMD-3xx) designs. J2 on the Eval board is for programming the J-Link interface itself. The full design files for the BMD-300-EVAL board are here.
Note: Programmers such as OpenOCD and PE Micro do not have commands to access the CTRL-AP and cannot be used for the erase and recovery operation when read-back protection is enabled.