.. _external_module_mender_mcu: mender-mcu ########## Introduction ************ `mender-mcu`_ enables robust firmware updates on resource-constrained devices by integrating with Zephyr. It implements an Update Module interface, which allows a module to define the specifics of how to handle an update. mender-mcu provides a default Update Module that integrates with MCUboot to provide A/B updates. This allows microcontroller units (MCUs) to perform atomic, fail-safe OTA updates with automatic rollback on failure, similar to Mender's updates for Linux devices. The client communicates with the Mender server to report device inventory and identity, checks for available updates, downloads new firmware, and coordinates with the Update Module to install updates safely. Mender server is available as an open-source version licensed under the Apache-2.0 license, and an enterprise version licensed under a commercial license, available through commercial plans for on-prem hosting and hosted Mender, a fully managed service. mender-mcu is licensed under the Apache-2.0 license. Requirements ************ * cJSON for JSON parsing Usage with Zephyr ***************** To pull in mender-mcu as a Zephyr :ref:`module `, either add it as a West project in the ``west.yaml`` file or pull it in by adding a submanifest (e.g. ``zephyr/submanifests/mender-mcu.yaml``) file with the following content and run ``west update``: .. code-block:: yaml manifest: projects: - name: mender-mcu url: https://github.com/mendersoftware/mender-mcu revision: main path: modules/mender-mcu # adjust the path as needed For more detailed instructions and API documentation, refer to the `mender-mcu documentation`_. The `Zephyr reference project`_ provides an example reference integration. References ********** .. target-notes:: .. _mender-mcu: https://github.com/mendersoftware/mender-mcu .. _mender-mcu documentation: https://docs.mender.io/operating-system-updates-zephyr .. _Zephyr reference project: https://github.com/mendersoftware/mender-mcu-integration