Repository navigation
First release validated on physical adapters: two X1 units (firmware 2.2.4.10)
wired together — bidirectional classical CAN and CAN FD across 125 k – 1 Mbit/s
with data phases to 5 Mbit/s, every DLC length, extended IDs, RTR, software
filters, termination, TX echoes, and zero-loss 1000-frame bursts.
Changes since 0.1.0a1
- Fixed silent first-frame loss after channel open: the firmware discards
bulk frames submitted while switching operating modes, so channel open now
waits 10 ms after the mode command before returning. - Automatic recovery of channels that come up latched in bus-off (about 4%
of opens on Gen2/2.5 firmware), using the reference driver's loopback
dummy-frame procedure; opens that stay bus-off fail with
CanInitializationErrorinstead of silently dropping frames. - Added
BusMustBus.recover_bus_off(), the BMAPIBM_RecoverBusOff()
equivalent: firmware-side recovery (control0xF5) on Gen2/2.5 firmware
≥ 2.6.0.0 and Gen3 ≥ 3.1.0.0, with the retried loopback dummy-frame fallback
for older adapters.send()probes controller health at most twice a second
and raisesCanOperationErrorwhile bus-off instead of silently discarding
frames, or recovers and retries once whenauto_recover_bus_off=True. The
firmware version is read at open and shown inchannel_info. - Hardened interpreter-exit cleanup: open channels are released
best-effort, closed sessions never touch libusb again, and a wedged reader
no longer corrupts cleanup.