Автор решил покопаться в своём гитарном усилителе Yamaha THR10c. В сервисной документации он нашёл упоминания о разъёмах UART и JTAG — и сразу захотел понять, что там можно сделать. Главная цель — достать прошивку, модифицировать её и залить обратно. Конкретные хотелки: добавить кнопку для отключения эмуляции кабинета (чтобы подключать настоящие гитарные колонки) и сделать так, чтобы внутренний динамик играл, даже если вставлен шнур в наушники.
Сначала автор разобрал усилитель, нашёл на плате площадки CB3 и CB4. Для UART подошёл разъём JST PH, а вот с JTAG пришлось повозиться — оказалось, это FFC-коннектор из серии FMN. После пайки и подключения UART ничего не выдал — ни на одной скорости. Зато JTAG заработал. Автор использовал адаптер на базе FTDI FT2232H Mini Module и OpenOCD. Система опознала TAP-контроллер с ID 4F1F0F0F — типичным для NXP LPC 2xxx на ядре ARM7TDMI-S. Дальше автор настроил OpenOCD, подключился через gdb и понял, что процессор работает в big-endian.
Усилитель оказался двухпроцессорным: есть загрузчик DTAb и основная прошивка DTAm. Автор сдампил 64 МБ адресного пространства, разобрал образ в Ghidra, нашёл карту памяти, разделил код на секции и перелинковал прошивку в ELF. Затем он написал макросы для патчинга — замены отдельных инструкций, чтобы вызывать свои функции вместо штатных.
В прошивке обнаружилось много интересного: несколько потоков, отдельный DSP, UART, который был полностью рабочим, но просто не использовался. Автор нашёл SysEx-команду в загрузчике, которая позволяет слить или перепрошить устройство по USB MIDI — вообще без пайки. Для своих целей он обошёлся без дополнительной кнопки: использовал комбинацию TAP + PRESET, чтобы переключать режимы. Индикацию завёл на неиспользуемые светодиоды тюнера. В итоге он собрал свою версию прошивки, которая умеет отключать эмуляцию кабинета и форсировать работу динамика при подключённых наушниках.