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
と表示されている場合は、ファームウェアの書き込みが必要です