Skip to main content

DMR Zone Channel Builder

Project description

dzcb

DMR Zone Channel Builder

See Releases for Default Codeplugs

Github Actions

This repository uses a Github Actions workflow to build codeplugs automatically in the cloud.

Customizing Your Own Codeplug

See codeplug-example

  • Fork this repo
  • Copy codeplug-example/kf7hvm to codeplug/your-call
  • customize generate.sh and other files
    • kf7hvm-md-uv380.json: set your Radio ID and Radio Name
    • order.json: preferred zone order, zone exclusion, preferred talkgroup order
    • scanlists.json: additional scanlists
  • if using repeaterbook, set secrets in repo settings:
    • REPEATERBOOK_USER
    • REPEATERBOOK_PASSWD
    • prox.csv: customize zones
  • Github default-codeplugs workflow will automatically build all codeplugs in the codeplug directory.
  • When a Release is published, the generated codeplugs will be hosted publicly with a stable URL.

Output Formats

Farnsworth JSON

For import into editcp, with theoretical support for:

  • TYT
    • MD-380, MD-390
    • MD-UV380 (tested), MD-UV390
    • MD-2017,
  • Alinco DJ-MD40,
  • Retevis RT3, RT3-G, RT3S, and RT82 radios

Use --farnsworth-template-json to specify an exported codeplug to use as the template for settings and radio capabilities.

dzcb includes basic template files for MD380/390 and MD-UV380/390.

GB3GF OpenGD77 CSV

For import into GB3GF CSV tool. Currently only supporting OpenGD77 target. Tool is "windows-only" but runs decently under wine.

A subdirectory gb3gf_opengd77 is created under the output directory containing the 4 CSV files used by the program:

  • Channels.csv
  • Contacts.csv
  • TG_Lists.csv
  • Zones.csv

Note: these files are actually semicolon separated.

Input Format

K7ABD style

A directory of inter-related CSV files describing the common settings needed to program all radios. This is a common format used by K7ABD's original anytone-config-builder and N7EKB's cps-import-builder.

An arbitrary number of files and folders will be combined. At this time duplicate zone names in different files may be problematic. Keep zone names unique. Particularly be wary of trucated names.

  • Analog__ZoneName.csv
    • Zone, Channel Name, Bandwidth, Power, RX Freq, TX Freq, CTCSS Decode, CTCSS Encode, TX Prohibit
  • Talkgroups__ZoneName.csv
    • No Header Row tuples of: talkgroup_name,talkgroup_number
  • Digital-Other__ZoneName.csv -- only really useful for digital simplex channels or private call
    • Zone, Channel Name, Power, RX Freq, TX Freq, Color Code, Talk Group, TimeSlot, Call Type, TX Permit
  • Digital-Repeaters__ZoneName.csv -- each line is a digital channel with static talkgroup timeslot assignments
    • Zone Name, Comment, Power, RX Freq, TX Freq, Color Code, talkgroup1, talkgroup2, talkgroup3, ...
    • Typically the Zone Name field is semicolon separated: "Longer Name;LNM"
    • The value for the talkgroup column should be "-", "1", or "2"
    • The talkgroup names must exist in the talkgroups file.
    • Some codeplug targets will create a zone for each frequency with channels for each static talkgroup.

Data Sources

PNWdigital.net

Before using this network, please read the quick start

When building a codeplug with the --pnwdigital switch, data is downloaded from PNWDigital.net/files/acb. The files are updated regularly from the cBridge, so there could be test data or repeaters that are not yet active.

The data is cached by dzcb.pnwdigital

SeattleDMR

Before using these repeaters, please read the website

When building a codeplug with the --seattledmr switch, data is downloaded from seattledmr.org/ConfigBuilder/Digital-Repeaters-Seattle-addon.csv and cleaned up a bit in dzcb.seattledmr

Repeaterbook Proximity

Repeaterbook account is required to access this endpoint

Download live analog repeaterbook data within distance of point of interest.

--repeaterbook-proximity-csv references a csv file with the fields:

  • Zone Name,Lat,Lon,Distance,Unit(m),Band(14 - 2m, 4 - 70cm)

This corresponds directly to the repeaterbook csv download "prox" http endpoint, which requires authentication. See dzcb.repeaterbook.

When using this option, be sure to set REPEATERBOOK_USER and REPEATERBOOK_PASSWD in the environment.

Example Format

Longview WA VHF 35mi,46.13819885,-122.93800354,35,m,14,
Longview WA UHF 35mi,46.13819885,-122.93800354,35,m,4,

(it's easy to search on repeaterbook and copy the info from the URL!)

Local

Information on these Western Washington standalone DMR repeaters was retrieved from Repeaterbook and respective websites in 2020 October.

Simplex, GMRS, etc

Some common Digital and Analog simplex frequencies, and GMRS/FRS and MURS channels are included if --default-k7abd is specified.

Bonus: Trim the Contact List

Download the usersDB.bin with Farnsworth editcp.

python -m dzcb.contact_trim \
    < "~/.cache/codeplug/Codeplug Editor/usersDB.bin" \
    > "~/.cache/codeplug/Codeplug Editor/usersDB-trimmed.bin"

Development Usage

Installation

pip install -e ./dzcb

Basic Usage

Download live pnwdigital and seattledmr networks and generate a codeplug in /tmp/my-codeplug with local simplex zones included.

python -m dzcb \
    --pnwdigital \
    --seattledmr \
    --default-k7abd /tmp/my-codeplug

See above and --help for more usage details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dzcb-0.1.1.tar.gz (47.9 kB view details)

Uploaded Source

Built Distribution

dzcb-0.1.1-py2.py3-none-any.whl (32.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file dzcb-0.1.1.tar.gz.

File metadata

  • Download URL: dzcb-0.1.1.tar.gz
  • Upload date:
  • Size: 47.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for dzcb-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1a500ee7d6a2b97b327b1426833288900126887aca8aadd3f5658e8aa5dc5251
MD5 0408099774a73688a8cbc7577527a0b4
BLAKE2b-256 2ef6898206eb81630ce1864066938804e799654499f08003d52c06406a2b18ff

See more details on using hashes here.

File details

Details for the file dzcb-0.1.1-py2.py3-none-any.whl.

File metadata

  • Download URL: dzcb-0.1.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 32.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for dzcb-0.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e772140c16e5be5fd49a6e714b3523df51ff4ac5e3ba802d683aa39c66dbe042
MD5 3251cb9ec471ee5f93de966dba248e2a
BLAKE2b-256 eea497044dc29cb010508b4f71e832edc14c2768fa1167527ba065d33c5ce7d7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page