Industrial Automation



Direct part marks (DPMs) and other two-dimensional codes can vary widely in their readability. From impeccably formed laser markings to unwieldy dot peen symbols hammered into steel with a worn-out stylus, it’s obvious that some codes will make the cut while others will fail. The problem with failing codes is that they can really mess things up. They might obliterate the entire use history of a medical device or cause a perfectly good aircraft part to be tossed out after a no-read.

Because readability is such a major issue, the International Organization for Standardization (ISO) has written up some guidelines – known as ISO/IEC 15415 – that specify what a readable code should look like. It turns out that a well-formed, two-dimensional code can be described by eight different parameters. Let’s take a look at each of these in turn.


Since barcodes are made up of light and dark elements, it goes without saying that there must be a difference between the two. Contrast, or the difference in intensity between a symbol’s light and dark elements, is a key component of readability.


There are high-contrast barcodes, and there are low-contrast barcodes. There are also barcodes that have both high-contrast and low-contrast areas (usually due to poor ink distribution). The consistency in contrast throughout a symbol is known as the modulation. Many readers use algorithms to correct for low contrast, but they might have a tougher time processing a symbol when the contrast varies wildly from corner to corner.

The three arrows point to places where the symbol’s contrast gets lower, leading to a poor modulation grade.


Most two-dimensional codes are made up of individual squares, and for the average reader, it’s important that they’re actually square. If these cells are starting to look more like rectangles – either because they’re too tall or too wide – then the symbol containing them will get a poor grade in axial non-uniformity.

This 2D code is showing significant axial non-uniformity.


Like axial non-uniformity, grid non-uniformity also deals with the “squareness” of a symbol’s component cells. However, in this case, the measurement looks at the level of stretching within the symbol that’s happening diagonally rather than along the x- or y-axes. Basically, if the squares are starting to look kite-shaped, then the symbol’s grid non-uniformity is a problem.

This 2D code is showing significant grid non-uniformity.


Most barcode formats, or symbologies, contain certain mandatory patterns that are essential for alerting readers to their presence as well as to indicate the number of rows and columns. For example, the Data Matrix symbology always has a “finder pattern” – two adjacent borders made up of dark cells – and a “timing pattern” – two borders with alternating dark and light cells. Any obstructions to these must-have elements will be considered in the fixed pattern damage grade.

The three arrows point to places where a 2D code is showing fixed pattern damage.


Given the overall size of a code and the number of rows and columns, the expected cell size can be easily calculated. Sometimes, however, either the dark cells or the light cells will be larger than expected. This typically happens because of printing problems. If ink bleeds past the cell boundaries, then the dark cells will be too large. If there isn’t enough ink, the light cells could end up being oversized.


The reflectance margin parameter looks at the overall global threshold of light and dark and determines how likely it is that a light or dark symbol will be correctly identified as such. It’s a lot like contrast, but rather than measuring the difference in intensity, it measures the likelihood that contrast problems – or issues with light reflecting off the code’s surface – will cause errors.


This is a barcode’s chance to see how it measures up against a model student. The decodability grade is determined by how well a symbol can be decoded relative to an ideal two-dimensional symbol of exceptional quality.

As you can see, a lot goes into the grading of two-dimensional codes. Of course, some things will never be perfect, such as the reflectance margin grade for a code covered in shrink wrap. Nonetheless, it’s important to note that the root of readability problems could lie in one (or more) of several different aspects of a code.


Recent Posts

Leave a Comment


Written by on Reply