Skip to main content

CAN FAQ

Precautions Before Searching for Devices

  • Before searching for a CAN ID, please connect to SSH
  • Please ensure that you are logging in to SSH via network rather than serial port
  • Please ensure that a UTOC or a motherboard with CAN bridge firmware already flashed is properly connected, and that the data cable connecting to the host computer supports data transfer

Confirming Device Presence

  • Now that you have successfully logged into the host computer, you can enter lsusb to search for devices. There will be one of the following situations:
    • If entering lsusb prompts that the ls command is not found, you can install the command by entering the following command:
      sudo apt-get install usbutils
    • If nothing happens after entering lsusb, this is a system issue that cannot be resolved here. You need to change the system or use a system that you know works properly
    • The information shown in the image below is only for reference. You only need to confirm that 1d50:606f appears:
  • 1d50:606f is the device you will use this time. You can ignore the following prompts because system issues may cause incomplete display or no display at all
  • If there are multiple 1d50:606f, it is recommended to exclude one, otherwise it will affect subsequent firmware flashing and connection. For example, for FLY MINI PAD, it is recommended to use the onboard UTOC instead of other CAN bridge devices
  • If not found, please check whether the data cable is properly connected and whether the firmware was flashed correctly.
Note

You can only proceed to search for the CAN ID when 1d50:606f is present

Identifying Issues Based on Errors

  • Below are common errors:
    • OSError: [Errno 19] No such device
    • can.CanError: Failed to transmit: [Errno 100] Network is down
    • can.CanError: Failed to transmit: [Errno 105] No buffer space available
  • The first case indicates the host computer cannot find the CAN device (motherboard with USB bridge firmware or UTOC)
  • The second case indicates the host computer did not configure or misconfigured CAN0
  • The third case indicates insufficient buffer or system issues causing buffer failure
  • For the second and third cases, please refer to the CAN0 configuration section below for troubleshooting
  • If ID cannot be found, please check the bottom section

Checking Host Computer CAN Support

  • This step is not required if using a FLY host computer
  • If your system is Ubuntu, the document Ubuntu configuration CAN0 has not been updated yet
  • Enter the following command to determine whether the system supports CAN:
sudo modprobe can && echo "Your kernel supports CAN" || echo "Your kernel does not support CAN"
  • After entering the above command, if your kernel supports CAN, it will return: Your kernel supports CAN; if not, it will return: Your kernel does not support CAN
  • If it returns Your kernel supports CAN, you can proceed to the next step to configure CAN0

Configuring CAN0

  • This command overwrites the original system CAN0 configuration. After execution, the system needs to be restarted
  • FAST system does NOT need to perform this operation !!!!!!
  • Select one of the following based on actual needs

  • For 1M baud rate, enter the following command:
sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig $IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 1000000
pre-up ip link set can0 txqueuelen 1024
EOF

  • For 500K baud rate, enter the following command:
sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 500000
up ifconfig $IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 500000
pre-up ip link set can0 txqueuelen 1024
EOF
  • Restart the device
sudo reboot

Things to Check If ID Cannot Be Found

  • If Klipper has configured a corresponding ID, you need to disable the ID in system settings, then power off, disconnect power, and power on again or press the reset button on the motherboard
  • Whether the CAN baud rate of the host computer matches that of the motherboard, tool board, etc.
  • You can use the following code to confirm the CAN baud rate of the host computer
  • Check if there is any disconnected wiring
  • Whether a 120Ω jumper is installed between the tool board and the device (motherboard with USB bridge firmware or UTOC)
  • If a 120Ω jumper is installed, use a multimeter to measure the resistance between CAN H and CAN L with the device completely powered off. The resistance should be around 60Ω
  • Check if there is any disconnected wiring
ip -details link show can0
  • The circled area in the image below shows the CAN baud rate and buffer size of the host computer
  • The 1024 above is the current CAN0 buffer size
  • The 1000000 below is the current CAN0 baud rate
  • If the UUID still cannot be found, please carefully check the following:

    • Check if the motherboard or CAN tool board is properly connected
    • Whether proper power supply is connected; it is recommended to connect the VCC power supply when using the motherboard
    • Whether the host computer supports CAN networking
    • Whether the CAN resistance is around 60Ω
    • Whether the firmware is compiled correctly

Searching for ID

  • Enter the following command to search for ID:
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
  • If an ID appears and the last Application: shows Klipper, this ID can be used directly
  • If an ID appears and the last Application: shows CANBOOT or Katapult, the firmware needs to be flashed before use
Loading...
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -