Scan Direct Part Marking (DPM) Codes

Scan Direct Part Marking (DPM) Codes

Dynamsoft Barcode Scanner is capable of decoding Direct Part Marking (DPM) codes. Due to their nature of being etched into surfaces rather than printed in black and white, DPM codes present a number of unique challenges for barcode readers. In this post, we discuss those challenges and how Dynamsoft Barcode Reader overcomes them.

What is DPM?

Direct part marking (DPM) is a process in which equipment is permanently marked with a type of code – typically a Data Matrix code or a QR Code. The code is etched into silicon, metal, plastic, or glass via a laser or etching device.

DPM codes are most commonly found in:

  • Electronic manufacturing
  • Automotive
  • Aerospace
  • Telecommunications
  • Healthcare equipment and devices

DPM codes contain vital information used to identify parts, provide manufacture dates, safety requirements, and so on. A special barcode reader is used to scan the DPM codes and decode the information to track and manage the parts throughout their lifecycle.

The Data Matrix code is the most widely used barcode format for DPM. The Data Matrix is a two-dimensional (2D) matrix barcode made up of square or rectangular modules arranged within a perimeter finder pattern. The reasons for its popularity in DPM include:

  • High Data Density: Data Matrix can store a significant amount of information in a small space, for example, 2mm*2mm.
  • Durability: Given its matrix structure, even if a part of the code is damaged or obscured, the remaining part can often still be read.
  • Versatility: It can encode a large variety of data types.
  • Error Correction: Data Matrix codes have built-in error correction, which makes them robust against damage.

Techniques Employed for Direct Part Marking (DPM)

Possible methods to directly mark a device include:

  • Laser marking. With laser marking, marks are applied using heat instead of ink. It can create either a raised or concave effect.
  • Dot peen. In dot peen marking, an indenting pin is used to create an indentation for each dot in the DataMatrix code.
  • Electrochemical etch. This can only be used on metallic, conductive materials. It removes layers of material via electrolysis.
  • And some others, such as scribe, vibro peen, and continuous inkjet printing.

What are the Challenges when Decoding DPM Codes?

There are four main challenges scanners face when decoding DPM codes:

  • Color and Contrast – since the background and foreground colors are too similar, the scanner must rely on shadows. However, there is no uniformity with printing and therefore the dots can be a different depths, which affects the shadows.
  • Dots – unlike Data Matrix, which uses two solid lines, DPM uses dots. If those dots are too close together or too far apart, then it can cause decoding errors. Also, the shape of the dots are inconsistent — sometimes they are circle, others are squares, or stars.
  • Surface Imperfections – due to the nature of the different surface types, the codes can be affected due to a variety of imperfections such as textured, reflective, uneven or curved surfaces. Some may even be damaged or have micro divots or abrasions. All these imperfections can interfere with the scanner.
  • Lighting – proper lighting is essential for obtaining quick and accurate reads. DPM symbols are often printed on curved metal surfaces and when viewed under ambient light do not always offer the most ideal contrast.

How Dynamsoft Barcode Reader Resolves these Issues

All of the aforementioned challenges can be categorized as localization issues. Without going into too much proprietary details, in general, there are three key steps Dynamsoft Barcode Reader uses to decode DPM barcodes.

  • Localization — Dynamsoft Barcode Reader relies on self-adjusting statistical features of the image to detect the barcode zone.
  • Border Identification — based on the statistical index and the learning result, Dynamsoft Barcode Reader is able to determine the border of the DPM codes, which helps for orientation and decoding.
  • Module Partition — based on the rough borders and the statistical index along with the rows/columns, Dynamsoft Barcode Reader can overcome the negative effects of both perspective and border errors. That results in the capacity of partitioning the modules as reasonable as possible.
  • Module Identification — based on the statistical index and the learning result, Dynamsoft Barcode Reader is able to identify each module using discriminative features.

Dynamsoft Barcode Reader offers flexible parameters to meet the decoding requirements of different scenarios and requirements. To enable the DPM feature, simply add ‘DPMCRM_GENERAL’ to the array of ‘DPMCodeReadingModes’. Read more about How to configure the barcode reader to read DPM codes.


These capabilities are integrated into all editions of Dynamsoft Barcode Reader and require no extra licenses. Supported editions include Windows, Linux, iOS, Android, and JavaScript.

Getting Started

Interested in testing Dynamsoft Barcode Reader on your DPM codes? Download our free 30-day trial.For more information, contact