InfiniTime/bootloader
2020-06-01 15:21:58 +02:00
..
ota-dfu-python Add python script to DFU from a linux PC to the Pinetime 2020-06-01 15:21:58 +02:00
booloader_app_jlink.ocd Add example scripts to generate mcuboot image, dfu file and program them with openocd. 2020-05-24 17:47:07 +02:00
create_dfu.sh Add example scripts to generate mcuboot image, dfu file and program them with openocd. 2020-05-24 17:47:07 +02:00
create_image.sh Add example scripts to generate mcuboot image, dfu file and program them with openocd. 2020-05-24 17:47:07 +02:00
flash_bootloader_app.sh Add example scripts to generate mcuboot image, dfu file and program them with openocd. 2020-05-24 17:47:07 +02:00
mynewt_nosemi_4.1.7.elf Refactor CMake files to allow building 2 binaries : one standalone and one compatible with mcuboot bootloader (the offset in memory is different). 2020-05-24 16:36:04 +02:00
mynewt_nosemi_4.1.7.elf.bin Typo in file name. 2020-05-24 17:02:45 +02:00
README.md Add python script to DFU from a linux PC to the Pinetime 2020-06-01 15:21:58 +02:00

Bootloader

Bootloader binary

The binary comes from https://github.com/lupyuen/pinetime-rust-mynewt/releases/tag/v4.1.7

It must be flash at address 0x00 in the internal flash memory.

Using OpenOCD:

program mynewt_nosemi.elf_4.1.7.bin 0

Application firmware image

Build the binary compatible with the booloader:

make pinetime-mcuboot-app

The binary is located in /src/pinetime-mcuboot-app.bin.

It must me converted into a MCUBoot image using imgtool.py from MCUBoot.

imgtool.py create --align 4 --version 1.0.0 --header-size 32 --slot-size 475136 --pad-header <build directory>/src/pinetime-mcuboot-app.bin image.bin

The image must be then flashed at address 0x8000 in the internal flash memory.

Using OpenOCD:

program image.bin 0x8000

OTA and DFU

Pack the image into a .zip file for the NRF DFU protocol:

adafruit-nrfutil dfu genpkg --dev-type 0x0052 --application image.bin dfu.zip

Use NRFConnect or dfu.py (in /bootloader/ota-dfu-python) to upload the zip file to the device:

sudo dfu.py -z /home/jf/nrf52/bootloader/dfu.zip -a <pinetime MAC address> --legacy

Note : dfu.py is a slightly modified version of this repo.