Source:
CHANGELOG.md + docs: dm-device runtime commitsMotorBridge 0.4.3 Release Test Note
Date: 2026-06-03Summary
Introduces the Damiaodm-device transport backed by the DaMiao DM_Device SDK
(USB2CANFD, USB2CANFD_DUAL, LINKX4C). The largest transport addition
since the v0.3 line.
Version Alignment
Key Changes
Added
- Damiao
dm-devicetransport backed by DaMiao DM_Device SDK (USB2CANFD,USB2CANFD_DUAL,LINKX4C). Adapter must be in USB mode; Damiao protocol only. - Vendored DM_Device SDK runtime under
third_party/dm_device(Linux/macOS/Windows libraries). DmDeviceBusinmotor_coreand a C++ SDK shim exposing a stable C ABI.- Rust CLI flags
--transport dm-device,--dm-device-type,--dm-channel.usb2canfduses0;usb2canfd-dualuses0/1;linkx4cuses0..3. - ABI constructor
motor_controller_new_dm_device(...). - Python
Controller.from_dm_device(...)and Python CLI--transport dm-device. - Python DM_Device runtime resolver and
motorbridge-install-dm-devicehelper. Wheels do not embed the vendor runtime; the resolver prints the required file, GitHub download URL, cache/source-tree paths, and platform ABI requirements. - WebSocket gateway
dm-devicesupport for Damiao, includingdm_device_typeanddm_channeltarget fields.
Fixed
- Aligned Damiao
dm-devicescans in Rust CLI, Python CLI, and WebSocket gateway to use the stable feedback request path. - Updated
dm-devicescan semantics: omitting--dm-channel/dm_channelscans every channel for the selected adapter; specifying a channel restricts the scan to one physical channel. - Changed Python wheel packaging to omit
libdm_device.so/.dylib/.dllby default to avoid Linux manylinuxauditwheelfailures. - Added readback verification for WebSocket Damiao register writes.
- Softened Damiao WebSocket mode/register confirmation timeouts.
- Fixed Linux aarch64 CI builds via the matching C++ cross compiler.
- Restricted Windows DM_Device runtime selection to x86_64.
Verified
- Runtime ABI requirements documented (Linux x86_64/aarch64).
- Verified USB2CANFD_DUAL channel 0/1 and LINKX4C channel
0..3scan paths on Linux x86_64 when the matching DM_Device runtime is available.