MCU Manager CLI

Clone this repo:

Branches

  1. 62a8136 Update to latest newt/newtmgr deps by Fabio Utzig · 7 weeks ago master
  2. 3ba8601 Merge pull request #11 from ccollins476ad/latest-newtmgr by ccollins476ad · 3 months ago
  3. f6c88ed Depend on latest newtmgr by Christopher Collins · 3 months ago
  4. 982b276 Update newtmgr dependency by Fabio Utzig · 4 months ago
  5. 23bb47c Update to use go modules by Fabio Utzig · 4 months ago

mcumgr

MCU Manager (mcumgr) is the application tool that enables a user to communicate with and manage remote devices running an mcumgr server.

The mcumgr tool is a thin wrapper over the Apache newtmgr tool. Thus, the newtmgr documentation provides some useful help with using the mcumgr tool.

Building

Build the mcumgr tool as follows:

  1. Unpack mcumgr source.
  2. Rename resulting apache-mynewt-mcumgr-1.3.0 directory to $GOPATH/src/mynewt.apache.org/mcumgr
  3. cd $GOPATH/src/mynewt.apache.org/mcumgr/mcumgr
  4. go build

Examples

Here are some example mcumgr invocations.

Send an echo command over Bluetooth

The following sends an echo command to a Bluetooth device advertising the name “Zephyr”:

mcumgr --conntype ble --connstring peer_name=Zephyr echo hello

Upgrade firmware over Bluetooth

This series of commands performs an image upgrade over Bluetooth. The device is assumed to be advertising the name “Zephyr”.

# 1. Query device for its current image list.
mcumgr --conntype ble --connstring 'peer_name=Zephyr' image list

# 2. Upload new image to device.
mcumgr --conntype ble --connstring 'peer_name=Zephyr' image upload <filename>

# 3. Tell the device to run the new image on its next boot ("test" the new
#    image).
mcumgr --conntype ble --connstring 'peer_name=Zephyr' image test <image-hash>

# 4. Reboot the device.
mcumgr --conntype ble --connstring 'peer_name=Zephyr' reset

# 5. Query device for its current image list; ensure new image is running.
mcumgr --conntype ble --connstring 'peer_name=Zephyr' image list

# 6. Make the image swap permanent.
mcumgr --conntype ble --connstring 'peer_name=Zephyr' image confirm