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...