You would think a guitar amplifier would be a straightforward piece of analog electronics. But, of course, these days, everything has firmware, including [mforney]’s Yamaha THR10c. The service manual showed both a UART and JTAG header on the schematic, so as many of us would, he took that as a challenge.
Of course, the production board doesn’t have headers for these ports, but that’s not a real problem. The serial port seemed quiet, but the JTAG port was more productive. This revealed two binary images: a bootloader and the main firmware. Once you have the code, it is a straightforward, if not laborious, process to reverse engineer what the code does.
The next step is to figure out how to load new firmware. You can see in the post that this was done, and custom features sprang into life with custom-patched firmware.
We never get tired of seeing people dig into consumer devices like this. Things like JTAG and the wide availability of JTAG tools have made it easier but no less fun. Of course, there are even more features [mforney] has in mind, but now that’s just a matter of coding.

Reverse engineering wizardry!
I am a hardware and (a little bit) software developer myself. I wait for the day that someone did reverse engeeniering on the devices developed by me. How did I feel than? Good? Bad? :-D
To me its still funny that a guitar amp has an arm7 cpu. I also once had repaired a electronic keyboard and it had an arm9 cpu inside which would handle the dsp and sounds stuff and it had a bga flash chip and ran on some rtos..
The article says its CPU works at 12 MHz, that’s slower than an Atmega 328P MCU! Most of the work is obviously done by the DSP but still I would have expected more, especially given that it can talk to a PC via USB – and stream high quality audio, too.
Modding analog guitar amps was a serious business, will it catch on with the digital ones as well? I’m not sure Yamaha would allow it.
Claude does an incredible job of reverse engineering binaries. Upload something and give it a try.
Very cool! Nice worj