tools/tuning_read.py: реплика Read-последовательности тюнера через 0x68-мост (--direct,
без 34.. Connect, который в режиме Обновление DMR не отвечает). РАБОТАЕТ: модуль отвечает
на CmdOpenCal + Read-команды. Снят baseline: DMR VCCN=0x40 vs аналог 0x80 (аналог рабочий) —
вероятный виновник сдвига DMR TX. research/tuning-re/module-cal-baseline.txt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NikMGoqQWWk9wy2ww2vJAr
- research/tuning-re/cil_disasm.py — минимальный CIL-дизассемблер (dnfile).
- research/tuning-re/command-templates.txt — извлечённые шаблоны всех команд.
- docs/tuning-software-protocol.md: точная карта команд-полей + раскладка bufDigTune
+ ВЫВОД: частотная калибровка = ЗАМКНУТЫЙ ЦИКЛ (Set-команды несут band/опорные
частоты, не абсолютное смещение; WriteAll данных не несёт). Слепой скрипт записи
freq-трима может снова сбить калибровку -> безопаснее гнать штатным тулом с MMDVM
BER вместо частотомера, либо сперва рид-онли снять текущую калибровку.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NikMGoqQWWk9wy2ww2vJAr
- tools/a6_probe.py: проверка достижимости RDA-debug через мост.
РЕЗУЛЬТАТ: 0x68-мост жив, но RDA knock молчит на 115200/921600 (XON/XOFF и без) —
прошивка модуля держит UART, ROM-debug недоступен. Значит a6tools/AT+DMOFREQERR
напрямую не пробить; калибровку писать через 0x68.
- docs/tuning-software-protocol.md: декомпиляция Radio Tuning Software 241219.exe
(dnfile). Сборка UV5118_4819_Tune. Калибровка идёт ТЕМ ЖЕ 0x68 (не 0xAAAA),
команды 0xB0-0xBD извлечены из статических шаблонов: 0xBD connect, 0xB1 границы
диапазонов (UHF 400/435/470, VHF 136/150/174 МГц), 0xB2/B4 девиация, 0xB6/B7/B8
мощность/частотные точки, num_U_DigFreq = смещение DMR-частоты. Достижимо через
наш мост -> путь к правильной калибровке TX без прибора (фидбек по MMDVM BER).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NikMGoqQWWk9wy2ww2vJAr