Files
viktor 5f4d207aa5 Мост к DMR-модулю, разбор спектра REFV DualTachyon, карта запчастей прошивки
Баузбенд FM100B:
- найден прозрачный мост ПК<->модуль (включение с зажатой МЕНЮ), проверен живьём
- расшифрована контрольная сумма кадров (one's complement, BE), сверена с ответом рации
- инструмент tools/fm100b.py (ping/send/raw/scan)
- cmd 0x25 = запрос версии, модуль отвечает V1.2.0.32 (совпало с офиц. образом)
- разобран диспетчер входящих кадров: 193 записи, реальный код у 10 команд
- cmd 0x59 = индикация приёма, она же управляет гейтом звука PA14
- исправлено: boot-handshake это cmd 0x84, а не 0x64 (research/re/dmr.md)

Спектроанализатор REFV DualTachyon (docs/refw-spectrum.md):
- вызывается как функция горячей клавиши №22 Analog Spectrum
- вход 0x08009CAA -> обычный 0x080139E4 / по зоне 0x08015318
- спектр это экран №11; тик 0x08013BA4 (автомат на 4 состояния), клавиши 0x08013BFC

Декомпозиция (docs/firmware-parts.md):
- два процессора + внешний SPI = три канала внедрения
- карта ресурсов SPI: шрифты, пиньинь, голос, таблица Unicode
- найден штатный загрузчик ресурсов FontVoicePicture (шрифты/голос/картинки)
- дерево меню целиком: MIC/SPK Gain, RX/TX Limit, SMS Format уже в стоке
- аудио двухступенчатое: PA2 питание УНЧ, PA14 гейт от DMR-модуля

Прочее:
- везде исправлен режим прошивки: тангента PTT вместо клавиши "*"
- устаревший Ru-4D_Flasher.exe удалён из репозитория
- добавлены инструменты реверса: xref, refs, gpiomap, gpioscan, schem
2026-07-22 21:17:20 +09:00

319 строки
14 KiB
JSON

{
"+pGpGpGpGuF": "+pGpGpGpGuF",
" DTMF Remote Kill": " DTMF УДАЛ ОТКЛ",
"DMR Remote Kill ": "DMR УДАЛ ОТКЛ",
" Copy(Transmit) ": " КОПИЯ(ПЕРЕДАЧА)",
" Copy(Recive) ": " КОПИЯ(ПРИЁМ)",
"Receving": "ПРИЁМ",
"@Backing up... ": "@РЕЗ.КОПИЯ...",
"Please wait ": "ПОДОЖДИТЕ",
" ERROR": " ОШИБ",
" -000DBM": " -000DBM",
"Password : ": "ПАРОЛЬ :",
"Emergency Alarm ": "ТРЕВОГА",
" Being Searched ": " ПОИСК",
" Radio Wake Up ": " БУДИЛЬНИК",
"DMR Remote Stun ": "DMR УДАЛ БЛОК",
" call stopped. ": " ВЫЗОВ ОСТАНОВЛЕН",
"Call type error,": "ОШИБКА ТИПА ВЫЗ",
" Dialing ": " ВЫЗОВ",
"Callback ": "ОБР.ВЫЗОВ",
"Addressbook ": "АДР.КНИГА",
"All Call ": "ОБЩ.ВЫЗОВ",
"Contact Error! ": "ОШИБКА КОНТАКТА",
"No Analog CH ": "НЕТ АНАЛОГ КАН",
" Group Call": " ГРУПП.ВЫЗ",
" All Call ": " ОБЩ.ВЫЗОВ",
" Individual": " ЛИЧНЫЙ",
" Address Book ": " АДР.КНИГА",
" CTC/DCS (A)": " CTC/DCS (A)",
" RX CTC/DCS (A)": " RX CTC/DCS (A)",
"TX CTC/DCS (A)": "TX CTC/DCS (A)",
" * Switch Type ": " * СМЕНА ТИПА",
"No Call Records ": "НЕТ ЗАПИСЕЙ ВЫЗ",
" Call Log ": " ЖУРНАЛ",
" Remote CTC/DCS ": " УДАЛ CTC/DCS",
"Group Call": "ГРУПП.ВЫЗ",
"All Call ": "ОБЩ.ВЫЗОВ",
"All Call ": "ОБЩ.ВЫЗОВ",
"Being Monitored ": "ПРОСЛУШКА",
" Drafts ": " ЧЕРНОВИКИ",
" Edit Key ": " ПРАВКА КЛЮЧА",
"Station Name : ": "ИМЯ СТАНЦИИ :",
" Offset Set ": " НАСТР СДВИГА",
"Switch": "СМЕНА",
" Edit Member ": " ПРАВКА УЧАСТНИК",
" Inbox ": " ВХОДЯЩИЕ",
" Mute Code (A)": " КОД МУТ (A)",
" New SMS ": " НОВОЕ СМС",
" Outbox ": " ИСХОДЯЩИЕ",
" Default SMS ": " ШАБЛОН СМС",
"Inbox Empty ": "ВХОДЯЩИЕ ПУСТО",
" Outbox Empty ": " ИСХОДЯЩИЕ ПУСТО",
"Outbox ": "ИСХОДЯЩИЕ",
" Drafts Empty ": " ЧЕРНОВИКИ ПУСТО",
"Drafts ": "ЧЕРНОВИКИ",
" Empty ": " ПУСТО",
"Default SMS ": "ШАБЛОН СМС",
" Dial No. ": " НАБОР НОМЕРА",
"Individual ": "ЛИЧНЫЙ",
"Group Call ": "ГРУПП.ВЫЗОВ",
"VER :RT-4D V3.25": "VER :RT-4D V3.25",
" DATE:2026-02-05 ": " DATE:2026-02-05 ",
"DMR : ": "DMR :",
" IC : ": " IC :",
"Unknown ": "НЕИЗВЕСТНО",
"BATT:0.0V ": "BATT:0.0V",
" Version ": " ВЕРСИЯ",
"Power: High ": "МОЩН: ВЫС",
"Power: Low ": "МОЩН: НИЗ",
" Dual Standby:Off": " ДВОЙН ОЖИД:ВЫКЛ",
"Dual Standby:On ": "ДВОЙН ОЖИД:ВКЛ",
"TX Priority:Edit": "ПРИОР TX:ПРАВКА",
"TX Priority:Busy": "ПРИОР TX:ЗАНЯТО",
" Scanning ": " СКАНИРОВ",
"TX End Tone: Off": "ТОН КОНЦА TX:ВЫК",
"TX End Tone: 01 ": "ТОН КОНЦА TX: 01",
"TX End Tone: 02 ": "ТОН КОНЦА TX: 02",
"TX End Tone: MDC": "ТОН КОНЦА TX:MDC",
" Talkaround : Off": " ПРЯМОЙ : ВЫКЛ",
"Talkaround ": "ПРЯМОЙ",
"Reverse Freq ": "РЕВЕРС ЧАСТ",
" Emergency ": " ТРЕВОГА",
" No Analog CH ": " НЕТ АНАЛОГ КАН",
"@Send Single Tone": "@ПЕРЕД ОДИН ТОН",
"Radio Online ": "РАЦИЯ НА СВЯЗИ",
"Radio Offline ": "РАЦИЯ НЕ НА СВЯЗ",
"Check Failed ": "ПРОВЕРКА СБОЙ",
" Show Caller Info": " ПОКАЗ ВЫЗЫВ",
"Called Show: ": "ПОКАЗ ВЫЗЫВ:",
"Show Called Info": "ПОКАЗ ВЫЗЫВАЕМ",
" RX Mode : AM ": " РЕЖИМ RX : AM",
"RX Mode : SSB ": "РЕЖИМ RX : SSB",
"RX Mode : FM ": "РЕЖИМ RX : FM",
" Analog Mode ": " АНАЛОГ РЕЖИМ",
"Digital Mode ": "ЦИФР РЕЖИМ",
" Analog VOX : On ": " АНАЛОГ VOX : ВКЛ",
"Analog VOX : Off": "АНАЛОГ VOX :ВЫКЛ",
"Promiscuous: On ": "ПРОМИСК: ВКЛ",
"Promiscuous: Off": "ПРОМИСК: ВЫКЛ",
"Dual Slot : Off ": "2 СЛОТА : ВЫКЛ",
"Dual Slot : On ": "2 СЛОТА : ВКЛ",
"g oIHx": "g oIHx",
" DMR Time Slot: 1": " DMR СЛОТ: 1",
"DMR Time Slot: 2": "DMR СЛОТ: 2",
" DMR Encrypt: Off": " ШИФР DMR: ВЫКЛ",
"is out of range ": "ВНЕ ДИАПАЗОНА",
" Resulting freq ": " ИТОГ ЧАСТОТА",
" Cannot be set! ": " НЕЛЬЗЯ ЗАДАТЬ!",
"Single display ": "ОДИН ДИСПЛЕЙ",
"ID Out Of Range ": "ID ВНЕ ДИАПАЗ",
" Clear All SMS ": " ОЧИСТ ВСЕ СМС",
" Contacts Full! ": " КОНТАКТЫ ПОЛНЫ!",
"Type Error! ": "ОШИБКА ТИПА!",
"Saving Data.....": "СОХР ДАННЫХ.....",
" Clearing Data...": " ОЧИСТ ДАННЫХ...",
"g cIHx": "g cIHx",
"Starting up... ": "ЗАПУСК...",
"Please wait ": "ПОДОЖДИТЕ",
"CH MODE ": "РЕЖИМ КАНАЛА",
"VFO MODE ": "VFO РЕЖИМ",
" VFO MODE-A ": " VFO РЕЖИМ-A",
" VFO MODE-B ": " VFO РЕЖИМ-B",
"All Call": "ОБЩ.ВЫЗ",
"Recovering... ": "ВОССТАНОВЛ...",
" CH----- ": " CH-----",
"Update DMR Chip ": "ОБНОВЛ DMR ЧИП",
"Please Wait... ": "ПОДОЖДИТЕ...",
"Menu ": "МЕНЮ",
"Basic Set ": "ОСН. НАСТР",
"Key Define ": "НАЗНАЧ КЛАВ",
"Analog Set ": "АНАЛОГ НАСТР",
"Digital Set ": "ЦИФР НАСТР",
"Channel Set ": "НАСТР КАНАЛА",
" Zone Set ": " НАСТР ЗОНЫ",
"Message ": "СМС",
"Device Name ": "ИМЯ РАЦИИ",
"Voice Prompt ": "ОЗВУЧ",
"Key Beep ": "БИП КЛАВ",
"Lock Timer ": "ТАЙМЕР БЛОК",
"Backlight ": "ПОДСВЕТКА",
"Light Timer ": "ТАЙМЕР СВЕТА",
"Brightness ": "ЯРКОСТЬ",
"Menu Exit ": "ВЫХОД ИЗ МЕНЮ",
"Dual Standby ": "ДВОЙН ОЖИД",
"TX Priority ": "ПРИОР TX",
"Freq Step ": "ШАГ ЧАСТ",
"Save Mode ": "РЕЖИМ ЭКОН",
"Scan Mode ": "РЕЖИМ СКАН",
"Scan Direction ": "НАПРАВ СКАН",
"Scan Dwell ": "ЗАДЕРЖ СКАН",
" Scan Interval ": " ИНТЕРВ СКАН",
"Scan Return ": "ВОЗВРАТ СКАН",
"Scan Start ": "НАЧАЛО СКАН",
"Scan End ": "КОНЕЦ СКАН",
"Alarm Type ": "ТИП ТРЕВОГИ",
"Main PTT TX ": "ОСН PTT TX",
"Area A Mode ": "РЕЖИМ ЗОНЫ A",
"Area A Show ": "ПОКАЗ ЗОНЫ A",
"Area A Zone ": "ЗОНА A",
"Area B Mode ": "РЕЖИМ ЗОНЫ B",
"Area B Show ": "ПОКАЗ ЗОНЫ B",
"Area B Zone ": "ЗОНА B",
"Save CH ": "СОХР КАНАЛ",
"Delete CH ": "УДАЛ КАНАЛ",
"LCD Contrast ": "КОНТРАСТ LCD",
"Freq Input ": "ВВОД ЧАСТ",
"Reverse CH Dir ": "РЕВЕРС КАНАЛА",
"Carrier LED ": "СВЕТОДИОД НЕС",
"RSSI Refresh ": "ОБНОВЛ RSSI",
"APO ": "АВТОВЫКЛ",
"APO Timer ": "ТАЙМЕР АВТОВЫК",
"FM RX Standby ": "FM ПРИЁМ ОЖИД",
"Initialization ": "СБРОС",
" Second PTT ": " ВТОРОЙ PTT",
"Side Key 1 S ": "БОК КЛАВ 1 КОР",
"Side Key 1 L ": "БОК КЛАВ 1 ДЛ",
"Side Key 2 S ": "БОК КЛАВ 2 КОР",
"Side Key 2 L ": "БОК КЛАВ 2 ДЛ",
"0 Press Long ": "0 ДЛ НАЖАТИЕ",
"1 Press Long ": "1 ДЛ НАЖАТИЕ",
"2 Press Long ": "2 ДЛ НАЖАТИЕ",
"3 Press Long ": "3 ДЛ НАЖАТИЕ",
"4 Press Long ": "4 ДЛ НАЖАТИЕ",
"5 Press Long ": "5 ДЛ НАЖАТИЕ",
"6 Press Long ": "6 ДЛ НАЖАТИЕ",
"7 Press Long ": "7 ДЛ НАЖАТИЕ",
"8 Press Long ": "8 ДЛ НАЖАТИЕ",
"9 Press Long ": "9 ДЛ НАЖАТИЕ",
" SQ Level ": " УР ШУМОПОД",
"TX Start Tone ": "ТОН НАЧ TX",
"TX End Tone ": "ТОН КОНЦА TX",
"Single Tone ": "ОДИНОЧ ТОН",
"Tone Timer ": "ТАЙМЕР ТОНА",
"MIC Gain ": "УСИЛ МИКР",
"SPK Gain ": "УСИЛ ДИНАМ",
"Glitch TH ": "ПОРОГ ПОМЕХ",
"Detect Range ": "ДИАПАЗ ДЕТЕКТ",
"Repeater Delay ": "ЗАДЕРЖ РЕПИТ",
"DTMF Delay ": "ЗАДЕРЖ DTMF",
"DTMF Interval ": "ИНТЕРВ DTMF",
"DTMF Duration ": "ДЛИТ DTMF",
"DTMF Mode ": "РЕЖИМ DTMF",
"DTMF Select ": "ВЫБОР DTMF",
"DTMF Display ": "ПОКАЗ DTMF",
"DTMF TX Gain ": "УСИЛ TX DTMF",
"DTMF RX TH ": "ПОРОГ RX DTMF",
"DTMF Control ": "УПРАВЛ DTMF",
"VOX ": "VOX",
"VOX Delay ": "ЗАДЕРЖ VOX",
"VOX TH ": "ПОРОГ VOX",
"Short Tail ": "КОР ХВОСТ",
"Personal ID ": "ЛИЧНЫЙ ID",
"Call Tone ": "ТОН ВЫЗОВА",
"Call End Tone ": "ТОН КОНЦА ВЫЗ",
"Group Hold ": "УДЕРЖ ГРУППЫ",
"Single Hold ": "УДЕРЖ ЛИЧН",
"TX Denoise ": "ШУМОПОД TX",
"RX Denoise ": "ШУМОПОД RX",
"Contacts Set ": "НАСТР КОНТАКТ",
" Talk Group ": " ГРУППА",
"Encryption Set ": "НАСТР ШИФР",
"Called Show ": "ПОКАЗ ВЫЗЫВ",
"Send DTMF ": "ПЕРЕД DTMF",
"Caller Keep ": "УДЕРЖ ВЫЗЫВ",
"Clear All Log? ": "ОЧИСТ ЖУРНАЛ?",
"DMR Or Analog ": "DMR ИЛИ АНАЛОГ",
"RX/TX Limit ": "ЛИМИТ RX/TX",
"CH Alias ": "ИМЯ КАНАЛА",
"TX Power ": "МОЩН TX",
"Scan Add ": "ДОБАВ В СКАН",
"TOT ": "ТАЙМАУТ TX",
"Set TX Freq ": "ЗАДАТЬ ЧАСТ TX",
"DCS Encrypt (A)": "ШИФР DCS (A)",
"Band Width (A)": "ПОЛОСА (A)",
"Tail Tone (A)": "ХВОСТ ТОН (A)",
"Scrambler (A)": "СКРЕМБЛ (A)",
"Busy Lock (A)": "БЛОК ЗАНЯТ (A)",
"RX Demod (A)": "ДЕМОД RX (A)",
"DMR Mode (D)": "РЕЖИМ DMR (D)",
"DMR Slot (D)": "СЛОТ DMR (D)",
"Color Code (D)": "ЦВ.КОД (D)",
"Contacts (D)": "КОНТАКТЫ (D)",
"TG List (D)": "СПИСОК ТГ (D)",
" Encryption (D)": " ШИФР (D)",
"TX Politely (D)": "ВЕЖЛ TX (D)",
"Promiscuous (D)": "ПРОМИСК (D)",
"Channel ID (D) ": "ID КАНАЛА (D)",
"ID Select (D)": "ВЫБОР ID (D)",
"Clear All SMS? ": "ОЧИСТ ВСЕ СМС?",
"SMS Format ": "ФОРМАТ СМС",
"SMS Font ": "ШРИФТ СМС",
"SMS Prompt ": "ОЗВУЧ СМС",
"Cantacts List ": "СПИС КОНТАКТ",
"Add Contact ": "ДОБАВ КОНТАКТ",
"Edit Name ": "ИЗМЕН ИМЯ",
"New SMS ": "НОВОЕ СМС",
"Edit Type ": "ИЗМЕН ТИП",
"Edit ID ": "ИЗМЕН ID",
"Save? ": "СОХРАНИТЬ?",
"Delete? ": "УДАЛИТЬ?",
"Send ": "ПЕРЕД",
"Inbox ": "ВХОДЯЩИЕ",
"Outbox ": "ИСХОДЯЩИЕ",
"Contacts ": "КОНТАКТЫ",
" Reply ": " ОТВЕТ",
"Forward ": "ПЕРЕСЛАТЬ",
"Resend? ": "ПОВТОР ОТПР?",
" Query ID ": " ЗАПРОС ID",
" Non-existent ID ": " ID НЕ СУЩЕСТВУЕТ",
"Draft Full! ": "ЧЕРНОВИКИ ПОЛНЫ!",
"No Digital CH ": "НЕТ ЦИФР КАН",
" ID Conflict ": " КОНФЛИКТ ID",
" Send OK ": " ОТПРАВЛЕНО",
"Send Failed ": "СБОЙ ОТПРАВКИ",
"Dual Display ": "ДВОЙН ДИСПЛЕЙ",
"Single Display ": "ОДИН ДИСПЛЕЙ",
"NJPTLH": "NJPTLH",
"0JPT.H": "0JPT.H",
"PC Programing ": "ПРОГРАММ С ПК",
" Calibration OK! ": " КАЛИБРОВКА OK!",
"DTMF Remote Stun": "DTMF УДАЛ БЛОК",
"DTMF Wake up ": "DTMF БУДИЛЬНИК",
"@Recovering... ": "@ВОССТАНОВЛ...",
"Members Full ": "УЧАСТНИКИ ПОЛНЫ",
"CH Full ": "КАНАЛЫ ПОЛНЫ",
" Area A MDC: ": " ЗОНА A MDC:",
"Area B MDC: ": "ЗОНА B MDC:",
"Area A DTMF: ": "ЗОНА A DTMF:",
"Area B DTMF: ": "ЗОНА B DTMF:",
" ID: ": " ID:",
"Unknown Country ": "СТРАНА НЕИЗВ",
" Off ": " ВЫКЛ",
" CH- ": " CH-",
" Call Out ": " ИСХ ВЫЗОВ",
"Call In ": "ВХ ВЫЗОВ",
" All Call ": " ОБЩ.ВЫЗОВ",
"ycd)BBH": "ycd)BBH",
"FM RX ": "FM RX",
" AM RX ": " AM RX",
"SSB RX ": "SSB RX",
"@Clear All Limit ": "@ОЧИСТ ВСЕ ЛИМИТ",
" Monitor Mode ": " РЕЖИМ МОНИТОР",
"<?lllllllllOKB+cdefgh1H": "<?lllllllllOKB+cdefgh1H",
" repeater failed ": " СБОЙ РЕПИТЕРА",
"Connect to ": "ПОДКЛ К",
" 4IHr4H": " 4IHr4H",
"Please Charge! ": "ЗАРЯДИТЕ!",
"g 6IHx": "g 6IHx",
"DRM Remote Stun ": "DMR УДАЛ БЛОК",
"Prohibit TX ": "ЗАПРЕТ TX",
" Invalid ID ": " НЕВЕРНЫЙ ID",
" NO CTC/DCS ": " НЕТ CTC/DCS",
"CTCSS: ": "CTCSS:",
"DCS:D N ": "DCS:D N",
"qHqBH": "qHqBH",
"tAtpG": "tAtpG",
"United States f": "США f",
"Canada ": "КАНАДА"
}