Product Specific bootloader

This document describes the steps necessary to take the per-product bootloader in use on your Movesense product.

Implementing product specific bootloader on your sensor

The basic flow of protecting the bootloader goes like this:

  1. Decide an ID for your key. This is just so that different bootloaders can be easily separated from your and our side.

  2. Create a private key running the following command: nrfutil keys generate privatekey-<KEYIDHERE>.pem NOTE: Store this key securely and keep it to yourself! If you lose it, the only way to update sensors with a new firmware is with a Jig!

  3. Create a public key by running the command: nrfutil keys display --key pk --format code privatekey-<KEYIDHERE>.pem --out_file dfu_public_key-<KEYIDHERE>.c Send the public key file to us, and we’ll add it to our movesense-bootloader -repository and our CI will build you the bootloader hex-file that we send back to you.

  4. Add the line set(PRODUCT_KEY_ID "<KEYIDHERE>") in the CMakeLists.txt file of your firmware project

  5. Add the files, privatekey-.pem and bootloader-.hex, into your firmware build folder in subfolder "private", so that the build process can find them. Here’s a pic from our Movesense MD firmware that describes the structure.

per-product bootloader files

Important details to remember