Skip to main content

Features

  • GET /usb/devices on the Lager Box enumerates every USB device on the bus from sysfs (vendor/product id, serial, product, manufacturer, bus/dev numbers, speed) with optional vid/pid/serial filters. The scan is a few milliseconds and takes no exclusive device access, so it is safe to poll while waiting for a DUT to re-enumerate after a hub power-cycle or DFU detach. Consumed by lager-rs as usb_devices().
  • POST /usb/dfu on the Lager Box runs dfu-util for USB-DFU flashing: list, download (base64 firmware, with optional vid:pid / serial / alt / DfuSe address / reset), and detach. A missing binary returns a clear install hint (lager box-config apt add dfu-util). Consumed by lager-rs as dfu().

Improvements

  • USB hub drivers cache discovery metadata per physical hub. Each Acroname or YKUSH operation previously re-ran a full device discovery scan. The drivers now cache the discovery result — the hub’s link specification and hub class for Acroname, the resolved HID device path for YKUSH — and connect directly from it, while still releasing the hub after every operation so other processes (for example a lager python test) can claim it. This removes redundant discovery scans. It does not restore the ~80ms hub-port timings seen before 0.32.1: measured on a USBHub3p, a hub-port operation costs ~2.1s, of which ~1.8s is the per-operation disconnect required to leave the hub unclaimed and ~0.3s is discovery. Where the hub class is identified correctly on the first attempt, the cache saves no measurable time.

Installation

To install this version:
To upgrade from a previous version:

Resources

View Release on PyPI