Unknown document
Plugin: Lenovo Accessory
Introduction
The Lenovo Accessory plugin supports the standardized firmware update protocol for Lenovo peripherals. This protocol is MCU-agnostic and supports both HID and BLE transports.
Protocol Support
This plugin enables firmware management across different connection types:
- USB HID: Communicates via Get/Set Feature reports on the
hidrawsubsystem. - Bluetooth LE (BLE): Uses a custom service with dedicated Write/Read characteristics.
Supported Devices
The plugin identifies devices using specific hardware IDs:
HID Devices (Single-bank)
- Normal Mode:
HIDRAW\VEN_17EF&DEV_629DHIDRAW\VEN_17EF&DEV_6201- Bootloader Mode:
HIDRAW\VEN_17EF&DEV_6194(Common bootloader PID)
BLE Devices (Dual-bank)
BLUETOOTH\VID_17EF&PID_61FEBLUETOOTH\VID_17EF&PID_629A
Update Behavior
The update strategy differs based on the device’s memory architecture:
HID (Single-bank Update)
HID devices utilize a single-bank design. For these devices:
- The device must reboot into a dedicated bootloader mode (
DEV_6194) to receive firmware. - The plugin uses
CounterpartGuidlogic to map the runtime device to its bootloader interface. - A final restart is performed to jump back to the new application code.
BLE (Dual-bank / In-place Update)
BLE devices utilize a dual-bank design. For these devices:
- No Bootloader required: Firmware is written to the secondary bank while the device is in runtime mode.
- The device remains functional during the transfer, minimizing user downtime.
- A reboot is only triggered at the end to swap the active banks and apply the update.