What changed across the three releases?
| Release | Practical change | Scope |
|---|---|---|
| Official daemon 0.15.3 release · October 6 ↗ | Board identity is declared in robotd.toml; health names missing servos. The beta board gains a GC2093 camera profile and bench LED controls. | The 0.15.3 release note specifically says it passed the update engine in CI but was not validated on a robot. |
| Official daemon 0.16.0 release · October 6 ↗ | The gamepad mapping and Start/Select behavior change; the beta board gains VL53L8CX depth sensing over SPI. | Read the new controls before operating a robot. The sensor change applies to beta hardware. |
| Official daemon 0.16.1 release · October 7 ↗ | After a driving pad disconnect, the robot attempts to sit after about a second. Beta hardware gains head-IMU, NFC and face-LED behavior; idle head motion is added. | The sit response allows a running kick or pick to finish first. It is upstream behavior, not a site hardware measurement. |
The CI-only qualification above belongs to the 0.15.3 release note. The later release pages make their own claims; this site has no independent hardware validation of any of these versions. Official daemon 0.15.3 release · October 6 ↗ Official daemon 0.16.0 release · October 6 ↗ Official daemon 0.16.1 release · October 7 ↗.
Read your installed version and bindings before changing anything.
robotctl version
robotctl update status
robotctl update check daemon
robotctl configure --list
robotctl pad bindings
robotctl healthversion distinguishes running binaries from installed ones. update check daemon reads the stable source without installing it. configure --list shows local overrides, and pad bindings reveals remapped buttons. Save these results alongside health; a preorder with no board has nothing to update. Official 0.16.1 command and gamepad reference ↗.
Relearn the controls on 0.16.0 and later.
| Control | What the official reference says |
|---|---|
| A / B | A toggles sit and stand; B asks for ground pick. On rollers, B asks for crouch. |
| X / Y; LB / RB | X and Y are empty by default and available for skills; bumpers run left and right kicks. Check overrides before relying on a default. |
| D-pad | Left selects move, up selects head, right selects head plus move, and down selects body plus head. These select modes rather than toggling wheel mode. |
| Start | The first press enables torque and ramps for 2 seconds to seat if seated, otherwise home. The second remeasures the pose: seated, it settles for about 2 seconds, rises and walks; otherwise it walks directly. Later presses toggle policy. Holding for 1.5 seconds stops policy and holds home; a seated robot stays seated. |
| Select | A short press does nothing. Release between 2 and 4 seconds requests rest: a driving robot sits and moves to rest before torque-off and servo reboot; a robot not driving reboots its servos where it is. Hold for 4 seconds to power off. |
The older 0.15.2 button map is not the current one. In 0.16.1, a running robot whose pad disconnects plays a sound and then attempts to sit after about one second if standing; an active skill can finish first. Keep the robot supported while checking a new version and do not infer that a simulated response proves the physical stop path. Official 0.16.1 command and gamepad reference ↗ Gamepad behavior and disconnect handling ↗.
Check which electronics your robot actually has.
The configuration names zero3 for the Radxa Zero 3W prototype and beta for the custom board. An unset board reads as zero3, preserving older robots. It also influences which release the updater regards as compatible, so do not change [board] version on a working robot just to enable a feature. robotctl health can report a mismatch between the declaration and device tree. Board identity, defaults and update compatibility ↗.
On a beta board, the reviewed code adds a GC2093 camera profile in 0.15.3, VL53L8CX depth over SPI in 0.16.0, and an LSM6DSV16X head IMU, ST25R100 NFC reader and managed face LEDs in 0.16.1. The older zero3 path uses different fitted hardware. A software release does not add missing physical sensors or guarantee that a custom replica matches the official board. IMX219 and GC2093 sensor selection ↗ Depth-sensor driver selection ↗ Beta-board head IMU implementation ↗ Beta-board NFC reader implementation ↗.
Upgrade only after checking the target and a way back.
If the stable source offers the version appropriate for the declared board, support the robot, keep power stable and allow the services to restart. The documented install command is:
sudo robotctl update apply daemonThen compare the running version and health with the saved baseline. Re-read pad bindings before driving; capture the updater log when diagnosing an unexpected result. Official 0.16.1 command and gamepad reference ↗.
robotctl version
robotctl pad bindings
robotctl health
robotctl update log
robotctl update showIf the update fails, inspect update show and the component that failed. A manual rollback requires a previous release already installed on that board; it is not a general reset of hardware or policy files.
sudo robotctl update rollback daemon
robotctl version
robotctl healthThe official policy set is a separate update stream and its Hub revision did not change from the October 8 review. Nothing in these daemon release notes proves a new walking policy or a successful build of a different DIY robot. Official policy-set manifest · unchanged in this review ↗.
Source check: . Verification scope is stated in the guide; source review alone is not a hardware test.
Where to go next.
MicroDuck Policies: Update v8, Inspect Overrides & Reset
Check the official v8 velstand policy, update the separate policy set, identify persistent walk overrides, and reset one slot safely.
MicroDuck Reference Policies: Sprint, Rollers & Sit/Stand
Compare four official reference policies by slot, accessories and command meaning. Inspect pinned manifests, try a matching model and reset the override.
What would you like to understand next?
Keep the source, your environment and your observations together.