The router was fine. That is the part worth sitting with. It routed, it held its wifi, it had not crashed in months. And on a quiet Sunday I decided it would be better with OpenWrt on it, because the stock firmware was old and I wanted VLAN tagging it did not expose. The honest summary of the next four hours is that I broke a working thing to gain a feature I could have lived without.
How it went wrong
The flash itself looked clean. The web interface accepted the OpenWrt factory image, chewed on it, and rebooted. Then nothing. No DHCP, no ping to the default address, no lights settling into a normal pattern. Just a power LED and a faint, hopeful blink that went nowhere.
I had done the cardinal sin: I had not double-checked the exact hardware revision against the supported list. The board was a quiet "v2" that shipped with a different flash chip layout, and the image I flashed wrote a bootloader assumption that did not hold. The device was bricked in the proper sense, not "needs a reset" but "will not boot far enough to talk to anything."
Getting it back
What saved me was a four-pin serial header on the board, unpopulated but clearly labelled. Soldering a header on and hanging a 3.3V USB-to-UART adapter off it (TX to RX, RX to TX, ground to ground, and crucially not the voltage pin) gave me a console at 115200 baud. Watching a device boot over serial is the difference between guessing and knowing.
screen /dev/ttyUSB0 115200
The bootloader was alive, which meant the device was recoverable. Most of these consumer routers keep a minimal U-Boot that can pull an image over TFTP before the main firmware ever runs. I caught it during the boot window, dropped into the bootloader prompt, set a static IP on my laptop, ran a TFTP server with the correct image for the actual revision sat in its root, and let the bootloader fetch and write it.
# on the laptop
sudo ip addr add 192.168.1.2/24 dev eth0
sudo in.tftpd -L -s /srv/tftp
It pulled the image, flashed it, rebooted, and came up. The relief was disproportionate to the achievement.
What I actually learned
Three things stuck. Check the exact hardware revision before you flash anything, every time, because "it's the same model" is how you end up at a serial console at midnight. A serial header is the cheapest insurance in hardware; if a board has the pads, fit them before you need them. And the oldest one: do not reflash a device that is working unless you are genuinely prepared to lose it. I gained VLAN tagging. I also gained a soldered-on serial header and a healthy respect for leaving working things alone.