Skip to content

[FEATURE] MCUmgr support #2545

Open
Open
@raiden00pl

Description

@raiden00pl

Is your feature request related to a problem? Please describe.

Hi, does anyone have mcumgr ported on NuttX?

If not, I think it's a project worth porting, as it would provide a tool for managing remote devices and, most importantly, DFU over the Simple Management Protocol (e.g., over BLE). An out-of-the-box tool for managing remote devices is something I feel is missing in NuttX.

If no one has implemented this yet, I might look into it one day. However, I have a few concerns about this task.

Describe the solution you'd like

Currently there are 2 implementations of mcumgr:

  1. The original project from Mynwet - https://github.com/apache/mynewt-mcumgr/
  2. Zephyr version, developed in parallel - https://github.com/zephyrproject-rtos/zephyr/tree/main/subsys/mgmt/mcumgr
    Initially, Zephyr used the Mynewt version directly, but they decided to incorporate
    the code directly into Zephyr. Details can be found here:

Currently Zephyr version has more functionalities (such as mcumgr client and additional
management commands).

So my questions are:

  1. Which code should we port: the Mynewt version or the Zephyr version ?
    Both have Apache licenses, so the license is not an issue. Zephyr has more
    functionalities, but the porting requires more effort.

  2. Should we adopt an approach similar to Zephyr, where we maintain our own version of the
    code, or should we clone active project ?
    If we choose the second approach (git clone), the Zephyr version is probably out of
    the question - cloning the entire Zephyr project is a bad idea.

    Keeping its entire code in our repo could offer benefits, such as implementing NuttX-specific commands,
    transports and optimizations. All the arguments from the discussion in Zephyr issue above also apply here.

Describe alternatives you've considered

No response

Verification

  • I have verified before submitting the report.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions