diff --git a/ports/nrf/boards/feather52840/README.md b/ports/nrf/boards/feather52840/README.md index 2bfea9320c..4dab9b75b0 100644 --- a/ports/nrf/boards/feather52840/README.md +++ b/ports/nrf/boards/feather52840/README.md @@ -21,7 +21,7 @@ $ cd ports/nrf $ ./drivers/bluetooth/download_ble_stack.sh ``` -## Serial Bootloader +## Installing the Serial Bootloader The Adafruit nRF52840 Feather uses a serial bootloader that allows you to update the core CircuitPython firmware and internal file system contents @@ -31,14 +31,70 @@ On empty devices, the serial bootloader will need to be flashed once using a HW debugger such as a Segger J-Link before the serial updater (`nrfutil`) can be used. -### Install the Bootloader with `nrfjprog` +### Install `nrfjprog` + +Before you can install the bootloader, you will first need to install the +`nrfjprog` tool from Nordic Semiconductors for your operating system. The +binary files can be downloaded via the following links: + +- [nRF5x toolset tar for Linux 32-bit v9.7.2](http://www.nordicsemi.com/eng/nordic/Products/nRF52832/nRF5x-Command-Line-Tools-Linux32/52619) +- [nRF5x toolset tar for Linux 64-bit v9.7.2](http://www.nordicsemi.com/eng/nordic/Products/nRF52832/nRF5x-Command-Line-Tools-Linux64/51388) +- [nRF5x toolset tar for OSX v9.7.2](http://www.nordicsemi.com/eng/nordic/Products/nRF52832/nRF5x-Command-Line-Tools-OSX/53406) +- [nRF5x toolset installer for Windows v9.7.2](http://www.nordicsemi.com/eng/nordic/Products/nRF52832/nRF5x-Command-Line-Tools-Win32/48768) + +You will then need to add the `nrfjprog` folder to your system `PATH` variable +so that it is available from the command line. The exact process for this is +OS specific, but on a POSIX type system like OS X or Linux, you can +temporarily add the location to your `PATH` environment variables as follows: + +``` +$ export PATH=$PATH:YOURPATHHERE/nRF5x-Command-Line-Tools_9_7_2_OSX/nrfjprog/ +``` + +You can test this by running the following command: + +``` +$ nrfjprog --version +nrfjprog version: 9.7.2 +JLinkARM.dll version: 6.20f +``` + +### Flash the Bootloader with `nrfjprog` + +> This operation only needs to be done once, and only on boards that don't + already have the serial bootloader installed. + +Once `nrfjprog` is installed and available in `PATH` you can flash your +board with the serial bootloader via the following command: ``` make SD=s140 BOARD=feather52840 boot-flash ``` +This should give you the following (or very similar) output, and you will see +a DFU blinky pattern on one of the board LEDs: + +``` +$ make SD=s140 BOARD=feather52840 boot-flash +Use make V=1, make V=2 or set BUILD_VERBOSE similarly in your environment to increase build verbosity. +nrfjprog --program boards/feather52840/bootloader/feather52840_bootloader_6.0.0_s140_single.hex -f nrf52 --chiperase --reset +Parsing hex file. +Erasing user available code and UICR flash areas. +Applying system reset. +Checking that the area to write is not protected. +Programing device. +Applying system reset. +Run. +``` + +From this point onward, you can now use a simple serial port for firmware +updates. + ## Building and Flashing CircuitPython +With the serial bootloader present on your board, you can build and flash +a CircuitPython binary via the following command: + ``` make SD=s140 SERIAL=/dev/ttyACM0 BOARD=feather52840 dfu-gen dfu-flash ```