CHIRP コマンドラインツール chirpc 徹底解説ガイド ⚙️

セキュリティツール

アマチュア無線機の設定をコマンドラインから自在に操る

はじめに:CHIRP とは何か? なぜ chirpc が便利なのか?

CHIRP は、多くのアマチュア無線機モデルに対応した、無料でオープンソースのプログラミングツールです。通常、グラフィカルユーザーインターフェース (GUI) 版である chirpw が広く使われています。これにより、ユーザーは直感的な画面操作で無線機のメモリチャンネルや設定を管理できます。

しかし、CHIRP にはもう一つの強力なツール、chirpc が含まれています。これは CHIRP のコマンドラインインターフェース (CLI) 版です。GUI がない環境(例えばサーバー上)で作業する場合や、複数の無線機に対して同じ設定を自動的に適用したい場合、あるいはスクリプトを組んで定型的な作業を効率化したい場合に、chirpc は非常に役立ちます。

chirpc を使うことで、以下のようなことが可能になります:

  • 無線機からの設定データのダウンロード(読み込み)
  • 無線機への設定データのアップロード(書き込み)
  • メモリチャンネルの一覧表示や個別表示
  • 特定のメモリチャンネルの設定変更(周波数、名前、トーン、モードなど)
  • 無線機固有の設定項目の表示
  • メモリイメージファイル(.img ファイルなど)の操作
  • 他のプログラムやスクリプトからの連携利用

このガイドでは、chirpc の基本的な使い方から、具体的なコマンド例、応用的な活用方法までを詳しく解説していきます。コマンドライン操作に慣れていない方でも理解できるよう、丁寧に説明しますのでご安心ください。それでは、chirpc の世界を探求していきましょう!🚀

💡 注意点: chirpc による操作は、特に無線機への書き込み(アップロード)時には注意が必要です。誤った操作は無線機の動作に影響を与える可能性があります。操作を行う前に、必ず現在の無線機設定のバックアップを取っておくことを強く推奨します。また、chirpc のコマンドは、ファイルに対して直接変更を加える (in-place modification) ことがあります。変更したくないファイルは事前にコピーを作成してください。

インストールと準備

chirpc は通常、CHIRP 本体と一緒にインストールされます。CHIRP のインストール方法は OS によって異なります。

Linux (Debian/Ubuntu系) の場合

多くの Linux ディストリビューションでは、パッケージマネージャーを通じて CHIRP をインストールできます。例えば、Kali Linux や Ubuntu などでは、以下のコマンドでインストールできる場合があります。

sudo apt update
sudo apt install chirp

この方法でインストールすると、chirpw (GUI版) と chirpc (CLI版) の両方が利用可能になるはずです。

また、最新版を利用したい場合や、ディストリビューションのパッケージが古い場合は、CHIRP の公式サイトから提供されている Python Wheel ファイル (.whl) を使ってインストールする方法もあります。2024年初頭の情報によると、以下のような手順で仮想環境にインストールすることが推奨されています。

# 必要なパッケージをインストール (Debian/Ubuntu系の場合)
sudo apt install python3-virtualenv libcairo-dev libgtk-3-dev

# CHIRP用のディレクトリを作成し移動
mkdir chirp && cd chirp

# 最新の Wheel ファイルをダウンロード (ファイル名は時期によって変わります)
# 例: wget https://trac.chirp.danplanet.com/chirp_next/next-20240208/chirp-20240208-py3-none-any.whl
# 最新版は公式サイトで確認してください: https://trac.chirp.danplanet.com/chirp_next/

# Python 仮想環境を作成 (例: Python 3.11 を使用)
python3 -m virtualenv --python=python3.11 .pyenv

# 仮想環境をアクティベート (シェルによってコマンドが異なります)
# source .pyenv/bin/activate  # bash/zsh の場合
# . .pyenv/bin/activate.fish # fish の場合
# .\.pyenv\Scripts\activate.ps1 # PowerShell の場合

# Wheel ファイルを使って CHIRP をインストール
pip install chirp-*.whl

# (オプション) GUI版も使いたい場合は wxPython もインストール
pip install wxPython

# これで仮想環境内で chirpc コマンドが使えるようになります
# 仮想環境を抜けるには deactivate コマンドを実行します

インストール後、ターミナルで chirpc --version を実行して、バージョン情報が表示されれば成功です。

macOS / Windows の場合

macOS や Windows でも CHIRP は利用可能です。公式サイト (https://chirp.danplanet.com/projects/chirp/wiki/Home) からそれぞれの OS 用のインストーラーをダウンロードしてインストールしてください。通常、インストーラーには chirpc も含まれていますが、PATH 環境変数の設定が必要になる場合があります。

Windows の場合、WSL (Windows Subsystem for Linux) 上に Linux 版 CHIRP をインストールして利用することも可能です。

プログラミングケーブルの準備

無線機とコンピュータを接続するためのプログラミングケーブルが必要です。お使いの無線機に対応したケーブルを用意してください。ケーブルによっては専用のドライバが必要になる場合があります。CHIRP のドキュメントにはケーブル選択に関するガイドもあります。

基本的なコマンド構文

chirpc の基本的なコマンド構文は以下のようになります。

chirpc [オプション] [引数...]

主なオプションには以下のようなものがあります。

オプション 短縮形 説明
--help -h ヘルプメッセージを表示して終了します。利用可能な全オプションを確認できます。
--version CHIRP のバージョン情報を表示して終了します。
--radio <radio> -r <radio> 操作対象の無線機モデル名を指定します。モデル名は --list-radios で確認できます。
--serial <port> -s <port> 無線機が接続されているシリアルポート(例: /dev/ttyUSB0, COM3)を指定します。mmap オプションと同時に使う場合はデフォルト値になります。
--mmap <file> 操作対象のメモリイメージファイル(通常は .img 拡張子)を指定します。無線機との直接通信ではなく、ファイルに対して操作を行う場合に使用します。
--download-mmap 指定された無線機から設定をダウンロードし、--mmap で指定されたファイルに保存します。
--upload-mmap --mmap で指定されたファイルの内容を、指定された無線機にアップロードします。⚠️注意して使用してください。
--list-radios CHIRP がサポートしている無線機モデルのリスト(-r オプションで指定する名前)を表示します。
--list-settings メモリイメージファイル内の無線機設定項目とその値を一覧表示します。(--mmap が必要)
--list-mem メモリイメージファイル内のプログラムされているメモリチャンネルを一覧表示します。(--mmap が必要)
--get-mem <channel> 指定されたチャンネル番号の詳細情報を表示します。(--mmap が必要)
--verbose -v より詳細な情報を表示します。例えば --list-mem -v とすると、空きチャンネルも含めて表示されます。複数回指定するとさらに詳細度が増します。
--quiet -q 表示するメッセージを抑制します。
--log <log_file> ログメッセージを指定されたファイルに出力します。
--log-level <level> ログファイルに出力する詳細度レベルを指定します (critical, error, warn, info, debug)。デフォルトは debug です。

これらは代表的なオプションです。chirpc -h を実行すると、さらに多くのオプション(特定のメモリチャンネル設定を変更するオプションなど)が表示されます。

主なユースケースとコマンド例

ここでは、chirpc を使ってよく行われる操作の具体的なコマンド例を紹介します。

1. サポートされている無線機モデルを確認する

自分の持っている無線機が CHIRP でサポートされているか、そして -r オプションで指定するべき名前を確認します。

chirpc --list-radios

膨大なリストが表示されるので、grep コマンド (Linux/macOS) や findstr コマンド (Windows) と組み合わせて絞り込むと便利です。

# 例: "Baofeng" を含むモデルを検索 (Linux/macOS)
chirpc --list-radios | grep Baofeng

# 例: "Yaesu" を含むモデルを検索 (Windows)
chirpc --list-radios | findstr Yaesu

2. 無線機から設定をダウンロードしてファイルに保存する

無線機の現在の設定を読み込み、my_radio_backup.img という名前のファイルに保存します。<radio_model>--list-radios で確認したモデル名、<serial_port> は接続しているポート名に置き換えてください。

chirpc -r <radio_model> -s <serial_port> --download-mmap my_radio_backup.img

例:Baofeng UV-5R を /dev/ttyUSB0 に接続している場合

chirpc -r "Baofeng UV-5R" -s /dev/ttyUSB0 --download-mmap uv5r_backup.img

このコマンドは、無線機との通信を開始し、データをダウンロードして指定されたファイルに書き込みます。成功すれば、プロンプトが戻ってきます。

3. メモリイメージファイルの内容を確認する

ダウンロードしたファイルや、編集したファイルの内容を確認します。

メモリチャンネルの一覧表示:

chirpc --mmap uv5r_backup.img --list-mem

空きチャンネルも含めて全チャンネル表示:

chirpc --mmap uv5r_backup.img --list-mem -v

特定のチャンネル (例: チャンネル 5) の詳細表示:

chirpc --mmap uv5r_backup.img --get-mem 5

無線機固有の設定項目の一覧表示:

chirpc --mmap uv5r_backup.img --list-settings

4. メモリイメージファイル内のチャンネル情報を変更する

chirpc は、メモリイメージファイル内の特定のチャンネル情報を直接変更するオプションも提供しています。これにより、スクリプトからチャンネル設定を自動更新するなどの応用が可能になります。

⚠️注意: これらのコマンドは指定されたファイルを直接変更します。実行前に必ずファイルのバックアップを取ってください。

例:uv5r_settings.img ファイルのチャンネル 10 の名前を “APRS” に変更する

chirpc --mmap uv5r_settings.img --set-mem-name 10:APRS

例:uv5r_settings.img ファイルのチャンネル 25 の周波数を 433.500 MHz に変更する

chirpc --mmap uv5r_settings.img --set-mem-freq 25:433.500000

例:uv5r_settings.img ファイルのチャンネル 30 の送信モードを FM (Narrow) に変更する

chirpc --mmap uv5r_settings.img --set-mem-mode 30:NFM

利用可能な設定変更オプションは多岐にわたります。周波数 (--set-mem-freq), 名前 (--set-mem-name), トーンモード (--set-mem-tone), CTCSS周波数 (--set-mem-rxtone, --set-mem-txtone), DCSコード (--set-mem-dtcs), デュープレックス (--set-mem-dup), オフセット (--set-mem-offset), モード (--set-mem-mode) などがあります。詳細は chirpc -h で確認してください。引数は <channel>:<value> の形式で指定します。

🔥 高度な操作: 複数のチャンネルを一度に変更したり、CSVファイルからチャンネル情報を読み込んで設定したりすることも、スクリプトと組み合わせることで可能です。ただし、複雑な操作を行う際は、意図しない結果にならないよう慎重にテストしてください。

5. メモリイメージファイルを無線機にアップロードする

編集したメモリイメージファイル (my_radio_settings.img) を無線機に書き込みます。

⚠️警告: この操作は無線機の現在の設定を上書きします。誤ったファイルをアップロードすると、無線機が正常に動作しなくなる可能性があります。実行するファイルの内容を十分に確認し、自己責任で行ってください。

chirpc -r <radio_model> -s <serial_port> --upload-mmap my_radio_settings.img

例:Baofeng UV-5R に uv5r_new_settings.img をアップロードする場合

chirpc -r "Baofeng UV-5R" -s /dev/ttyUSB0 --upload-mmap uv5r_new_settings.img

アップロード中は無線機やケーブルに触れないようにし、プロセスが完了するまで待ちます。

応用的な使い方とヒント ✨

chirpc の真価は、他のツールやスクリプトと組み合わせることで発揮されます。

スクリプトによる自動化

例えば、地域のレピーターリストが更新された際に、自動的にメモリイメージファイルを更新し、複数の無線機に書き込むようなスクリプトを作成できます。

簡単なシェルスクリプトの例 (概念):

#!/bin/bash

# 設定ファイルと無線機情報
SETTINGS_FILE="base_settings.img"
NEW_SETTINGS_FILE="updated_settings.img"
RADIO_MODEL="Your Radio Model"
PORT1="/dev/ttyUSB0"
PORT2="/dev/ttyUSB1"

# 最新のレピーター情報を取得する処理 (wget, curl など)
# (ここでは省略)

# ベース設定をコピー
cp "$SETTINGS_FILE" "$NEW_SETTINGS_FILE"

# 新しいレピーター情報をファイルに追加 (例: チャンネル50から追加)
# ここでは単純な例として固定値を設定
echo "Updating channel 50..."
chirpc --mmap "$NEW_SETTINGS_FILE" --set-mem-freq 50:439.700000
chirpc --mmap "$NEW_SETTINGS_FILE" --set-mem-name 50:"New Repeater"
chirpc --mmap "$NEW_SETTINGS_FILE" --set-mem-dup 50:"-"
chirpc --mmap "$NEW_SETTINGS_FILE" --set-mem-offset 50:5.000000
chirpc --mmap "$NEW_SETTINGS_FILE" --set-mem-tone 50:Tone
chirpc --mmap "$NEW_SETTINGS_FILE" --set-mem-rxtone 50:88.5

# 無線機1にアップロード
echo "Uploading to Radio 1 on $PORT1..."
chirpc -r "$RADIO_MODEL" -s "$PORT1" --upload-mmap "$NEW_SETTINGS_FILE"
if [ $? -eq 0 ]; then
  echo "Radio 1 Upload Successful!"
else
  echo "Radio 1 Upload Failed!"
fi

# 無線機2にアップロード
echo "Uploading to Radio 2 on $PORT2..."
chirpc -r "$RADIO_MODEL" -s "$PORT2" --upload-mmap "$NEW_SETTINGS_FILE"
if [ $? -eq 0 ]; then
  echo "Radio 2 Upload Successful!"
else
  echo "Radio 2 Upload Failed!"
fi

echo "Script finished."

このスクリプトは、ベースとなる設定ファイル (base_settings.img) をコピーし、新しいレピーター情報をチャンネル50に追加(ここでは固定値で代用)、そしてその更新されたファイルを2つの異なるポートに接続された無線機にアップロードします。実際には、レピーター情報の取得や追加部分をより動的に実装する必要があります。

CSV ファイルとの連携

CHIRP は CSV (カンマ区切り値) ファイルのインポート・エクスポートに対応しています。chirpw (GUI版) を使って CSV ファイルを操作し、その結果を .img ファイルとして保存した後、chirpc で無線機にアップロードするという連携が可能です。

直接 chirpc で CSV を扱う機能は限定的かもしれませんが、スクリプト言語 (Python, Perl, Ruby など) を使えば、CSV ファイルを読み込んで chirpc--set-mem-* コマンド群を生成し、一括でチャンネル設定を行うといった高度な処理も実現できます。

トラブルシューティングのヒント

  • 接続エラー:
    • 正しいシリアルポートを指定していますか? (dmesg | grep tty (Linux) やデバイスマネージャー (Windows) で確認)
    • ケーブルドライバは正しくインストールされていますか?
    • ユーザーにシリアルポートへのアクセス権限がありますか? (Linux の場合、dialout グループへの所属が必要な場合があります: sudo usermod -aG dialout $USER)
    • 無線機の電源は入っていますか? プログラミングモードにする必要がありますか?
    • ケーブルがしっかりと接続されていますか?
  • モデル非対応エラー:
    • -r で指定したモデル名は正確ですか? --list-radios で確認してください。
    • 非常に新しいモデルや特殊なモデルの場合、まだ CHIRP が対応していない可能性があります。CHIRP の開発版 (Daily Build や Next) を試すか、対応を待つ必要があります。
  • アップロード/ダウンロードの失敗:
    • 無線機のバッテリー残量は十分ですか?
    • 通信中に他のプログラムがシリアルポートを使用していませんか?
    • -v オプションを付けて詳細なログを確認し、エラーメッセージを調べてみてください。CHIRP の FAQ やフォーラムに情報があるかもしれません。

問題が解決しない場合は、CHIRP の公式サイトにある FAQ やヘルプ、コミュニティフォーラムなどを参照すると良いでしょう。

まとめ

chirpc は、CHIRP の強力なコマンドラインインターフェースであり、アマチュア無線機の設定を自動化したり、スクリプトから制御したりするための優れたツールです。GUI 版の chirpw に比べて学習コストは若干高いかもしれませんが、一度使い方を覚えれば、特に複数の無線機を管理する場合や定型作業を繰り返す場合に、その効率性と柔軟性が大きなメリットとなります。

主な利点:

  • ✅ スクリプトによる設定の自動化
  • ✅ GUI が利用できない環境での操作
  • ✅ 複数デバイスへの一括設定適用
  • ✅ 他のツールとの連携

注意点:

  • ⚠️ コマンドライン操作への慣れが必要
  • ⚠️ 無線機への書き込み操作は慎重に行う必要あり (バックアップ推奨!)
  • ⚠️ エラー発生時の原因特定が GUI より難しい場合がある

このガイドを参考に、ぜひ chirpc を活用して、より快適で効率的なアマチュア無線ライフを楽しんでください!📻 Happy HAM Life! 73 👋

コメント

タイトルとURLをコピーしました