Linux Codeplug Studio — one native GTK application for programming multiple ham radio families, starting with:
GitHub topics: ham-radio ·
amateur-radio ·
codeplug ·
dmr ·
radio-programming ·
gtk4 ·
libadwaita ·
linux ·
anytone ·
tyt ·
retevis ·
nicfw ·
cps
| Backend | Radios | Backup format |
|---|---|---|
| anytone | Anytone D878UV / D878UV II / D578UV | .atcp |
| nicfw | TIDRADIO TD-H3 (nicFW) | .h3cp |
More firmwares will plug in as backends become available.
Both radio cores are live. GTK has Open/Save/Read/Write plus capability pages: Channels (both; AnyTone DMR refs + CC/TS), Settings & Band plans (nicFW), Contacts, Zones, Radio IDs, Scan lists, RX groups, and schema-backed Optional settings (APRS/GPS/Boot/…). Debian packages and GitHub CI are live at hardenedpenguin/CodeplugStudio. Migrated from:
Target UI: GTK4 + libadwaita (not WebKit). Optional HTTP API may remain for automation; the desktop app is native widgets.
common/ Shared shell: serial helpers, session, util, cJSON
backends/
anytone/ Anytone program-mode + ATCP + schemas
nicfw/ nicFW EEPROM + H3CP + JSON
ui/
gtk/ Native GTK4 frontend
packaging/ .desktop, icons
udev/ Combined USB rules
docs/ Architecture and backend guide
third_party/ Vendored dependencies
- One binary, many radio backends behind a common plugin interface.
- Capability-driven UI — only show Channels / Zones / APRS / Band plans / … when the active backend supports them.
- Native backup formats stay first-class (
.atcp,.h3cp); open/save picks the right adapter by magic, extension, or USB probe. - Write safety is per-backend (e.g. nicFW power-table guard, Anytone CPS map checks).
See docs/architecture.md for design layers. See docs/STATUS.md for what’s done and what’s next (keep that file updated).
From Releases:
wget https://github.com/hardenedpenguin/CodeplugStudio/releases/download/v0.0.2/codeplug-studio_0.0.2-1_amd64.deb
sudo apt install ./codeplug-studio_0.0.2-1_amd64.debTransitional metapackages (depend on codeplug-studio; same release):
Verify checksums: SHA256SUMS.
curl -fsSLO https://hardenedpenguin.github.io/hardenedpenguin-apt/pool/main/h/hardenedpenguin-archive-keyring/hardenedpenguin-archive-keyring_1.2_all.deb
sudo apt install ./hardenedpenguin-archive-keyring_1.2_all.deb
sudo apt update
sudo apt install codeplug-studiocd /home/repos/CodeplugStudio
sudo apt install build-essential pkg-config libgtk-4-dev libadwaita-1-dev
make
./codeplug-studio backends
./codeplug-studio detect
./codeplug-studio dump -o backup.h3cp # nicFW
./codeplug-studio dump -o backup.atcp # AnyTone
./codeplug-studio export -i backup.h3cp -o nicfw.json
./codeplug-studio export -i backup.atcp -o anytone.json
./codeplug-studio restore -i backup.h3cp # refuses blank PA tables unless --force
./codeplug-studio restore -i backup.atcp # refuses model mismatch unless --force
./codeplug-studio uiNeeds libgtk-4-dev and libadwaita-1-dev for the desktop UI. Without them,
the CLI still builds; ui reports that GTK was not linked.
sudo apt install debhelper fakeroot lintian pkg-config libgtk-4-dev libadwaita-1-dev
make lint # builds .deb under .. and runs lintianProduces codeplug-studio, plus transitional anytone and nicfw metapackages
that depend on codeplug-studio.
GPL-3.0-or-later (same as the existing CPS tools).