Skip to content

Releases: bitcraze/cfcli

0.11.1

26 May 21:18

Choose a tag to compare

cfcli 0.11.1

cfcli has moved to the Bitcraze organization. It is now developed at
github.com/bitcraze/cfcli and its packages are
published from Bitcraze-hosted repositories. Old evoggy/cfcli git and release
links keep working via GitHub redirects.

Packaging changes

  • APT repository moved to https://packages.bitcraze.io/apt. New installs — and the .deb's post-install step — configure it automatically. The signing key is unchanged, so no key re-import is needed. Existing apt users set up against the old evoggy.github.io URL must do a one-time switch:

    sudo rm -f /etc/apt/sources.list.d/cfcli.list
    curl -fsSL https://packages.bitcraze.io/apt/bitcraze.gpg.key \
      | sudo gpg --dearmor -o /usr/share/keyrings/bitcraze-archive-keyring.gpg
    echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/bitcraze-archive-keyring.gpg] https://packages.bitcraze.io/apt stable main" \
      | sudo tee /etc/apt/sources.list.d/bitcraze.list
    sudo apt update

    See MIGRATION.md for details.

  • Homebrew tap is now bitcraze/tap — install with brew tap bitcraze/tap && brew install cfcli. The old tap keeps working via redirect, but retapping is recommended.

0.11.0

26 May 13:02

Choose a tag to compare

cfcli 0.11.0

Improvements

  • Simplified deck firmware flashing — deck bootloading now uses the
    new flash_firmware_with_progress API from crazyflie-lib. The manual
    workaround that parsed the deck memory info section and wrote the
    firmware size to the command region via RawMemory has been removed —
    the library now handles erasing the correct region up front internally.

Dependencies

  • Updated to crazyflie-lib 0.8.0 (#8, thanks @gemenerik)
  • Updated to crazyflie-link 0.5.0
  • Updated to crazyradio 0.7.0

0.10.2

23 May 15:19

Choose a tag to compare

cfcli 0.10.2

Bug fixes

  • __complete no longer offered in tab-completion — the internal dynamic-completion helper subcommand was showing up as a candidate when completing cfcli <TAB>. It is now dispatched before argument parsing, so it stays out of both --help and the generated completion scripts (bash, zsh, fish, PowerShell).

0.10.1

23 May 12:55

Choose a tag to compare

cfcli 0.10.1

Bug fixes

  • zsh completion now works after .deb install — the zsh completion was installed to /usr/share/zsh/site-functions, which is not on the default fpath on Debian/Ubuntu, so zsh never loaded it (bash completion was unaffected). It now installs to /usr/share/zsh/vendor-completions, the directory Debian/Ubuntu scan for packaged completions. Active in a new shell after reinstalling.

0.10.0

23 May 12:30

Choose a tag to compare

cfcli 0.10.0

New features

  • Shell completion — generate completions for bash, zsh and powershell. Includes dynamic completion of runtime values (e.g. log block names) via helper scripts. See docs/shell-completion.md.

Improvements

  • Packet capture enabled by default — the packet_capture feature is now on by default. The overhead is low and it's useful to have when you need it. (Not enabled on Windows.)
  • DeckCtrl rescue bootloadingbootload can now flash the DeckCtrl board even when no decks are detected, so a board with broken software can be recovered.
  • Transfer speed in progress bar — memory transfers now show the achieved transfer speed once the transfer completes.

Docs

  • Added documentation for test mem-perf throughput testing.

0.9.0

18 May 21:24

Choose a tag to compare

cfcli 0.9.0

Breaking changes

  • mem read / mem writeoffset and length are now flags (-s, -n), not positional. mem read 5 defaults to offset 0, length 32.
  • hlc takeoff / hlc landheight and duration are now flags (-z, -d). Both work with no arguments using sensible defaults.
  • hlc trajectory upload — trajectory ID is now the positional argument; YAML path is -i/--input; offset short is -s (was -o).
  • hlc trajectory run--time-scale short changed from -s to -f.
  • log printperiod is now -p/--period.
  • util deck-ctrl binflashprobe_idx is now -p.

New features

  • lh config — Lighthouse positioning configuration: display (human-readable), read (YAML to stdout/file), write (YAML from file/stdin). See docs/lighthouse.md.
  • debug assert — print the firmware's stored assert info (same mechanism as cfclient's "Assert info" button). --wait-timeout-ms tunes the per-command wait on slow links. See docs/debug.md.
  • test link-perf — link benchmark over the CRTP link service. Subtests: ping, uplink, downlink, echo, all. See docs/test.md.
  • test mem-perf — throughput benchmark against the firmware MemoryTester.
  • Memory type namesmem read/write/display/erase accept type names (e.g. DeckCtrlDFU, Lighthouse) so commands stay stable across firmwares. Multiple instances disambiguated as DeckMemory:0, DeckMemory:1. Numeric IDs still work.
  • DeckCtrl bootloading — new deckctrl-fw and deckctrl-cfg targets flash the DeckCtrl board via the DeckCtrlDFU memory path.
  • bcCam flash target — bootloader supports the Bitcraze camera deck (bcCam:qcc).
  • mem display DeckCtrlDFU — formatted view (version, deck-ctrl count, DFU status flags).

Improvements

  • -y short for --yaw on hlc takeoff, hlc land, hlc goto.
  • bootload flash --cold with a usb:// URI is now accepted (rescue mode ignores the URI and scans for the bootloader).
  • USB links bypass --timeout — the global timer no longer applies to usb:// connections.

Scripting / AI-agent friendliness

A pass to make cfcli predictable when driven from scripts or by AI agents:

  • Global --timeout <ms> — wall-clock cap. Streaming commands (console, log print, cr sniff) exit 0 on timeout; bounded commands exit 40.
  • Global --non-interactive — disables inquire pickers. Auto-enabled when stdin is not a TTY; commands that would otherwise prompt exit 30 with the missing-argument name.
  • Global --csv — machine-readable CSV for scan, param list/get, log list/print, mem list, platform info, test link-perf.
  • Distinct exit codes0 success, 2 clap usage, 10 connection failure, 20 not found, 30 invalid value, 40 timeout on a bounded command. Documented in the --help epilog.
  • console --clear — delete the preserved console history file without connecting.
  • settings show now prints the preserved-console-history file path.
  • Connection spinner removed — captured output stays clean; --debug still prints connection time on stderr.
  • Progress bars suppressed in non-TTY output for mem read/write, bootloader flashing, and the stability/reboot tests.
  • --help epilog documents exit codes, streaming commands, scripting flags, and a worked example.

0.8.0

14 Apr 13:14

Choose a tag to compare

New features

  • Persist console output across commands with the new -p / --preserve-console global flag. When enabled, console data from every connection is saved to disk and accumulated across invocations. Running cfcli console prints the saved history first, then continues with live output, and clears the cache. Useful for capturing debug prints that occur during param set, log print, or other short-lived commands. See docs/console.md for details.

Maintenance

  • Updated Cargo.lock to avoid platform version incompatibilities.

0.7.1

23 Mar 13:19

Choose a tag to compare

Updated release scripts to check that tag matches the Cargo.toml version. Otherwise same as https://github.com/evoggy/cfcli/releases/tag/0.7.0

0.7.0

23 Mar 13:06

Choose a tag to compare

New features

  • Crazyradio subcommand (cr) — new top-level command for direct Crazyradio dongle operations that don't require a Crazyflie connection:
    • cr list — list connected Crazyradio USB dongles with serial number, firmware version, and USB bus information
    • cr sniff — sniff radio packets on a given channel, datarate, and address. Prints pipe, RSSI, timestamp, and payload for each received packet
    • cr broadcast — send a single packet (no ack) with data provided inline (--data) or from a binary file (--input)

Improvements

  • Use the new power management function from the library instead of the local implementation
  • Updated dependencies

0.6.2

12 Mar 15:58

Choose a tag to compare

New features

  • Added option for flashing binaries to a specific address/page offset
  • Print more bootloader info during flash operations

Bug fixes

  • Fixed missing console output
  • Fixed issue with bootloader URI and timeout parameter