Skip to content

circuitdojo/modem_updater

Repository files navigation

nRF91 Modem Updater using probe-rs

Summary

This is a tool to update the nRF91 modem firmware using the probe-rs crate. It provides both a CLI and library interface. Used in production on the nRF9160 Feather and nRF9151 Feather.

Validated working on:

  • nRF9160
  • nRF9151
  • nRF9161

Getting Started

1. Install the Rust toolchain

Install Rust using rustup.

On macOS and Linux:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

On Windows download and run the installer from rustup.rs, then open a new PowerShell or Command Prompt window.

After installation, confirm the toolchain is available:

rustc --version
cargo --version

2. Install with cargo

cargo install --git https://github.com/circuitdojo/modem_updater.git

This places the updater binary in ~/.cargo/bin (or the equivalent on Windows).

3. Install probe dependencies

Sometimes you may need to install dependencies. If your compilation fails here are some suggestions:

  • Linux: ensure libusb-1.0 is present (sudo apt install libusb-1.0-0).
  • macOS: install Homebrew and run brew install libusb if it is not already available.
  • Windows: if necessary, use Zadig to install a WinUSB driver for your debug probe.

CLI Usage

To verify the modem firmware, run:

updater verify <path_to_firmware_zip>

To program and verify the modem firmware, run:

updater program <path_to_firmware_zip>

Developement

1. Install the Rust toolchain

Install Rust using rustup.

On macOS and Linux:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

On Windows download and run the installer from rustup.rs, then open a new PowerShell or Command Prompt window.

After installation, confirm the toolchain is available:

rustc --version
cargo --version

2. Clone this repository

git clone https://github.com/circuitdojo/modem_updater.git
cd modem_updater

3. Build the project

Build a release binary locally:

cargo build --release

The resulting executable are located in target/release/:

  • updater - Main firmware update tool

Acknowledgements

This project is based on the work of @maxd-nordic in the pyOCD project.

License

Licensed under either of

About

nRF91xx Modem updater using `probe-rs`

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages