[Juan Carlos Jiménez] has reverse engineered a router — specifically, a Huawei HG533. While that in itself may not sound substantial, what he has done is write a series of blog posts which can act as a great tutorial for anyone wanting to get started with sniffing hardware. Over the five part series, he walks through the details of identifying the hardware serial ports which open up the doors to the firmware and looking at what’s going on under the hood.
The first part deals with finding the one or several debug ports on the hardware and identifying the three important pins – Rx, Tx and GND. That’s when he shows novices his first trick – shining a flashlight from under the PCB to find the pins that have trace connections (most likely Rx and Tx), those that don’t have any connections (most likely CTS and DTR) and those that have connections to the copper pour planes (most likely VCC and GND). The Tx signal will be pulled up and transmitting data when the device is powered up, while the Rx signal will be floating, making it easy to identify them. Finding the Baud rate, though, will require either a logic analyser, or you’ll have to play a bit of a guessing game.
Once you have access to the serial port and know its baud rate, it’s time to hook it up to your computer and use any one of the several ways of looking at what’s coming out of there — minicom, PuTTY or TeraTerm, for example. With access to the devices CLI, and some luck with finding credentials to log in if required, things start getting interesting.
Over the next part, he discusses how to follow the data paths, in this case, looking at the SPI signals between the main processor and the flash memory, and explaining how to use the logic analyser effectively and decode the information it captures. Moving further, he shows how you can hook up a USB to SPI bridge, connect it to the flash memory, take a memory dump of the firmware and read the extracted data. He wraps it up by digging in to the firmware and trying to glean some useful information.
It’s a great series and the detailed analysis he does of this particular piece of hardware, along with providing a lot of general tips, makes it a perfect starting point for those who need some help when getting started on debugging hardware.
Thanks, [gnif] for posting this tip.
Or you could try something like Sprite_tm’s automatic baudrate converter!
Awesome effort, there’s my bed-side reading for tonight sorted out! Also that 45-degree SMD chip is doing my head in….
Makes sense to put that chip in 45° rotation. Seems to be the RAM, and with todays RAM speed, getting short and equal length traces is key to a good layout. Rotating that chip definately helps here in keeping the traces equal without adding a lot of space consuming “wiggly traces” to get the timing correct.
These rotated ICs are something you can see in quite a few applications/products, there is one (the µC) in my new alarm clock (because of course, don’t turn it on, take it apart :-) ). I wonder if you can find products where the rotation is not a multiple of 45°…
45 degree placement is sometimes used for wave soldering.
Well, I did a project recently which involved tessellating pentagonal modules, but I’m not sure that counts.
In One of the Orange Pi devices: http://www.orangepi.org/orangepipc2/
You have the SoC rotated by 45° relative to the RAM and all three chips together rotated on the board by something like 20° to 30° :-)
Amazing! Thank you.