So you bricked your router. Or maybe you just want a more convenient way to manage and monitor firmware upgrades (wiping settings via command is a lot more pleasant than holding down power buttons). Either way, adding serial access is pretty easy for many routers. I first did this a couple years ago, but I had to do it again recently, so I documented the process here for my current router (Netgear R8000/AC3200). I’ve also since discovered that there are pretty good instructions on the dd-wrt wiki and myopenrouter as well.
The main thing you need is a setup that has usb on one end (for the computer), and standard serial pins (at least RX, TX, ground) on the other end. Important: the serial side needs to be at 3.3v, and usb operates at 5v, so make sure you have a level shifter in there somewhere. I believe there’s some cables that have this all in one package, but I ended up using this breakout board which I purchased from Fry’s. Anything that mentions USB to TTL, and 3.3V should work fine though. If you use a board like this you’ll also need some wires and possibly a soldering iron (though tape or extra hands work just fine for a temporary unbricking setup).
Getting to the pins (R8000 specific)
- Remove the torx screws on the bottom and back, including the one hidden under the bottom label (no turning back after the label is broken, if you care about warranty!)
- Flip the router over, remove the bottom cover, and detach the antennas (6 colored wires), which should look something like this.
- There’s still a ribbon cable attaching the main board to the rest of the router, but it’s long enough that the board can be flipped over without disconnecting it, like this. The serial pins are now accessible (top left in the prior image).
In the above image, the pin with the red wire attached is RX, orange is TX, and yellow is ground. The 4th pin is not needed here. If you are using a breakout board like me, keep in mind that RX on the router should go to TX on the board, and vice versa. The image at the top of this post shows my final setup, complete with drilled hole for semi-permanent access (note the red and orange wires swapping near the breakout board).
On the computer end, any serial program like PuTTY or minicom will work. Find and select the usb device via something like device manager or dmesg, set baud rate to 115200, and everything else should pretty much be defaults. With everything connected, you should be able to see a stream of text output whenever the router boots. If you don’t, you can verify your setup by disconnecting from the router and shorting between RX and TX, and making sure any typed text is echoed back.
To get to a command prompt, reboot the router and mash
Ctrl-C a bunch as it starts up.
Pretty much the only command I use is
nvram erase, which resets router settings, and has generally resolved any boot issues I’ve encountered. You can also apply and transfer new firmware over telnet for more serious problems, and do a whole bunch of other things, but I’ll leave those for other sites to cover, at least until I cause more problems and need to figure those things out for myself.