Hello support team,
I am currently working with a Connect S device using RevPi ConCAN and need to transmit a CAN frame on a bus where no additional nodes are present. Since there will be no acknowledgment from other devices, I understand that either one-shot mode or presume-ack needs to be enabled. However, my current setup does not seem to provide these options.
I would appreciate clarification on the following:
Is there any method to enable one-shot or presume-ack functionality on Connect S when used with ConCAN?
Does the CAN interface on Connect 5 support one-shot transmission or presume-ack configuration?
Thank you for your assistance.
Question About CAN Bus Functionality on RevPi Connect 5
-
justinharris92
- Posts: 1
- Joined: 02 Mar 2026, 10:25
Re: Question About CAN Bus Functionality on RevPi Connect 5
Hi,
Unfortunately, neither one-shot nor presume-ack is supported on either platform.
Connect S + ConCAN
The driver for the ConCAN controller does not expose these control modes via SocketCAN.
Connect 5 (built-in CAN FD)
The same limitation applies. On the Connect 5 running the Bookworm image with the mcp251xfd driver, both modes return:
This is not a kernel version issue. Looking at the upstream Linux kernel source, the mcp251xfd driver explicitly defines its supported control modes as LOOPBACK, LISTENONLY, BERR_REPORTING, FD, FD_NON_ISO, CC_LEN8_DLC, TDC_AUTO, and TDC_MANUAL — ONE_SHOT and PRESUME_ACK are absent. This is a driver implementation gap that applies across all kernel versions.
Regards, Amar
Unfortunately, neither one-shot nor presume-ack is supported on either platform.
Connect S + ConCAN
The driver for the ConCAN controller does not expose these control modes via SocketCAN.
Connect 5 (built-in CAN FD)
The same limitation applies. On the Connect 5 running the Bookworm image with the mcp251xfd driver, both modes return:
Code: Select all
sudo ip link set can0 type can bitrate 500000 presume-ack on
# RTNETLINK answers: Operation not supported
sudo ip link set can0 type can bitrate 500000 one-shot on
# RTNETLINK answers: Operation not supportedRegards, Amar
KUNBUS
-
justinharris92
- Posts: 1
- Joined: 02 Mar 2026, 10:25
Re: Question About CAN Bus Functionality on RevPi Connect 5
Thanks for the clarification. In that case, would the only workaround be adding a second node on the bus to provide the ACK, or is there any recommended approach when running a single device setup?Amar wrote: 06 Mar 2026, 14:12
Unfortunately, neither one-shot nor presume-ack is supported on either platform.
Connect S + ConCAN
The driver for the ConCAN controller does not expose these control modes via SocketCAN.
Connect 5 (built-in CAN FD)
The same limitation applies. On the Connect 5 running the Bookworm image with the mcp251xfd driver, both modes return:This is not a kernel version issue. Looking at the upstream Linux kernel source, the mcp251xfd driver explicitly defines its supported control modes as LOOPBACK, LISTENONLY, BERR_REPORTING, FD, FD_NON_ISO, CC_LEN8_DLC, TDC_AUTO, and TDC_MANUAL — ONE_SHOT and PRESUME_ACK are absent. This is a driver implementation gap that applies across all kernel versions.Code: Select all
sudo ip link set can0 type can bitrate 500000 presume-ack on # RTNETLINK answers: Operation not supported sudo ip link set can0 type can bitrate 500000 one-shot on # RTNETLINK answers: Operation not supported
Regards, Amar
Re: Question About CAN Bus Functionality on RevPi Connect 5
Yes, the workaround is a USB-CAN adapter (e.g., PEAK PCAN-USB or any gs_usb-based device) connected to the bus with 120Ω termination at both ends. This gives you a second node on the bus that provides the missing ACK, with no additional drivers needed on Linux.
Since can0 is already the onboard interface, the USB adapter will appear as can1. Bring it up on the same bitrate:
Alternatively, a second CAN node in listen-only mode may also generate ACK bits in practice (controller-dependent), though this isn't guaranteed by the CAN spec.
Regards, Amar
Since can0 is already the onboard interface, the USB adapter will appear as can1. Bring it up on the same bitrate:
Code: Select all
ip link set can1 type can bitrate 500000
ip link set can1 upRegards, Amar
KUNBUS