Skip to content

USB Investigation

Rear panel close-up showing the mini USB port and UPDATE/OPERATE switch

Before opening the chassis, I wanted to see what the USB port had to say for itself. I connected a mini USB cable from the rear panel to a Linux workstation with the amp’s operation mode switch set to OPERATE and no AC power connected.

The port enumerated immediately. No AC power required. The CP2104 is bus-powered from the USB host, so the bridge chip comes alive the moment the cable is plugged in regardless of whether the amplifier’s own power supply is running. This is a useful detail: the USB interface is independently powered and does not depend on the amp being switched on.

The kernel identified the device as a Silicon Labs CP2104 USB to UART Bridge Controller, vendor ID 10C4, product ID EA60. It was assigned serial number 02368459, picked up the cp210x kernel driver, and attached as /dev/ttyUSB3 at full-speed USB (12 Mbps).

[ 1234.567890] usb 1-2: new full-speed USB device number 5 using xhci_hcd
[ 1234.678901] usb 1-2: New USB device found, idVendor=10c4, idProduct=ea60
[ 1234.678903] usb 1-2: Product: CP2104 USB to UART Bridge Controller
[ 1234.678905] usb 1-2: SerialNumber: 02368459
[ 1234.689012] cp210x 1-2:1.0: cp210x converter detected
[ 1234.690123] usb 1-2: cp210x converter now attached to ttyUSB3

This tells me exactly what the USB port is and, just as importantly, what it is not. The CP2104 is a dedicated USB-to-UART bridge. It converts USB signaling to asynchronous serial (TX/RX), and on the other side of that bridge is a UART on the amplifier’s main microcontroller. This is not a DFU (Device Firmware Upgrade) endpoint, not a mass storage device, and not a proprietary protocol. It is a serial port. Whatever firmware update procedure exists, it runs as a serial protocol over this UART link.

The CP2104 is a step up from the more common CP2102 in Silicon Labs’ lineup. It adds GPIO pins and slightly better configurability, and it is a common choice in embedded products where the manufacturer wants a reliable, driver-supported serial console without dedicating MCU resources to USB.

Without AC power, the UART line settled with a single null byte (0x00), which is expected. The CP2104 is alive and forwarding whatever is on the TX line, but the MCU on the other end is powered from the amp’s internal supply and is completely dead. The next step is to apply AC power and monitor /dev/ttyUSB3 for boot messages, but that has to wait until the vented capacitor is replaced. Powering the amp with a failed cap on the 12V rail would risk cascading damage to the control circuitry.