MCUmgr

Overview

The management subsystem allows remote management of Zephyr-enabled devices. The following management operations are available:

  • Image management

  • File System management

  • OS management

  • Settings (config) management

  • Shell management

  • Statistic management

  • Zephyr management

over the following transports:

  • BLE (Bluetooth Low Energy)

  • Serial (UART)

  • UDP over IP

The management subsystem is based on the Simple Management Protocol (SMP) provided by MCUmgr, an open source project that provides a management subsystem that is portable across multiple real-time operating systems.

The management subsystem is located in subsys/mgmt/ inside of the Zephyr tree.

Additionally, there is a sample server that provides management functionality over BLE and serial.

Tools/libraries

There are various tools and libraries available which enable usage of MCUmgr functionality on a device which are listed below. Note that these tools are not part of or related to the Zephyr project.

Tools and Libraries for MCUmgr

Name

OS support

Transports

Groups

Type

Language

License

Windows

Linux

mac

Mobile

Embedded

Serial

Bluetooth

UDP

OS

IMG

Stat

Settings

FS

Shell

Enum

Zephyr

AuTerm

Application

C++ (Qt)

GPL-3.0

mcumgr-client

Application

Rust

Apache-2.0

mcumgr-web

Web page (chrome only)

Javascript

MIT

nRF Connect Device Manager:
Android and iOS

Library and application

Java, Kotlin, Swift

Apache-2.0

smp

N/A

N/A

N/A

Library

Python

Apache-2.0

smpclient

Library

Python

Apache-2.0

Zephyr MCUmgr client (in-tree)

Library

C

Apache-2.0

Note that a tick for a particular group indicates basic support for that group in the code, it is possible that not all commands/features of a group are supported by the implementation.

Bootloader Integration

The Device Firmware Upgrade subsystem integrates the management subsystem with the bootloader, providing the ability to send and upgrade a Zephyr image to a device.

Currently only the MCUboot bootloader is supported. See MCUboot for more information.

Discord channel

Developers welcome!

API Reference

MCUmgr mgmt API