The heart of modern electronics is often a programmed IC (Integrated Circuit) thus the most important step when reverse engineering a PCB is to clone or copy the programmed IC’s. It should be noted that this process is only done after a thorough check to see if the PCB or IC is available, as this is proprietary code + can cause legal issues. You can only proceed given you are not breaching any IP or patents.
The concept of programmed IC duplication is to extract the machine code (often called HEX code) from the original programmed circuit + then write this code back onto a new IC which is critical in order to produce a duplicate PCB.
As electronics have got more complicated, circuit designers use integrated circuits to simplify + add functionality to a circuit. One example, is the use of Complex Programmable Logic Device (CPLD) to remove dozens of logic gates from a circuit by creating them on one chip thus saving cost time + circuit board real estate.
Before the days of microcontrollers circuit designers would use microprocessors, Read Only Memory (ROM) + Random Access Memory (RAM) to do the same thing. The ROM is where the program is stored + when reverse engineering a PCB with ROM on board these ROM’s need to be copied, luckily most universal programmers carry the older types of ROM + the programs are very rarely protected.
As technology has advanced Electronically Erasable Programmable Read Only Memories (EEPROM) have appeared, these often are used to store parameters or settings for a microcontroller, in general these can all be read using a universal programmer.
Microcontrollers are one of the hardest things to work with when reverse engineering a PCB this is because it is extremely easy to secure/copy protect a microcontroller. Often a designer will secure the device when programming it the first time so that it cannot be read properly by a universal programmer. If this is the case then there are ways around this, however, they are generally quite time consuming + involve manually probing each pin + rewriting the programming. It is very common to find microcontrollers on a PCB next to their programing headers - often these programming headers can give a clue to how the designer programmed the device + can sometimes be used for extracting the firmware. Although there are many microcontrollers on the market the main two microcontroller brands are: PIC microcontrollers which generally use the In Circuit Serial Programming (ICSP) interface + Atmel microcontrollers use the In Circuit Emulator (ICE) header.
Field Programmable Gate Arrays (FPGA)s are another type of programmed chip that are more common on more costly electronics + generally on newer electronics. FPGAs are often more complicated to duplicate as they normally have proprietary software/hardware suites + are commonly programmed over (Joint Test Action Group) JTAG or with a special programmer + cannot be read using a standard universal programmer.
If you need help to duplicate your programmed IC then get in touch, we’d love to help!