Skip to content
This repository has been archived by the owner on Dec 3, 2020. It is now read-only.

msp-rs/async_msp_cli.rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

=======================================================================

A Multiwii Serial Protocol (MSP) CLI

async_msp_cli is a command line program for configuring rebooting, getting status and downloading blackbox from Cleanflight, Betaflight and iNav. This is an incomplete implementation of the MSP2 commands, with some Cleanflight, Betaflight and iNav extensions.

  1. Mimic iNav, betaflight cli
  2. Send MSP commands asynchronously
  3. Be as fast and efficient as possible

Available commands

aux                             Get all aux setting
                  set           Set aux setting

font              set           Upload mcm font file to MAX7456 osd

feature                         Get all features
                  Set           features(FEATURE_NAME:enable, -FEATURE_NAME:disable)
                  disable       Disable feature
                  enable        Enable feature

osd_item                        Get all osd items (derecated)
                  set           Set osd item

osd_layout                      Get all osd_layout items
                  set           Set osd layout item

blackbox          download      Download blackbox concurrently
                  downloadv2    Pull blackbox serially

map                             Get all rx map setting
                  set           Set rx map setting

mmix                            Get all mmix setting
                  set           Set mmix setting

serial                          Get all serial setting
                  set           Set serial setting

servo                           Get all servo setting
                  set           Set servo setting

setting           list          Get all common setting
                  set           Set common setting
                  get           get common setting
                  set-all       Set all common setting

smix                            Get all smix setting
                  set           Set smix setting

config                          Get all configs
                  set           Upload all configs
                  reset         Reset all configs

reboot                          Reboot the device

dfu                             Reboot into dfu mode

OPTIONS:
        --flavor <flavor>       [possible values: inav, baseflight, betafligth]
    -p, --port   <port>         device serial port

FLAGS:
    -h, --help       Prints help information
    -r, --reboot     Reboot fc
    -s, --save       Settings file path
        --strict     Stop if setting not found in fc
    -v, --verbose    display internal message receive and send
    -b  --buff       Max amount of msp messages can be sent without receiving response,
                     essentially buffering the msp write.
                     setting the buffer to 0 will make the communication unidirectional, only writes
    -V, --version    Prints version information

Backup and restore FC configs

async_msp_cli config > /tmp/configs # dump all configs
async_msp_cli -s -r config set /tmp/configs # restore all configs from file

asciicast

The dump has the same syntax as configurator dump command output

mmix 0  1.000 -1.000  1.000 -1.000
mmix 1  1.000 -1.000 -1.000  1.000
...

feature -TX_PROF_SEL
feature THR_VBAT_COMP
...

aux 0 51 6 1100 1200
aux 1 52 6 1400 1500
...

set gyro_hardware_lpf = 256HZ
set gyro_lpf_hz = 90
...

Installation

Compiling from this repository also works similarly:

You can compile from source by installing Cargo (Rust's package manager) and installing async_msp_cli using Cargo:

cargo install --locked async_msp_cli
git clone git://github.com/BurntSushi/async_msp_cli
cd async_msp_cli
cargo build --release

Compilation will probably take a few minutes depending on your machine. The binary will end up in ./target/release/async_msp_cli.

Dual-licensed under MIT or the UNLICENSE.

Build

prerequisites

install docker
cargo install cross
cargo install --force cargo-make
cargo make --makefile ./Cargo.toml release-darwin
export PATH=$HOME/.cargo/bin:$PATH

debug build

cargo build

build all relases

cargo make --makefile ./Cargo.toml release-all