본문으로 건너뛰기

CAN 펌웨어 컴파일

컴파일 시작

  • klipper 서비스가 설치된 상위기기를 사용해야 합니다. 네트워크를 통해 SSH 연결하기
  • 그리고 장치를 상위기에 잘 연결해야 합니다.
  • 주의: 일반적인 상위기기를 사용하십시오. 예를 들어 라즈베리 파이 FLY 패 등입니다. WiFi 스틱, 홍미폰 등의 모modified 상위기는 지원 문제가 많아 기술 지원을 제공할 수 없습니다.
경고
  • ROOT 사용자를 일반 사용자로 전환하려면 아래 명령어를 입력할 수 있습니다.
  • ROOT 사용자는 사용하지 마십시오.
  • fly 사용자는 다음을 입력할 수 있습니다: su fly. fly 사용자가 아닌 경우 <상위기기 사용자 이름>을 상위기기의 사용자 이름으로 바꾸십시오!
su <상위기기 사용자 이름>
  • 请确保上位机可以正常联网
  • 固件编译前需要使用SSH通过网络登录上位机
  • 请不要使用串口工具登录上位机

Klipper固件编译和配置页面操作说明

请确保键盘输入法为半角模式,即英文模式

  1. 键盘上键,下键,用于上下移动光标来选中菜单项
  2. 确认键Enter 或 空格键Space,用于勾选菜单或进入子菜单
  3. 退出键ESC,用于返回上一级菜单
  4. Q键,用于退出Klipper固件配置页面
  5. Y键,在退出Klipper固件配置页面时,如果有提示,则点击Y键保存配置文件
경고

如果配置页面选项比较少,请先勾选[ ] Enable extra low-level configuration options,用于显示部分隐藏选项

아래는 펌웨어를 컴파일하는 방법을 소개합니다:

  • SSH에 연결한 후 아래 명령어를 입력하고 Enter를 누릅니다:

    cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig
  • 그 중 rm -rf ~/klipper/.config && rm -rf ~/klipper/out는 이전의 컴파일 데이터와 펌웨어를 삭제하고 make menuconfig는 펌웨어를 컴파일하며, 실행하면 아래와 같은 화면이 나타납니다:

  • Enable extra low-level configuration options를 선택하고 Enter를 누릅니다.

  • Micro-controller Architecture 메뉴로 들어가 Raspberry Pi RP2040/RP235x를 선택하고 Enter를 누릅니다.

  • Bootloader offset를 선택하고: 16KiB bootloader를 선택합니다.

  • Communication interface를 선택하고: CAN bus를 선택합니다.

  • (4) CAN RX gpio number를 선택하고 4를 삭제한 뒤 1을 입력합니다.

  • (5) CAN TX gpio number를 선택하고 5를 삭제한 뒤 0을 입력합니다.

  • micro-controller 시작 시 설정할 GPIO 핀 선택, 입력: !gpio5
경고

!gpio5를 입력하기 전에 반드시 영문 입력 상태로 변환하시기 바랍니다.

  • 위의 이미지와 동일한지 반드시 확인 후 다음 단계로 진행하시기 바랍니다
  • Q 키를 누르면 Configuration 저장이 표시되고, 이때 Y 키를 누릅니다
  • 이제 설정이 저장되었으며 명령행 화면으로 돌아왔습니다
  • 아래 명령어를 입력하여 컴파일을 시작합니다 (시간이 다소 걸립니다)
make -j4
  • 최종적으로 아래 내용이 출력되면 컴파일 성공입니다

    Linking out/klipper.elf
    Creating bin file out/klipper.bin

상위 기기 설정

경고

만약 상위 기기가 FLY 상위 기기라면 상위 기기 설정은 실행하지 않으셔도 됩니다.

경고

만약 상위 기기가 FLY 상위 기기가 아니라면 아래 단계를 수행하시기 바랍니다.

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 구성 정보를 덮어씁니다. 명령어 실행 후 시스템 재부팅이 필요합니다
  • Klipper 기본 CAN 속도는 1M이며, 권장 속도는 1M입니다
경고

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

장치 검색

  • 상위 기기(PC)가 정상적으로 네트워크에 연결되었는지 확인하고, 하위 기기가 상위 기기에 연결된 데이터선이 데이터 전송 기능을 가지고 있는지 확인하세요.
  • 상위 기기로 SSH 연결 후 다음 명령어를 입력하고 Enter를 누릅니다: lsusb. 아래 이미지에서 동그라미 표시된 정보가 나타나면 다음 단계로 진행할 수 있습니다.
    • 아무런 정보도 반환되지 않는 경우, 이는 상위 기기의 시스템 문제입니다. 해결할 수 없으므로, 정상적인 시스템으로 교체하거나 상위 기기를 교체해야 합니다.
    • lsusb 명령어가 없다고 표시되면 다음 명령어를 실행하여 설치할 수 있습니다:
      sudo apt-get install usbutils
  • 1d50:606f는 이번에 사용할 장치입니다.
  • 일부 상위 기기는 시스템 문제로 인해 장치가 제대로 표시되지 않을 수 있습니다.
  • lsusb 명령어를 입력했을 때 장치가 표시되지만 1d50:606f가 나타나지 않는 경우, 데이터선을 교체하거나 메인보드를 상위 기기의 다른 USB 포트에 연결해 보세요.
주의사항

1d50:606f가 표시될 때만 다음 단계로 진행할 수 있습니다.

펌웨어 플래시

  • 펌웨어 플래시 전에 XT30 데이터 케이블을 도구 보드를 UTOC 또는 Bridge 펌웨어가 설치된 메인 보드에 연결합니다. 아래는 참조 연결도입니다
  • 다이얼 스위치가 해당 위치에 있는지 반드시 확인하시기 바랍니다
  • CAN H와 CAN L의 저항값을 전원을 끈 상태에서 멀티미터로 측정했을 때 약 60Ω 정도인지 확인해야 합니다. 만약 120Ω라면 120Ω 점퍼를 연결하고, 40Ω 정도라면 점퍼를 제거해야 합니다

::: 팁

  • ID 찾기 및 펌웨어 갱신은 모두 프린팅 중에 하지 않는 것이 좋습니다.
  • 동일한 메인보드 또는 Katapult 도구 보드의 CAN 펌웨어와 Klipper의 CAN 펌웨어는 그들의 ID가 완전히 일치합니다.

:::

::: 주의

  • 호스트 컴퓨터의 CAN 네트워크가 구성되었는지 확인하시기 바랍니다.
  • lsusb 명령 후에 1d50:606f가 나타날 경우만 아래 명령어를 사용하여 CAN ID를 검색할 수 있습니다.
  • 도구 보드의 CAN 속도가 호스트 컴퓨터와 같지 않으면 ID를 찾을 수 없으며, 펌웨어 갱신이 실패할 수 있습니다.

:::

  • CANBus UUID를 조회하기 위해 다음 명령어를 실행하세요:

    ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0

    fast 시스템에서는 이 명령어를 사용하여 펌웨어를 갱신하십시오. <your mainboard ID>를 이전 단계에서 조회된 ID로 대체하십시오.

    python ~/klipper/scripts/canbus_query.py can0
    • 명령을 입력하면 기기에 따라 다음과 같은 몇 가지 경우가 나타납니다:

      • 첫 번째 경우: 브리지 펌웨어가 설치된 메인보드에서 한 개의 ID가 표시되고 "Application: Klipper"라는 메시지가 나타납니다.
      • 두 번째 경우: 브리지 펌웨어가 설치된 메인보드와 함께 펌웨어를 갱신해야 하는 도구 보드가 연결된 경우 두 개의 ID가 표시됩니다.
      • 세 번째 경우: UTOC와 함께 펌웨어를 갱신해야 하는 도구 보드를 사용하는 경우
      • 팁: UTOC는 ID가 표시되지 않습니다.
      • 네 번째 경우: ID가 표시되지 않으며 일반적으로 Klipper에 의해 점유된 경우입니다. 상위 컴퓨터의 CAN0 속도가 올바르지 않거나 배선 문제가 있을 수 있습니다.
    • 일반적으로 펌웨어를 갱신해야 하는 도구 보드가 CANBOOT 상태일 경우 "Application: CanBoot"라는 메시지와 함께 해당 펌웨어 LED가 깜박거립니다. 이 경우 Klipper 펌웨어를 갱신해야만 연결할 수 있습니다!!!

    • 팁: Klipper 펌웨어를 사용하고 이미 ID를 설정한 경우, ID는 표시되지 않으며 Klipper에 의해 점유됩니다. 이 경우 해당 ID를 비활성화하고 메인보드를 완전히 전원을 끈 후 다시 시작해야 합니다.

    ::: 주의

    • UUID를 찾지 못한 경우 아래 문서를 참조하세요
    • CAN 문제 집합

    :::

펌웨어 갱신

  • 아래 명령어에서 241696050c56를 UUID를 찾은 UUID로 대체하십시오. -u 뒤에는 공백이 있습니다.

    python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
  • 아래 그림과 같이 "CAN Flash Success"라는 메시지가 나타나면 성공적으로 갱신되었습니다.

펌웨어 업데이트

  • 펌웨어를 갱신하려면 컴파일된 펌웨어를 다시 실행하여 갱신하면 됩니다.
  • 그러나 대응되는 ID를 찾을 수 있거나 Klipper가 연결되어 있는지 반드시 확인하십시오.
    python3 ~/klipper/lib/canboot/flash_can.py -u  <MCU ID>

펌웨어 정상 작동 여부 확인

  • 펌웨어가 정상적으로 시작되면 LED가 점등됩니다

- 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 -