CANネットワーク設定とID検索
使用前の注意
- UTOR または CAN ブリッジファームウェアを書き込んだメインボードを USB でホストコンピュータに接続します。
- ホストコンピュータの管理画面にはネットワーク経由でログインしてください。シリアルポートは使用しないでください。
- FlyOS-FAST システムを使用する場合、CAN の設定は不要です(システムは既に 1M レート、1024 キャッシュにプリセットされています)。
ホストコンピュータが CAN をサポートしているか確認する
FLY ホストコンピュータを使用する場合は、この手順をスキップできます。
以下のコマンドを実行して、カーネルの CAN サポートを確認します:
sudo modprobe can && echo "カーネルはCANをサポートしています" || echo "カーネルはCANをサポートしていません"
「カーネルはCANをサポートしています」と表示された場合は、そのまま設定を続行できます。
CAN0 の設定
⚠️ この操作は既存の CAN0 設定を上書きします。完了後、システムの再起動が必要です。
FAST システムでは実行しないでください!
システムの種類に応じて、対応する設定方法を選択してください:
- 通常のLinuxシステム
- Raspberry Piシステム
通常の Linux システム
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 レート設定:
上記のコマンド内の 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Ω の終端抵抗が必要 | ボード上のジャンパーピンまたはディップスイッチで有効にします。 |
| メインボード CAN インターフェース | 120Ω の終端抵抗が必要 | ボード上のジャンパーピンまたはディップスイッチで有効にします。 |
| UTOC タイプ変換モジュール | 120Ω 抵抗が内蔵済み | 他の終端抵抗を有効にする必要はありません。 |
Loading...