Simply defined, reverse engineering is a process of deconstructing an object to understand its design, functions and architecture and creating a duplicate. The technique is used for many purposes, including to make components that are no longer available (obsolete) and as a way to make new, compatible products that are cheaper.
It is often also used to copy something which its creator does not wish to be copied – for example captured military hardware or a competing product. The reverse engineering of commercial products to produce low-cost copies is generally considered unethical. However, many large companies reverse engineer competitors’ products simply to gain an understanding of them.
The principle of reverse engineering can be applied to many different types of product with different techniques required for each. Mechanical products are disassembled into individual components and dimensional measurements are then made. It is common to use 3D scanning to obtain the complete shape of components and then identify critical features, such as holes and interface surfaces, for more accurate measurement. This is often done to re-document legacy products, for example where no computer aided design (CAD) data exists.
Electronic products are typically reverse engineered by visual inspection to identify the circuits used. For integrated circuits this may require chemical etching to reveal layers before imaging using a scanning electron microscope. Software is reverse-engineered by first attempting to examine source code, and if that is not available then various binary methods may be used, such as analysis of information exchange using bus or packet analyzers.
Chemical analysis, meanwhile, may be used to determine the composition of a product or the processes used to create it, which can be important in determining patent infringement.
In many cases, there are no ethical issues with reverse engineering. For example, where a company wishes to re-document its own legacy product. At the other end of the scale, it is generally considered unethical to reverse engineer a competitor’s product with the intention of producing a low-cost copy. This may or may not be legal, depending on intellectual property law in the territory of operation, as well as any relevant patents and design registrations. Reverse engineering may also be carried out by the originator of a product to determine whether a similar product infringes its patents. This may be required because patents often only cover very specific methods of constructing a product, including the processes used to manufacture it.
Between these clear-cut cases, there are many grey areas. Reverse engineering may be performed to ensure compatibility with a competitor’s product, rather than to copy it. This is generally legal and may even be beneficial to the original manufacturer. Regulations tend to be stricter on reverse engineering of software than of mechanical products.
Most mechanical products are now designed using 3D CAD. The expectation is that standard parts and legacy products should be available within the CAD system to be virtually assembled with new products being designed or so that replacement parts can be constructed. In many cases however, there are no drawings of the legacy parts, or the drawings provide insufficient data. For example, cast parts were often only fully defined as physical patterns. In these cases, it may be necessary to reverse engineer the parts in order to create the 3D CAD models.
The most widely used dimensional measurement methods for reverse engineering are laser scanning, structured line scanning and coordinate measurement machines (CMMs). Traditional handheld instruments, such as micrometers, are also very useful for measuring critical dimensions, such as the diameter of a shaft.
Important characteristics of measurement instruments include their accuracy, how quickly they can obtain individual coordinates and their ability to measure small features in confined spaces. ‘Accuracy’ is still widely used as a descriptive term, but strictly speaking should not be used to quantify performance since it does not have an agreed definition. Instead, ‘uncertainty’ should be used to measure the accuracy of an instrument, since uncertainty can be fully quantified using internationally-agreed procedures. However, such methods are demanding and most scanning measurements are not able to meet them. This means that scanning measurements should generally not be used for critical dimensions.
Laser scanners are able to rapidly measure millions of coordinates on 3D objects using the principle of triangulation. Laser scanners have two main parts – a laser source and a camera. The simplest type of laser scanner is a laser point scanner in which the laser source projects a laser dot onto the part. The laser scanner is calibrated so that the direction of the laser is accurately known in terms of an azimuth (what direction to face) and elevation angle. The distance between the laser and the camera, and the orientation of the camera, are also accurately calibrated. The position of the red dot on the camera’s image plane can be converted into an azimuth and elevation angle of the dot relative to the camera. The scanner therefore knows the direction of the point on the component from two different locations and the coordinates can, therefore, be calculated.
As the laser point is moved over the object, different coordinates on the surface are measured. A laser point scanner gives four direction angles for each coordinate – two from the laser and two from the camera. This is more than is required, since only three dimensions are required to find a point in space. The laser can be passed through lenses so that a continuous line is projected on to the part. Now, for a single position of the laser, each coordinate along the line can be identified as an individual pixel on the camera’s image plane. Laser line scanners can, therefore, scan objects much more quickly.
Structured light scanners are similar to laser scanners, but rather than project a line of laser light, they project a pattern of white or blue light. The pattern may appear as gradually shaded bands or a grid. Structured light scanners can provide improved accuracy compared to laser scanners, especially when scanning objects with challenging optical properties, such as polished metal.
CMM’s are machines that physically move a probe around a part. They have encoders within their joints so that the position of the probe is always accurately known. CMMs have some advantages over optical instruments. They allow automated measurement of points on parts from multiple directions and at relatively low uncertainties. This makes them very useful for carrying out defined inspection sequences. Programming a CMM for a reverse engineering job can, however, be time-consuming.
When reverse-engineering a mechanical product, special software is normally required to convert the measurement data into a useable CAD file. Scans produce huge point-cloud data-sets, containing millions of individual points measured on the surfaces of the part. The first job of the software is to align multiple point-clouds obtained from different measurement datums (information) into a single coordinate system. Often optical issues such as reflections will mean there are holes or spikes in the combined point cloud data. The software is used to clean the point-cloud data, filling holes and removing any spikes that don’t relate to real geometry. These smoothing and repair operations result in a ‘watertight’ polygon mesh. Feature recognition may then be carried out to identify geometrical elements such as flat surfaces and cylindrical holes.
Reverse engineering has a wide range of uses. Many of these are entirely legitimate, such as documenting legacy parts or checking for patent infringement. Non-contact scanning can rapidly provide 3D models of complex parts while CMMs provide highly-accurate measurements.