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

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の場合は、外付け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
  • 1番目はホストコンピュータが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設定を上書きします。実行後はシステムを再起動する必要があります
  • FASTシステムの場合はこの操作は必要ありません!!!!
  • 実際の状況に応じて以下のいずれかの項目を選択してください

  • 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と表示されている場合は、ファームウェアを書き換えてから使用する必要があります
Loading...
- 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 -