OpenLogi
Features

0x00c2 · dfuControlSigned

Gate entry into DFU mode with a cryptographic signature check before a firmware image transfer can begin.

A HID++ 2.0 Device Firmware Upgrade control feature that governs how a host initiates a signed firmware update on mice, keyboards, headsets, and other Logitech wireless peripherals. It is one of the dfuControl feature variants (0x00c0 / 0x00c1 / 0x00c2 / 0x00c3); this signed variant requires the device to validate a cryptographic signature before accepting a DFU request, providing stronger authenticity guarantees than unsigned predecessors. The actual firmware transfer is handled separately by 0x00d0 dfu once the device is placed in DFU mode.

Not implemented in OpenLogi

OpenLogi's vendored hidpp crate does not provide a typed wrapper for this feature yet. The notes below summarise the HID++ feature in general terms, not OpenLogi behaviour.

What it does

0x00c2 dfuControlSigned acts as the gatekeeper that must be successfully negotiated before a firmware image can be transferred to the device. In general terms it provides:

  • A way for the host to request that the device enter DFU (Device Firmware Upgrade) mode, after which the device reboots into a firmware-update bootloader.
  • Queries to determine whether DFU mode is available and whether a firmware update is already in progress.
  • Enforcement of a cryptographic signature check: the device will only accept a DFU request that is accompanied by a valid signature, preventing arbitrary or tampered firmware from being flashed.
  • Coordination with 0x00d0 dfu, which takes over once the device is in DFU mode to stream the actual firmware payload.

The signature requirement distinguishes this variant from 0x00c0 and 0x00c1; 0x00c3 dfuControlV3 extends the family further. Because entering DFU mode causes the device to temporarily go offline, host software must be prepared to re-enumerate the device after the bootloader reboots back to normal firmware.

Status: Not implemented · Feature ID: 0x00c2 · See also: 0x00d0 dfu

On this page