CAN 문제 모음
장치 검색 전 주의사항
- CAN ID 검색 전에 먼저 SSH에 연결하십시오.
- SSH에 네트워크를 통해 로그인했는지 확인하십시오. 시리얼 포트를 통해 로그인한 것이 아님을 확인하십시오.
- UTOC에 연결되었거나 CAN 브리지 펌웨어가 설치된 메인보드를 사용하고 있으며, 상위 컴퓨터와 연결된 데이터 케이블이 데이터 전송 기능을 지원하는지 확인하십시오.
장치 존재 확인
- 이제 상위 컴퓨터에 정상적으로 로그인한 상태에서
lsusb명령어를 입력하여 장치를 검색할 수 있습니다. 다음과 같은 경우 중 하나가 발생할 수 있습니다.lsusb를 입력했을 때ls명령어를 찾을 수 없다면 아래 명령어를 사용하여 설치할 수 있습니다.sudo apt-get install usbutilslsusb를 입력했을 때 아무 반응도 없다면 이는 시스템 문제이며, 시스템을 교체하거나 정상적인 시스템을 사용해야 합니다.- 아래 그림과 같은 정보가 나타납니다. 참고용이므로
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시스템은 이 작업을 수행할 필요가 없습니다. !!!!!!- 실제 상황에 따라 아래 중 하나를 선택하여 수행하십시오.
- 일반 Linux 시스템 설정 방법
- 라즈베리파이 시스템 설정 방법
일반 Linux 시스템 설정 방법
-
사용하는 장치에 따라 적절한 CAN 속도로 설정해야 합니다.
-
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 -
비슷한 메시지가 나타난다면 라즈베리파이 시스템 설정 방법을 확인하십시오.
라즈베리파이 시스템 설정 방법
- 라즈베리파이 시스템에 적용되며, 다른 시스템은 일반 Linux 시스템 설정 방법을 사용하십시오.
.network파일을 생성합니다. 이 설정의BitRate는 실제 상황에 따라 변경할 수 있습니다. 예를 들어1000000을500000으로 변경할 수 있습니다.sudo tee /etc/systemd/network/99-can.network > /dev/null <<'EOF'
[Match]
Name=can*
[CAN]
BitRate=1000000
RestartSec=100ms
EOF.link파일을 생성합니다. 이 설정의TxQueueLength는 CAN 버퍼이며 수정하지 않는 것이 좋습니다.sudo tee /etc/systemd/network/99-can.link > /dev/null <<'EOF'
[Match]
OriginalName=can*
[Link]
TxQueueLength=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...