Reverse engineering is one of the most important skills a hardware engineer can have, and not just for repair purposes but also for designing upgraded hardware and obsolete legacy equipment. I still remember how reverse engineering my C64 computer taught me so much on computer architecture and bus interfacing. So, here are some simple tips might help you when reverse engineering any board for repair or design purposes:
First: The Tools
- Have all your tools next to you: screw drivers, pry tool kit, pliers and tweezers, magnifier, benchtop lights and anything else you might need.
- Make sure to keep an assortment of jumper wires and connectors such as alligator clips, board-to-board jumper wires, test leads, oscilloscope probes with retractable hook tip, needle-tipped multimeter probes, and any other wires.
- Digital inspection microscope has become an important tool for reverse engineer a surface-mount boards. An inexpensive one will do the job.
- If you are into computer interfaces such as USB, RS-232, Ethernet…etc, then a packet sniffer will be quite handy.
- An oscilloscope + logic analyzer can make your life easier, even if it is just a simple 2-channel oscilloscope.
- The multimeter continuity tester is your best friend, keep it handy.
- A notebook and a pen to take notes.
- Optional: a digital camera (or your phone) to record the process and take notes.
Second: Where to Start
Before powering on the board
- Identify the power supply section of the board, it will facilitate tracing the power supply of each chip onboard.
- Find the ground plane(s) and any ground traces/test points.
After powering on the board:
- Find the power rails on the PCB and take a note of the voltage levels.
Third: Going deeper
- Identify the connectors on the board and their pinout, especially standard or well-known ones such as the DB9, BNC, SMA, DIN,…etc. Even discrete pin headers are good to identify and figure out their pinout.
- Look up the datasheets and application notes of all the parts populated on the PCB. The datasheets will tell you the functionality, the application note will give more details on the different design configurations of the component of interest.
- Make sure to read the reference designator correctly. - Codes on surface-mount passive component are the key to know the value of each part.
Now you are ready to reverse-engineer the board and understand how it works.