メインコンテンツまでスキップ

CAN問題集

検索デバイス前の注意事項

  • CAN IDを検索する前にまずSSHに接続
  • ネットワーク経由でSSHにログインしていることを確認してください。シリアルポートではログインしないでください
  • UTOCが接続されているか、CANブリッジファームウェアが書き込まれたマザーボードが接続されていることを確認し、データ線がデータ転送機能を持つことを確認してください

デバイスが存在するか確認

  • 今、あなたはホストPCに正常にログインしています。lsusbを入力してデバイスを検索すると、以下のいずれかの状況が発生します
    • lsusbを入力してlsコマンドが見つからない場合は、以下のコマンドでインストールできます
      sudo apt-get install usbutils
    • lsusbを入力して何も反応がない場合は、システムの問題で対処できないため、システムを変更するか、正常に動作するシステムを使用してください
    • 以下の画像に示される情報が表示されますが、これは参考情報です。1d50:606fが表示されていることを確認してください
  • 1d50:606fは今回使用するデバイスです。後続のメッセージは気にしなくて大丈夫です。システムの問題により一部が表示されないか、全く表示されない可能性があります
  • 複数の1d50:606fがある場合は、1つを除外することをお勧めします。そうしないと、後続の書き込みやファームウェア接続に影響を与える可能性があります。例えば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
  • 1つ目はホストPCがCANデバイス(USBブリッジファームウェアが書き込まれたマザーボードやUTOC)を見つけられないこと
  • 2つ目はホストPCがCAN0を設定していないか、設定が間違っていること
  • 3つ目はホストPCのバッファが不足しているか、システムの問題などでバッファが崩壊すること
  • 2点目と3点目については、下記のCAN0設定を参照して問題を調査してください
  • IDが検索できない場合は、最下部を参照してください

ホストPCがCANをサポートしているか確認

  • FLYホストPCの場合は、この操作は不要です
  • あなたのシステムがUbuntuの場合はUbuntuでCAN0を設定する必要がありますが、このドキュメントはまだ更新されていません
  • 以下のコマンドを入力してシステムがCANをサポートしているか確認します
sudo modprobe can && echo "あなたのカーネルはCANをサポートしています" || echo "あなたのカーネルはCANをサポートしていません"
  • 上記コマンドを入力後、あなたのカーネルがCANをサポートしている場合は「あなたのカーネルはCANをサポートしています」と表示されます。サポートしていない場合は「あなたのカーネルはCANをサポートしていません」と表示されます
  • 「あなたのカーネルは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を無効にしてから電源を切り、再起動するか、マザーボードのリセットボタンを押してください
  • ホストPCのCAN速度がマザーボードやツールボードと一致しているか
  • 以下のコードを使用してホストPCのCAN速度を確認できます
  • 断線がないか確認してください
  • ツールボードとデバイス(USBブリッジファームウェアが書き込まれたマザーボードやUTOC)の間に120Ωのジャンパが取り付けられているか
  • 120Ωのジャンパが取り付けられている場合は、デバイスが完全に電源オフの状態で、CAN HとCAN Lの抵抗値が60Ω付近であることをマルチメーターで測定してください
  • 断線がないか確認してください
ip -details link show can0
  • 以下の画像で囲まれた部分がホストPCのCAN速度とバッファです
  • 上の1024は現在のCAN0バッファ
  • 下の1000000は現在のCAN0速度
  • それでもUUIDが見つからない場合は、以下の注意事項を注意深く確認してください

    • マザーボードまたはCANツールボードが正しく接続されているか確認
    • 電源が正しく供給されているか、VCC電源を接続することを推奨
    • ホストPCがCANネットワークをサポートしているか
    • CAN抵抗値が60Ω付近にあるか
    • ファームウェアが正しくコンパイルされているか

IDの検索

  • 以下のコマンドを入力してIDを検索
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
  • IDが表示され、最終行のApplication:Klipperと表示されている場合は、そのIDを直接使用できます
  • IDが表示され、最終行のApplication:CANBOOTまたはKatapultと表示されている場合は、ファームウェアの書き込みが必要です