CAN 문제 모음
장치 검색 전 주의사항
- CAN ID 검색 전 먼저 SSH에 연결하세요.
- SSH에 네트워크를 통해 로그인했는지 확인하세요. 시리얼 포트를 통해 로그인한 경우는 제외됩니다.
- UTOC에 연결되었거나 CAN 브리지 펌웨어가 설치된 메인보드와 연결되어 있으며, 상위 컴퓨터와 연결된 케이블이 데이터 전송 기능을 지원하는지 확인하세요.
장치 존재 여부 확인
- 이제 상위 컴퓨터에 정상적으로 로그인한 상태라면
lsusb
명령어를 입력하여 장치를 검색할 수 있습니다. 다음과 같은 경우가 발생할 수 있습니다.lsusb
입력 시ls
명령어를 찾을 수 없다면 아래 명령어를 입력하여 설치하세요.sudo apt-get install usbutils
lsusb
입력 후 아무 반응이 없다면 이는 시스템 문제입니다. 시스템을 교체하거나 정상적인 시스템을 사용해야 합니다.- 아래 이미지와 같은 정보가 나타납니다. 참고용이므로
1d50:606f
가 표시되는지만 확인하시면 됩니다.
1d50:606f
는 이번에 사용할 장치입니다. 뒤에 나오는 내용은 무시하셔도 됩니다. 시스템 문제로 인해 표시가 불완전하거나 전혀 표시되지 않을 수 있습니다.- 여러 개의
1d50:606f
가 있다면 하나만 남기고 제거하는 것이 좋습니다. 그렇지 않으면 펌웨어 플래싱 및 연결에 문제가 발생할 수 있습니다. 예를 들어FLY MINI PAD
는 외부 CAN 브리지 장치가 아닌 내장형 UTOC를 사용하는 것이 좋습니다. - 없다면 케이블 연결 상태와 펌웨어가 올바르게 설치되었는지 확인하세요.
주의사항
1d50:606f
가 나타날 때만 CAN ID를 검색할 수 있습니다.
오류 메시지로 문제 판단
- 다음은 자주 발생하는 오류입니다.
- 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
- 첫 번째는 상위 컴퓨터에서 CAN 장치(USB 브리지 펌웨어가 설치된 메인보드 또는 UTOC)를 찾을 수 없는 경우입니다.
- 두 번째는 상위 컴퓨터에서 CAN0을 설정하지 않았거나 잘못 설정한 경우입니다.
- 세 번째는 상위 컴퓨터의 버퍼 공간 부족 또는 시스템 문제로 인해 버퍼가 충돌한 경우입니다.
- 두 번째와 세 번째 문제는 아래의 CAN0 설정 부분을 참고하여 문제를 진단할 수 있습니다.
- ID 검색이 안 되는 경우는 맨 아래 부분을 참고하세요.
상위 컴퓨터의 CAN 지원 여부 확인
- FLY 상위 컴퓨터를 사용하는 경우 이 단계는 건너뛰어도 됩니다.
- 시스템이
Ubuntu
인 경우Ubuntu 설정 CAN0
문서는 아직 업데이트되지 않았습니다. - 아래 명령어를 입력하여 시스템이 CAN을 지원하는지 확인합니다.
sudo modprobe can && echo "커널이 CAN을 지원합니다." || echo "커널이 CAN을 지원하지 않습니다."
- 위 명령어를 입력한 후 커널이 CAN을 지원하면
커널이 CAN을 지원합니다.
가, 지원하지 않으면커널이 CAN을 지원하지 않습니다.
가 반환됩니다. 커널이 CAN을 지원합니다.
가 반환되면 다음 단계인 CAN0 설정을 진행할 수 있습니다.
CAN0 설정
- 이 명령어는 기존 시스템의 CAN0 설정을 덮어쓰며, 실행 후 시스템을 재시작해야 합니다.
FAST
시스템은 이 작업을 수행할 필요가 없습니다. !!!!!!- 실제 상황에 따라 항목 하나를 선택하세요.
- 1M 속도로 설정하려면 아래 명령어를 입력합니다.
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
- 500K 속도로 설정하려면 아래 명령어를 입력합니다.
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
- 장치 재시작
sudo reboot
ID 검색 실패 시 확인해야 할 사항
- Klipper에 해당 ID가 설정되어 있다면 시스템 설정에서 ID를 비활성화한 후 전원을 끄고 다시 켜거나 메인보드의 리셋 버튼을 눌러야 할 수 있습니다.
- 상위 컴퓨터의 CAN 속도와 메인보드, 툴보드 등이 일치하는지 확인하세요.
- 아래 코드를 사용하여 상위 컴퓨터의 CAN 속도를 확인할 수 있습니다.
- 선이 끊어지지 않았는지 확인하세요.
- 툴보드와 장치(USB 브리지 펌웨어가 설치된 메인보드 또는 UTOC) 사이에
120Ω
점퍼가 설치되어 있는지 확인하세요. 120Ω
점퍼가 설치되어 있다면 장치의 전원이 꺼진 상태에서 멀티미터로 CAN H와 CAN L 사이의 저항값이 약60Ω
인지 확인하세요.- 선이 끊어지지 않았는지 다시 확인하세요.
ip -details link show can0
- 아래 이미지에서 원이 그려진 부분이 상위 컴퓨터의 CAN 속도와 버퍼입니다.
- 위의
1024
는 현재 CAN0의 버퍼 크기입니다. - 아래의
1000000
은 현재 CAN0의 속도입니다.

-
여전히 UUID를 찾을 수 없다면 아래 사항을 꼼꼼히 확인해야 합니다.
- 메인보드나 CAN 툴보드가 올바르게 연결되었는지 확인하세요.
- 올바르게 전원이 공급되고 있는지 확인하세요. 메인보드 사용 시 VCC 전원을 연결하는 것이 좋습니다.
- 상위 컴퓨터가 CAN 네트워크를 지원하는지 확인하세요.
- CAN 저항값이 약
60Ω
인지 확인하세요. - 펌웨어 컴파일이 올바르게 되었는지 확인하세요.
ID 검색
- 아래 명령어를 입력하여 ID를 검색하세요.
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
- ID가 나타나고 마지막의
Application:
에Klipper
라고 표시되면 해당 ID를 바로 사용할 수 있습니다. - ID가 나타나고 마지막의
Application:
에CANBOOT
또는Katapult
라고 표시되면 펌웨어를 새로 설치해야 사용할 수 있습니다.
Loading...