CANネットワーク設定とID検索
使用前の注意
- UTORまたはCANブリッジファームウェアを書き込んだマザーボードをUSB経由でホストコンピュータに接続します。
- ホストコンピュータのバックエンドにはネットワーク経由でログインしてください。シリアルポートは使用しないでください。
- FlyOS-FASTシステムを使用している場合、CANの設定は不要です(システムは1Mbps速度、1024キャッシュで事前設定されています)。
ホストコンピュータがCANをサポートしているか確認
FLYホストコンピュータを使用している場合はこの手順をスキップできます。
以下のコマンドを実行してカーネルのCANサポートを確認します:
sudo modprobe can && echo "カーネルはCANをサポートしています" || echo "カーネルはCANをサポートしていません"
「カーネルはCANをサポートしています」と表示された場合は、設定を続行できます。
CAN0の設定
⚠️ この操作は既存のCAN0設定を上書きします。完了後、システムを再起動する必要があります。 FASTシステムは実行不要!
システムタイプに応じて対応する設定方法を選択してください:
- 通常のLinuxシステム
- Raspberry Piシステム
通常のLinuxシステム
1Mbps速度設定:
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
500Kbps速度設定:
上記コマンドの 1000000 を 500000 に変更してください。
Raspberry Piシステム
ネットワーク設定ファイルを作成します(BitRate値は変更可能):
sudo tee /etc/systemd/network/99-can.network > /dev/null <<'EOF'
[Match]
Name=can*
[CAN]
BitRate=1000000
RestartSec=100ms
EOF
リンク設定ファイルを作成します(キャッシュは変更しないことをお勧めします):
sudo tee /etc/systemd/network/99-can.link > /dev/null <<'EOF'
[Match]
OriginalName=can*
[Link]
TxQueueLength=1024
EOF
最後にデバイスを再起動します:
sudo reboot
CAN IDを検索するコマンド
- 通常のホストコンピュータ検索コマンド
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 - FLYホストコンピュータ検索コマンド
python3 ~/klipper/scripts/canbus_query.py can0 - IDが表示され、最後の
Application:にKlipperと表示されている場合、このIDは直接使用できます。 - IDが表示され、最後の
Application:にCANBOOTまたはKatapultと表示されている場合、ファームウェアを書き込む必要があります。Loading...
エラーメッセージ
- 以下は一般的なエラーです
- 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検索ガイドとトラブルシューティング
1. CAN速度の確認と設定
ツールボードのファームウェアのCAN通信速度は、ホストコンピュータの設定と完全に一致している必要があります。一致しない場合、デバイスは検出されません。
操作手順:
- ホストコンピュータのターミナルで以下のコマンドを実行し、CAN0インターフェースの現在の状態を確認します:
ip -details link show can0 - 出力情報で、以下の2つの重要なパラメータを確認します:
bitrate: 現在のCAN通信速度(例:1000000は1Mbpsを表します)。TxQueueLength: 送信キュー長/キャッシュサイズ(例:1024)。
以下の図はコマンド出力の例です。赤枠内の bitrate パラメータがお使いのデバイス設定と一致しているか重点的に確認してください:
Loading...
2. システムIDの使用状況を排除
ツールボードにKlipperファームウェアが書き込まれており、そのIDがホストコンピュータの設定ファイル (printer.cfg) に既に記述されている場合、そのIDはシステムによって使用中とみなされ、検索結果に表示されません。
解決方法:
printer.cfgファイル内の、該当ツールボードに関するすべての設定段落を一時的にコメントアウトするか削除します。- 変更を加えた後は、マシンの電源を完全に切り、約10秒間電源を抜いてから、再度電源を入れ直す必要があります。
3. CANバスターミネーション抵抗の確認
- 安定したCANバスネットワークでは、物理的な配線の両端に
120Ωのターミネーション抵抗を取り付ける必要があります。 - 電源を切った状態でマルチメーターを使用し、CAN-HとCAN-L間の抵抗値を測定した際、
60Ω前後であることを確認する必要があります。
確認方法:
- 必ずマシン全体の電源を切った状態で操作してください。
- マルチメーターの抵抗測定モードを使用し、マザーボードのCANインターフェースまたはツールボード上の CAN-HピンとCAN-Lピン間の抵抗値を測定します。
- 正しいバス抵抗値は約 60Ω(2つの
120Ω抵抗を並列接続した結果)であるはずです。測定値が大きく異なる場合(開放状態または120Ωのみなど)、配線またはターミネーション抵抗の設定に誤りがあることを示しています。
各デバイスの設定ルール:
| デバイスタイプ | ターミネーション抵抗の要件 | 操作説明 |
|---|---|---|
| CANツールボード | 120Ω ターミネーション抵抗が必要 | 基板上のジャンパーまたはDIPスイッチで有効化します。 |
| マザーボードCANインターフェース | 120Ω ターミネーション抵抗が必要 | 基板上のジャンパーまたはDIPスイッチで有効化します。 |
| UTOCタイプ変換モジュール | 内蔵済み 120Ω 抵抗 | 他のターミネーション抵抗を有効にする必要はありません。 |
Loading...