DMRCONF(1)

πŸ’– DMRCONF(1) β€” bestie edition πŸ’–

okay so. welcome to the User Commands section of your life, babes. this is dmrconf, and she is that girl for programming DMR radios. let's get into it ✨


🌸 NAME 🌸

dmrconf β€” a command-line tool for programming DMR radios. periodt. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

dmrconf [OPTIONS] [COMMAND] [file]

✨ DESCRIPTION ✨

so like, dmrconf is a command-line tool to program DMR radios, bestie. and by "program" we mean generating codeplugs and uploading them to these radios. to do this, dmrconf uses a common human-readable text format to describe the codeplug for all supported radios (peep the list below πŸ‘‡). which lowkey means you can share codeplugs between different radios. iconic behavior, honestly. 🫢

and that's not even all!! dmrconf also lets you download codeplugs from the radio and store them in that same human-readable text format. she does it all. main character energy fr fr. πŸ‘‘


πŸŽ€ COMMANDS πŸŽ€

  • detect β€” detects a connected radio. you can specify a specific device with the -D or --device option if you're feeling picky. πŸ”
  • read β€” reads a codeplug from the radio and stores it into the given file. this command may need the -y or -b options if the file type can't be inferred from the filename. πŸ“–
  • write β€” writes the specified codeplug to the radio. this command may need the -c, -y or -b options if the file type can't be inferred from the filename. ✍️
  • write-db β€” writes the call-sign database to the device. this command may need the --id option to select call-signs if the complete database doesn't fit into the device. if specified, all call-signs closest to the specified ID are used. πŸ“‡
  • verify β€” verifies the codeplug with the connected radio, or the specified radio passed with the --radio option. this command may also need the -y or -b options if the file type can't be inferred from the filename. βœ…
  • encode β€” encodes a YAML codeplug as a binary one for the connected or specified radio using the --radio option. πŸ”„
  • encode-db β€” encodes the call-sign database as a binary one for the connected or specified radio using the --radio option. this command may need the --id option to select call-signs if the complete database doesn't fit into the device. if specified, all call-signs closest to the specified ID are used. πŸ—‚οΈ
  • decode β€” decodes a binary codeplug and stores the result in human-readable form. the radio must be specified using the --radio option. no vibes-based guessing here, bestie. πŸ”“
  • info β€” prints some information about the given file. 🧐

πŸ’… OPTIONS πŸ’…

  • -c, --csv β€” specifies the file format for the input file for verify, encode and write commands. you don't need this option if the filetype can be inferred from the filename β€” that is, if the file ends on .conf or .csv.
  • -y, --yaml β€” specifies the file format for the input or output file for the verify, read and write commands. not needed if the filetype can be inferred from the filename β€” that is, if the file ends on .yaml or .yml.
  • -b, --bin β€” specifies the file format for the input or output file for the verify, read and write commands. not needed if the filetype can be inferred from the filename β€” that is, if the file ends on .bin or .dfu.
  • -m, --manufacturer β€” specifies the file format for the input file for the decode command to be the manufacturer binary codeplug format. heads up: not all manufacturer formats are implemented. πŸ™ˆ
  • -D, --device=DEVICE β€” specifies the device to use. either a USB BUS:DEVICE number combination, or the name of a serial interface. you must specify the device if the automatic radio detection fails, is unsave (yes bestie, that's what it says), or if more than one radio is connected to the host.
  • -R, --radio=NAME β€” specifies the radio for the verify, encode or decode commands. this option can also be used to override the automatic radio detection for the read and write commands.
⚠️ be careful using this option when writing to the device β€” an incompatible code-plug might be written. not a cute look. 😭
  • -I, --id=DMR_ID β€” specifies the DMR ID, or a comma separated list of DMR ID prefixes, for the write-db or encode-db commands. more than one ID may be specified using a comma-separator.
  • -n, --limit=N β€” limits several amounts, depending on the context. when encoding or writing the call-sign db, this option specifies the maximum number of call-signs to encode.
  • -B, --database=JSON_FILE β€” specifies the call-sign database to use for writing a user-db to the device.
  • --init-codeplug β€” initializes the code-plug from scratch. if omitted (that's the default), the codeplug on the device gets updated. this maintains all settings made earlier via the manufacturer CPS or on the radio itself that are not part of the codeplug. very demure, very mindful. πŸŽ€
  • --update-device-clock β€” if set, the device clock gets updated with the transfer to the radio. that is, with any codeplug or call-sign DB being written to the device. not all radios support this feature. ⏰
  • --auto-enable-gps β€” automatically enables GPS/APRS if at least one GPS/APRS system is defined and used by any channel. πŸ“‘
  • --auto-enable-roaming β€” automatically enables roaming if at least one roaming zone is defined and used by any channel. 🌐
  • --ignore-limits β€” disables the enforcement of limits. warnings are still shown though, so don't say we didn't tell you. πŸ‘€
  • -h, --help β€” displays a short help message. πŸ†˜
  • --list-radios β€” lists all supported radios. πŸ“‹
  • -v, --version β€” displays the version number. πŸ”’
  • -V, --verbose β€” enables debug messages. πŸ›

πŸ“» SUPPORTED RADIOS πŸ“»

here's the whole lineup of supported radios plus their names for the --radio option. get comfy, it's a list πŸ’–

  • opengd77, openuv380 β€” all radios running the Open GD77 firmware.
  • d868uv, d868uve β€” Anytone AT-D868UV(E).
  • d878uv β€” Anytone AT-D878UV.
  • d878uv2 β€” Anytone AT-D878UVII.
  • d578uv, d578uv2 β€” Anytone AT-D578UV (II).
  • md390, rt8 β€” TYT MD-390 or Retevis RT8.
  • uv390, rt3s β€” TYT MD-UV390 or Retevis RT3S.
  • md2017, rt82 β€” TYT MD-2017 or Retevis RT82.
  • gd73 β€” Radioddity GD-73.
  • gd77 β€” Radioddity GD-77.
  • rd5r β€” Baofeng/Radioddity RD-5R.
  • dm1701, rt84 β€” Baofeng DM1701 or Retevis RT84.
  • dr1801uv β€” Baofeng DR1801UV-A6.
  • dm32uv β€” Baofeng DM-32UV.

πŸ’€ BUGS πŸ’€

so this one's serious, bestie, no jokes. this program is still under development and may contain bugs that may cause harm to the radios and may even destroy them. hence you may use this software on your own risk. if you want to have guaranties, consider using the CPS (code-plug programming software) supplied with your radio.

🚨 fr fr: destroy. your. radio. use at your own risk. if you need guarantees, go use the CPS that came with your radio.

πŸ‘‘ AUTHOR πŸ‘‘

Hannes Matuschek <dm3mat@darc.de>

  • main author πŸ’œ

aaaand that's the whole page diva!! ✨ this was dmrconf 0.15.1, dated 07/28/2026 β€” that's the source, the version and the date, all folded into one cute little sign-off. go program something slay, bestie πŸ¦‹πŸ’–πŸŽ€

πŸ“¦ where this page comes from