Repository navigation
Add AnyTone AT-D578UV support (#47) - #144
Merged
Merged
Conversation
Program the AT-D578UV over its USB cable: channels, zones, scan lists, talkgroup contacts, 264 menu settings plus the radio's DMR ID and name, the 500,000-entry call-sign database, and the PLUS model's air-band memory. The D578 speaks the D890's clone protocol over the D868/D878 memory map with D578 overrides (firmware 1.21), so the transport, window engine and planner are shared and parameterized (PlanLimits, IdentExpect); the map, codecs and sessions are the D578's own. Sessions require ident revision V111, the revision the fw-1.21 map was built for. Measured on a real D578UV, not taken from the published maps: - A write rebuilds the whole 128 KB flash half from that session's data; the rest is erased. Writes now carry every data window of the half and never send the radio's end-of-half marker frame, which left data in the inactive half when sent. - The CTCSS table has no 150.0 Hz entry (unlike the D890's). - The call-sign DB's end address is a real address; names stop at 15 bytes. - Simplex channels store their RX frequency as the offset. Every channel, zone, scan list and contact on the radio re-encodes byte for byte, and its 281,304-entry call-sign database does too. Hardware ladder on the radio: identity, one-byte, full codeplug, restore, band probe, settings, call-sign DB (18 MB read back exact). Air band only exists on the PLUS and is unverified on a screen. Also: a Bluetooth settings tab for every radio that has Bluetooth; settings text and radio names folded to ASCII instead of truncated or '?'-filled; the AnyTone dialog's Verify/Restore/latest commands take the driver key and refuse another model's backup. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #47.
Programs the AnyTone AT-D578UV over its USB cable. It supports:
How it fits
The D578 speaks the same clone protocol as the D890UV, but over the D868/D878-family memory map with D578 overrides (firmware 1.21).
PlanLimits,IdentExpect).V111, the revision the 1.21 map was built for. No readable region carries the firmware version.driver_key, and refuse a backup written for the other model.Measured on a real D578UV (fw 1.21)
Verification
Re-encode gates. Each takes the radio's own data and must reproduce it byte for byte:
Hardware ladder on the radio, each step read back and restored:
Full regression through the shipping program and settings paths: 120 windows swept before and after. Nothing changed outside the plan.
Dialog: Verify and Restore ran on the radio. The frontend was driven with stubbed IPC and real fixtures.
Not verified:
Also in this PR
Zürich→Zurich). Before, they were cut off at the first accented character or filled with?. This also changes the D890.ExpandedChannelis nowClone. The D578 seed lists the air band as receive-only, so the codeplug screens stop calling air channels out of range.Follow-up for the D890 (not in this PR): #143.
🤖 Generated with Claude Code