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
의 경우 보드 내장 UTOC를 사용하고 다른 CAN 브리지 장비는 사용하지 않는 것이 좋습니다. - 만약 없다면 데이터 케이블이 제대로 연결되었는지, 펌웨어가 제대로 깔렸는지 확인해야 합니다.
주의사항
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 장치(CAN 브리지 펌웨어가 깔린 메인보드 또는 UTOC)를 찾지 못함을 의미합니다.
- 두 번째는 상위 기기가 CAN0를 잘못 설정하거나 구성했음을 의미합니다.
- 세 번째는 상위 기기의 버퍼가 부족하거나 시스템 문제로 인해 버퍼가 꺼졌음을 의미합니다.
- 두 번째와 세 번째는 아래의 CAN0 설정을 참조하여 문제를 파악할 수 있습니다.
- ID를 찾지 못했다면 마지막 부분을 참조하세요.
상위 기기가 CAN을 지원하는지 확인
- FLY 상위 기기는 이 작업을 수행할 필요가 없습니다.
- 시스템이
Ubuntu
라면Ubuntu CAN0 설정
문서가 아직 업데이트되지 않았습니다. - 시스템이 CAN을 지원하는지 확인하려면 아래 명령어를 입력하세요.
sudo modprobe can && echo "Kernel은 CAN을 지원합니다." || echo "Kernel은 CAN을 지원하지 않습니다."
- 위 명령어를 실행한 후, Kernel이 CAN을 지원하면
Kernel은 CAN을 지원합니다.
라는 메시지가 반환됩니다. 그렇지 않으면Kernel은 CAN을 지원하지 않습니다.
라는 메시지가 반환됩니다. Kernel은 CAN을 지원합니다.
라는 메시지가 반환되면 CAN0 설정을 진행할 수 있습니다.
CAN0 설정
- 이 명령은 기존의 CAN0 설정을 덮어쓰므로 설정이 완료된 후에는 시스템을 재시작해야 합니다.
- 실제 상황에 따라 아래 중 하나를 선택해야 합니다.
- 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 속도를 확인할 수 있습니다.
- 선이 끊어졌는지 확인하세요.
- 도구보드와 장치(펌웨어가 깔린 메인보드 또는 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
로 표시되면 펌웨어를 업데이트해야만 사용 가능합니다.