Skip to content
SoftwareOfficial source

MicroDuck 0.16.1: New Gamepad Controls and Beta Board Checks

The latest public daemon release checked on October 11 is 0.16.1, published October 7. Versions 0.16.0 and 0.16.1 change gamepad controls: A sits or stands, B picks up, the D-pad chooses stick modes, and holding Select for two to four seconds rests the robot while four seconds powers it off. Read your version and bindings before using the new map.

Pollen Robotics published 0.15.3 on October 6, 0.16.0 later that day, and 0.16.1 on October 7, 2026. GitHub marked 0.16.1 as the latest public release when checked October 11. This site reviewed release notes and the pinned 0.16.1 source; it has not updated or tested a physical robot.

What changed across the three releases?

Changes since the 0.15.2 guide
ReleasePractical changeScope
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.

Read-only baseline on an existing robot or dev board
robotctl version
robotctl update status
robotctl update check daemon
robotctl configure --list
robotctl pad bindings
robotctl health

version 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.

0.16.1 gamepad actions
ControlWhat the official reference says
A / BA toggles sit and stand; B asks for ground pick. On rollers, B asks for crouch.
X / Y; LB / RBX and Y are empty by default and available for skills; bumpers run left and right kicks. Check overrides before relying on a default.
D-padLeft selects move, up selects head, right selects head plus move, and down selects body plus head. These select modes rather than toggling wheel mode.
StartThe 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.
SelectA 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:

Install the stable daemon release intentionally
sudo robotctl update apply daemon

Then 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 ↗.

Check the running result
robotctl version
robotctl pad bindings
robotctl health
robotctl update log
robotctl update show

If 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.

Rollback only when a previous daemon release is installed
sudo robotctl update rollback daemon
robotctl version
robotctl health

The 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 ↗.

Where to go next.

CONTINUE THE CONVERSATION

What would you like to understand next?

Keep the source, your environment and your observations together.