blob: a650db65b57dce4fab0c4c52df7406f665b7bc83 [file] [log] [blame] [view]
<!--
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
-->
# mcumgr
MCU Manager (`mcumgr`) is the application tool that enables a user to communicate
with and manage remote devices running an
[mcumgr server](https://github.com/apache/mynewt-mcumgr).
The `mcumgr` tool is a thin wrapper over the Apache `newtmgr` tool. Thus, the
[`newtmgr` documentation](http://mynewt.apache.org/latest/newtmgr/index.html)
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
```