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
の場合は、内蔵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)を見つけられない場合です
- 二つ目のエラーはホストコンピュータがCAN0を設定していない、または設定が間違っている場合です
- 三つ目のエラーはホストコンピュータのバッファ不足やシステムの問題によりバッファがクラッシュした場合です
- 二つ目と三つ目のエラーの場合は、以下の「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...