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

CAN問題集

検索デバイス前注意事項

  • CAN IDを検索する前に、まずSSHに接続しますしてください
  • ネットワークからSSHにログインしていることを確認してください(シリアルポートからのログインではありません)
  • UTOCが接続されているか、またはCANブリッジファームウェアが書き込まれたマザーボードが接続されており、コンピュータへの接続ケーブルがデータ転送機能を持っていることを確認してください

デバイスの存在を確認

  • 現在、あなたはコンピュータに正常にログインしました。以下のいずれかの状況が表示されます
    • 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
  • 最初のエラーは、コンピュータがCANデバイス(USBブリッジファームウェアが書かれたマザーボードまたはUTOC)を見つけられなかったことを示しています
  • 2番目のエラーは、コンピュータがCAN0を正しく設定または構成していないことを示しています
  • 3番目のエラーは、コンピュータのキャッシュ不足やシステムの問題によりキャッシュがクラッシュしたことを示しています
  • 2番目と3番目のエラーについては、以下のCAN0の設定を見て問題を特定してください
  • IDが検出されない場合は、最後の方を参照してください

コンピュータがCANをサポートしているか確認

  • FLYコンピュータの場合、この手順は必要ありません
  • システムが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を無効にしてからシャットダウンし、電源を切り、再起動するか、マザーボードのリセットボタンを押してください
  • コンピュータの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と表示される場合、ファームウェアをフラッシュする必要があります