Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
RigPlane: 해머 라디오 제어용 Python 라이브러리 및 웹 UI
RigPlane is a Python library and browser Web UI for controlling ham radios through native providers and external rigctld-backed Hamlib CAT coverage while keeping one capability-driven station model.
라이프스타일Python · TypeScriptGitHub @rigplane온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Python library for controlling Icom transceivers over LAN (UDP) — no wfview/hamlib required
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
v2.0.0 — renamed from icom-lan. The package, console script, repo,
and docs now ship as rigplane. Existing from icom_lan import ... calls
keep working through a deprecation shim. Migration guide:
rigplane.dev/migrate.README 전문 보기 ↗RigPlane 3.0 is released. A plain
pip install rigplaneinstalls it. Upgrading from 2.x? 3.0 requires the radio model (--model); see What's New in 3.0 and the migration guide. Known gaps are listed in 3.0 known limitations. Tried it on your radio? Send a 3.0 report.
rigplane is an open-source (MIT) Python asyncio library and web UI for Icom radios (LAN/USB) and the Yaesu FTX-1 (USB), with a rigctld server. It has native providers for Icom CI-V and Yaesu CAT paths. The rigctld server lets Hamlib-aware programs such as WSJT-X, fldigi and JS8Call control the radio.
pip install rigplane
rigplane --model IC-7610 web # discovers the radio's IP on the LAN
# open http://localhost:8080
Or as a library:
import asyncio
from rigplane import create_radio, LanBackendConfig
async def main():
async with create_radio(LanBackendConfig(host="192.168.1.100",
username="user",
password="pass",
model="IC-7610")) as radio:
await radio.set_frequency(14_074_000)
await radio.set_mode("USB")
print(await radio.get_s_meter())
asyncio.run(main())
Full guides: getting started, CLI, public API surface.
| Radio | --model value | Transport | Notes |
|---|---|---|---|
| Icom IC-7610 | IC-7610 | LAN, USB CI-V | Dual receiver; see known limitations |
| Icom IC-7300 | IC-7300 | USB CI-V | Single receiver, USB-only |
| Icom IC-7300MK2 | IC-7300MK2 | LAN, USB CI-V | |
| Yaesu FTX-1 | FTX-1 | USB CAT | 17 modes, VHF/UHF, C4FM, audio-derived panadapter (no hardware scope) |
| Icom IC-705 | IC-705 | LAN (WiFi), USB CI-V | CI-V 0xA4, QRP 10 W |
| Icom IC-9700 | IC-9700 | LAN, USB CI-V | VHF/UHF/SHF |
| Xiegu X6200 | X6200 | USB CI-V | CI-V 0xA4, 19200 baud, QRP 8 W |
| Xiegu X6100 | X6100 | USB CI-V | Profile only, no backend yet |
| Lab599 TX-500 | TX-500 | USB Kenwood CAT | Profile only, no backend yet; QRP, minimal CAT |
Native radio capabilities are declared in rigs/*.toml. For long-tail serial
CAT radios, the intended path is Hamlib-backed control underneath RigPlane's
capability model, with structured discovery candidates and safe read-only
probing where possible. See adding a new radio.
Radio
protocol, the capability protocols (AudioCapable, ScopeCapable,
MetersCapable, LevelsCapable, StatePollable, RigctldRoutable,
UsbAudioCapable, …), create_radio / BackendConfig, and the
local-extensions/ host API — is now under SemVer. See
docs/api/public-api-surface.md.ARCHITECTURE.md.import-linter enforces 11-layer package
boundaries; mypy is clean across the public surface; ruff lints in CI.rigplane web boots a self-contained HTTP + WebSocket server. The frontend
is a Svelte 5 single-page app served from the same process; no native
shell, no Electron, no Tauri — just a browser tab.
Four user-facing skins resolve from frontend/src/skins/registry.ts:
amber-lcd alias).src/rigplane/ is organised into 11 layered Python packages
(core/, commands/, profiles/, audio/, scope/, dsp/,
runtime/, backends/, web/, rigctld/, cli/) with explicit
boundaries enforced by import-linter. Higher layers depend on lower
ones; siblings are independent. See ARCHITECTURE.md
for the layout and per-layer charters in src/rigplane/<layer>/LAYER.md.
Extensibility is centred on Capability Protocols in
rigplane.radio_protocol. A new backend implements the protocols it
supports; consumers (Web UI, rigctld, CLI, third-party scripts) feature-detect
via isinstance(radio, ScopeCapable) and never branch on backend identity.
The Radio protocol plus the capability suite is the stable contract
between the open core and downstream consumers.
The frontend extension surface lives at
frontend/src/lib/local-extensions/ —
a Tier 1 contract for embedders shipping panels, dock items, or keyboard
scopes into the open-core shell.
MIT — see LICENSE. Protocol knowledge derived from the wfview project's reverse-engineering work; this is an independent clean-room implementation, not a derivative of wfview's GPLv3 code. Icom™ and IC-* product names are registered trademarks of Icom Incorporated, used here for nominative fair-use compatibility identification only — this project is not affiliated with, endorsed by, or sponsored by Icom.
rigplane is the open-core half of a planned product split. A
proprietary commercial layer (rigplane-pro) is under active development
and will integrate with this library through the public Radio protocol
and the local-extensions/ host API. Open-core constraints — no
telemetry, headless mode is sacred, no hollowing out — are codified in
docs/architecture/open-core-policy.md.
KN4KYD's personal project. Each supported radio is described by its
rigs/*.toml profile and uses the same Capability Protocols.
Issues, profile contributions, and field reports are welcome.
73 de KN4KYD