Skip to content

Support udp:// Crazyflies, the firmware simulator - #61

Draft
evoggy wants to merge 1 commit into
mainfrom
evoggy/udp-link
Draft

evoggy wants to merge 1 commit into
mainfrom
evoggy/udp-link

Conversation

@evoggy

@evoggy evoggy commented Oct 20, 2026

Copy link
Copy Markdown
Member

Adds support for udp://<host>:<port> Crazyflies, the Simmyflie firmware simulator (draft bitcraze/crazyflie-firmware#1706). The link itself is added in crazyflie-link (bitcraze/crazyflie-link-rs#27). This PR needs a crazyflie-link release with that change and a Cargo.lock bump before it can be merged, so it stays a draft until then.

Swarms

  • Swarms can now hold udp:// URIs. The simulator launcher (tools/sim/simmyflie-launcher.py) reads the same swarm file format, and cfcli keeps the launcher's fields (start_x, ground_level, ...) when it rewrites the file.
  • swarm scan now probes udp:// Crazyflies. Before, they were counted as USB Crazyflies that weren't attached. The Radio column shows UDP for them.

Commands that need the nRF51 or the bootloader
The simulator runs the STM32 firmware only. These commands now fail at once for udp:// URIs, with a message saying they are not supported over udp:// because the simulator has no nRF51 or bootloader:

  • platform reboot, power-off, sleep, wakeup and dfu
  • reading bootloader info and flashing STM32/nRF51 firmware
  • the same commands in swarm platform and swarm bootload

Before, the power commands did nothing and still reported success. Reboot and bootloading timed out waiting for the nRF51.

Testing
Tested with a local [patch] pointing at crazyflie-link-rs#27:

  • Four simulators were started by the launcher from a cfcli swarm file.
  • cfcli scan lists all four, and swarm scan shows 4 of 4 online. With two of the simulators stopped, it shows them as offline.
  • swarm param get works. swarm platform reboot fails at once with the message above.
  • For a single Crazyflie, these work over udp://: params, log print, platform info, and hlc arm / takeoff / land.

crazyflie-link opens udp://<host>:<port> links to the Simmyflie, the
Crazyflie firmware built for the sim platform. Swarms can now hold
udp:// URIs, so the same swarm file can start the simulators and be
used with cfcli, and swarm scan probes them instead of counting them as
USB Crazyflies that are not attached.

The simulator runs the STM32 firmware only. Commands that need the
nRF51 or the bootloader (reboot, power off, sleep, wakeup, bootloading
and DFU) now fail at once with a clear message for udp:// URIs, instead
of doing nothing or timing out waiting for the nRF51.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant