v0.3.0 Deferred Work — Crazyflie & Adapter Backlog

View Source

This document records items from v0.3.0 planning that are intentionally left out of this release. Absence from the Hex package is not an oversight; it is the backlog seed for later milestones.

Suggested roadmap homes are indicative, not commitments.

Shipped in v0.3.0 (for contrast)

ItemStatus
Single Crazyflie via Crazyradio / mock://Shipped
High-level commander (takeoff / land / go-to / stop)Shipped
CRTP logging subscribe for battery + sys.canflyShipped
Optional SafeLink (?safelink=1)Shipped
Pluggable usb_backend (no bundled libusb NIF)Shipped
Optional capabilities/1 + Drone.capabilities/1Shipped
Capability-aware mission preflightShipped
Estimator / telemetry-age safety optionsShipped

Deferred — Crazyflie platform

ItemWhy deferredSuggested home
BLE linkSeparate stack from Crazyradio; different pairing / reliability storyv0.4+
Direct Crazyflie USB (no Crazyradio)Different USB framing; niche for lab benchesLater adapter variant
Raw attitude / rate setpointsOutside the high-level public API; easy to misuseAdvanced API or research
Trajectory upload / memory subsystemLarge CRTP surface; needs memory TOCLater milestone
Parameter read/writeSeparate TOC; not required for HL flightLater milestone
Firmware flashingHost tooling, not flight controlOut of library scope or companion tool
Arbitrary custom log blocksOnly readiness block is wired; general logger is a productLater milestone
Multi-Crazyflie / Crazyflie + Drone.SwarmRadio scheduling, address management, shared channelAfter single-drone hardening
Bundled libusb NIF in Hex packageNative deps break portable CI; keep pluggableOptional companion package

Deferred — shared adapter / vehicle resilience

These were listed under the v0.3.0 “Adapters & Resilience” roadmap theme but are not required to ship a credible Crazyflie adapter:

ItemNotesSuggested home
Drone.Adapters.MAVLinkLarge protocol; separate designv0.4+
Adapter registry (register/2)Third-party discoveryLater
Command retry / backoffNeeds safe_to_retry?/1 policy per commandLater
Mission.run_async/2Progress events + cancellationLater
Vehicle auto-reconnectNetwork / radio loss recoveryLater
Tello state recovery on reconnectRe-query SDK / battery / poseLater
Configurable per-vehicle command timeoutDefault 10s todayLater

Deferred — swarm (carried from v0.2.0)

Crazyflie does not change the v0.2.0 swarm non-goals. Live flocking, closed-loop formation hold, and absolute Tello choreography remain deferred — see v0.2.0 Deferred Work. Multi-Crazyflie under Drone.Swarm is explicitly still out of scope for v0.3.0.

Hardware / CI stance

Concernv0.3.0 decision
Default CImock:// only — no radio hardware required
Real radio://User supplies usb_backend implementing Drone.Adapters.Crazyflie.USB
HILOptional / external; not part of Hex CI matrix

How to use this document

  1. Prefer this catalogue over ad-hoc scope creep in PRs.
  2. When promoting an item into a milestone, move or check it off here and update the README roadmap.
  3. Do not implement deferred items opportunistically inside a patch release without updating this file and the changelog.