I am trying to use both CAN controllers on the BeagleBone Black but am having trouble and could use some help.
I am working with the newest image of for the BeagleBone Black here:
I want to enable both CAN controllers on this image. I have each CAN controller attached to a SN65HVD230 transceiver board, and I verified the operation of them by downgrading to the AM3358 Debian 10.3 2020-04-06 4GB SD IoT image, where they were able to communicate with other CAN devices and receive messages. I have the transceivers attached to (P9.19, P9.20) and (P9.24, P9.26).
On the new image, I am unable to get CAN working at all. I’ve tried getting just one controller working by loading the COMMS cape overlay following similar steps to this forum post:
I set my uEnv.txt
enable_uboot_overlays=1
uboot_overlay_addr4=/lib/firmware/BBORG_COMMS-00A2.dtbo
disable_uboot_overlay_video=1
disable_uboot_overlay_audio=1
I was able to see that that turned on my CAN controller, as ip link showed can0 now and I was able to configure it.
I also ran ls /proc/device-tree/chosen/overlays and the following overlays appear, showing that the .dtbo file was loaded.
![]()
I ran the following commands to configure the CAN controller:
sudo ip link set can0 type can bitrate 500000
sudo ip link set can0 up
candump can0 &
cansend can0 123#DEADBEEF
It does not see any of the messages on the line, and the controller immediately goes down with no message or error returned upon attempting to sending anything. I’ve checked the tx and rx leads with an oscilloscope and see the incoming messages on the line going into the BB, but the BB transmit line stays unchanged whenever I try to send anything. I double checked this for both CAN controllers to be thorough and neither works with this configuration.
I also tried it with the overlays at this repository:
It was able to get both BB-CAN0-00A0.dts and BB-CAN1-00A0.dts compiled to dtbo and loaded with uEnv.txt in the uboot_overlay_addr4 and addr5 replacing the COMMS .dtbo file.
I confirmed that they both loaded with ls /proc/device-tree/chosen/overlays but only one of the controllers showed up with can0 running ip link, and upon configuring it to send and receive messages like before, it had the same behavior.
I’m really not sure what else I can try to get it working on the current image. My best guess as for why I can’t get it working at all even with one CAN controller showing is because of the pin multiplexer not setting properly, but I don’t know how to fix it.
If anyone can help me resolve this issue I would greatly appreciate it.


