Skip to content

peak: add raw-USB driver for PCAN-USB FD family#113

Merged
pd0wm merged 1 commit into
mainfrom
peak-usb-driver
Jun 24, 2026
Merged

peak: add raw-USB driver for PCAN-USB FD family#113
pd0wm merged 1 commit into
mainfrom
peak-usb-driver

Conversation

@pd0wm

@pd0wm pd0wm commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Implements a raw-USB (rusb) CAN adapter for the PEAK PCAN-USB FD family, speaking the uCAN command/message protocol directly over the USB bulk endpoints without the in-kernel driver or SocketCAN. Supports classic CAN and CAN-FD with full nominal and data-phase bit-timing control via BitrateBuilder, and uses CanAdapter::buffer_size for hardware flow control.

Adds scripts/peak_usb_unbind.sh to detach the kernel driver so the device can be driven over raw USB, wires the adapter into get_adapter(), and adds the peak bulk stress tests behind the test-peak feature.

Implements a raw-USB (rusb) CAN adapter for the PEAK PCAN-USB FD family,
speaking the uCAN command/message protocol directly over the USB bulk
endpoints without the in-kernel driver or SocketCAN. Supports classic CAN
and CAN-FD with full nominal and data-phase bit-timing control via
BitrateBuilder, and uses CanAdapter::buffer_size for hardware flow control.

Both the command and frame TX paths honor the byte count returned by the
USB write so a short write requeues unsent frames instead of dropping them.

The in-kernel peak_usb driver is detached automatically on open; the README
documents the udev rule needed for non-root USB access. Wires the adapter
into get_adapter() and adds the peak bulk stress tests behind the test-peak
feature.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@pd0wm pd0wm force-pushed the peak-usb-driver branch from c81010b to 6f652f4 Compare June 24, 2026 14:08
@pd0wm pd0wm merged commit c882ca5 into main Jun 24, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant