Simplified DMR Zone Channel Builder for Anytone 878/890 radios
Project description
dzcb-simple
DMR Zone Channel Builder - Simplified for Anytone 878/890
A streamlined Python tool to generate Anytone radio codeplug CSV files from K7ABD format input files.
Features
- ✅ Read K7ABD CSV format (Analog, Digital-Repeaters, Digital-Others, Talkgroups)
- ✅ Generate Anytone 878UVii CSV files
- ✅ Generate Anytone 890 CSV files
- ✅ Support APRS configuration on analog channels
- ✅ Simple command-line interface
- ✅ Modern Python packaging (Python 3.8+)
Installation
# Install from source
git clone https://github.com/yourusername/dzcb-simple.git
cd dzcb-simple
pip install -e .
Usage
Basic Usage
# Generate for both radios
dzcb input_directory output_directory
# Generate for 890 only
dzcb input_directory output_directory --radio 890
# Generate for 878 only
dzcb input_directory output_directory --radio 878
Sorting Options
Control zone and channel ordering with --sort:
# Alphabetical (default) - zones and channels sorted A-Z
dzcb input_directory output_directory --sort alpha
# Repeaters first - digital repeater zones first, then analog/others, preserving file order
dzcb input_directory output_directory --sort repeaters-first
# Analog first - analog/digital-others zones first, then repeaters, preserving file order
dzcb input_directory output_directory --sort analog-first
| Mode | Zone Order | Channel Order Within Zones |
|---|---|---|
alpha |
All zones sorted A-Z | Channels sorted alphabetically |
repeaters-first |
Repeater zones first, then analog/others | Preserves input file order |
analog-first |
Analog/others first, then repeater zones | Preserves input file order |
Input File Format
Place your K7ABD format CSV files in a directory:
Analog__YourName.csv:
Zone,Channel Name,Bandwidth,Power,RX Freq,TX Freq,CTCSS Decode,CTCSS Encode,TX Prohibit,APRS RX,APRS PTT Mode,APRS Report Type
Simplex,146.520,25,High,146.520,146.520,Off,Off,Off,Off,Off,Off
Digital-Repeaters__YourName.csv:
Zone Name,Comment,Power,RX Freq,TX Freq,Color Code,TG1,TG2,TG3
K7ABD;K7ABD,Seattle,High,440.600,445.600,1,1,2,-
Digital-Others__YourName.csv:
Zone,Channel Name,Power,RX Freq,TX Freq,Color Code,Talk Group,TimeSlot,Call Type,TX Permit
Simplex,DMR Simplex 1,High,433.450,433.450,1,Local,1,Group Call,Always
Talkgroups__YourName.csv:
Local,9
Worldwide,91
North America,93
TAC 310,310
Output
The tool generates four CSV files in the output directory for each radio:
Channel.CSV- All channelsTalkGroups.CSV- Contact listZone.CSV- Zone assignmentsScanList.CSV- Scan lists
Import these files into your Anytone CPS.
APRS Support
Add APRS configuration to analog channels with these optional columns:
APRS RX- Off or OnAPRS PTT Mode- Off, Start, End, or BothAPRS Report Type- Off, Analog, or Digital
Example:
Zone,Channel Name,...,APRS RX,APRS PTT Mode,APRS Report Type
APRS,144.390,...,On,Both,Analog
Development
# Install with dev dependencies
pip install -e ".[dev]"
# Format code
black src/
# Run tests
pytest
Differences from Original dzcb
This is a simplified fork focused on:
- Local K7ABD CSV input only (no network fetching)
- Anytone 878/890 output only (no other radio formats)
- APRS support for analog channels
- Modern Python packaging
- Simpler codebase and maintenance
For the full-featured version with Repeaterbook integration, PNWDigital support, and multiple output formats, see the original dzcb.
Credits
Based on the original dzcb by Masen Furer.
Simplified and modernized by Joe (AF1E) for personal use with Anytone 878UVii and 890 radios.
License
MIT License - see LICENSE file
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dzcb_simple-0.1.0.tar.gz.
File metadata
- Download URL: dzcb_simple-0.1.0.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78f3ab4540268787eb03dd421ba467b69595571355ee85015b9aa42a8be2bda5
|
|
| MD5 |
c4798f999dbd64ef90bdd4181f2d1c64
|
|
| BLAKE2b-256 |
3d0564669dc8be3732a47c96e18469849b3e90589b94371ff21e597f5093e9c9
|
Provenance
The following attestation bundles were made for dzcb_simple-0.1.0.tar.gz:
Publisher:
publish.yml on AF1E/dzcb-simple
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dzcb_simple-0.1.0.tar.gz -
Subject digest:
78f3ab4540268787eb03dd421ba467b69595571355ee85015b9aa42a8be2bda5 - Sigstore transparency entry: 992422505
- Sigstore integration time:
-
Permalink:
AF1E/dzcb-simple@9df66106650413e36baae07e2edddbf8eb2b9d85 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/AF1E
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9df66106650413e36baae07e2edddbf8eb2b9d85 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dzcb_simple-0.1.0-py3-none-any.whl.
File metadata
- Download URL: dzcb_simple-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4267a212686f57981d9733ea78265aa9b58bfa807c936df4d89336eb9580c844
|
|
| MD5 |
07c4d5e4116b92b0841ce7c9f3cfb9c6
|
|
| BLAKE2b-256 |
930c528be2c1875645e6a86437d6b189e3f96a589c1417e9345f2581e4f37625
|
Provenance
The following attestation bundles were made for dzcb_simple-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on AF1E/dzcb-simple
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dzcb_simple-0.1.0-py3-none-any.whl -
Subject digest:
4267a212686f57981d9733ea78265aa9b58bfa807c936df4d89336eb9580c844 - Sigstore transparency entry: 992422520
- Sigstore integration time:
-
Permalink:
AF1E/dzcb-simple@9df66106650413e36baae07e2edddbf8eb2b9d85 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/AF1E
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9df66106650413e36baae07e2edddbf8eb2b9d85 -
Trigger Event:
release
-
Statement type: