powered by Pro Mach video

Pro Mach Web Site
ProCustomer Industry Leading Aftermarket Support
Allpax Retort Sterilization & Automation Systems
Axon Shrink & Stretch Sleeve Application Systems
Benchmark Food Distribution & Loading Systems
Brenton Case & Tray Packing & Robotic Systems
Currie by Brenton Conventional & Robotic Palletizing Systems
Dekka Case Taping Systems
Edson High Performance Case & Tray Packing Systems
EOL Packaging End of line Applications & Systems
EPI Labelers Flexible Packaging Labeling Systems
Federal Liquid Filling & Capping Systems
Flexible Packaging Flexible Packaging Applications & Systems
FLtecnics Rollstock Pouch Packaging Systems
Greydon Flexible Packaging Coding Systems
ID Technology Labeling, Marking & Coding Systems
Inever Stickpack & Sachet Packaging Systems
IPak Machinery Tray & Bliss Forming Systems
Jalbert Automation Services
KLEENLine Sanitary Product Handling Systems
LSI Pressure Sensitive Labeling Systems
Matrix Vertical Form Fill Seal Systems
NJM Packaging Pharmaceutical Packaging Systems
Orion Packaging Stretch & Pallet Wrapping Systems
Ossid Tray Packaging & Weighing Systems
Pace Packaging Bottle Unscrambling & Orienting Systems
Pacific Packaging Viscous Filling & Capping Systems
P.E. Labellers Decorative Labeling Systems
Rennco Vertical Bagging & Heat Sealing Systems
Roberts PolyPro Bottle & Box Handles & Application Systems
Shuttleworth Conveying & Material Handling Systems
Southern Packaging Rollstock Pouch Packaging Systems
Tekkra Shrink Bundling Systems
Texwrap Shrink Wrapping Systems
Toyo Jidoki Pre-Made Pouch Packaging Systems
Weiler Labeling Labeling & Serialization Systems
Wexxar/BEL Case Forming & Sealing Systems
Zalkin Americas Capping & Cap Handling Systems
Zalkin EMAA Capping & Cap Handling Systems
Zarpac Engineering & Integration Services

Powered by Pro Mach

Barcodes and Error Correction

Error Correction in Barcodes

I’m a huge fan of 2D barcodes – whether the Datamatrix for industrial applications, QR Codes for cool marketing (and some industrial) stuff and Microsoft Tag for its design features – I use them all!

While one of the huge advantages of 2D over linear barcodes is the fact more data can be encoded into a given space, another important factor is that most 2D barcode symbologies have built in error correction which makes the printed code more robust. Parts of it can be missing and the code can still be read.

The 2D barcode we use the most here at the WincoPlex, is the Datamatrix Code. In this example (a Datamatrix encoded for MIL-STD-130) you can see I’ve chosen Symbol Type ECC200.

MIL-STD-130 Datamatrix Error Correction Level

The ECC value isn’t really the Symbol Type as BarTender labels it – it is the level of error correction encoded into the symbol. If I had opened the drop-down to show the different possible values of ECC, it would show values including ECC 000, ECC 010, ECC 040, up to ECC 140 – ending with the ECC 200 I had chosen for this job.

As explained in a White Paper from Code Corporation the ECC levels of less than ECC 200 use a type of error correction called Convolutional Coding. This had been used in the early versions of the Datamatrix specification, but were replaced with ECC 200 as Datamatrix became more of an international standard.

The ECC 200 error correction is based on Reed-Solomon principles, named after two MIT guys, who developed these ideas back in 1960. Reed-Solomon error correction is employed in many of the modern 2D barcodes, such as PDF417 and QR as well as in Datamatrix.

This type of error correction is proven to work very well. In the Datamatrix for example, as much as 25% of the content area of the code symbol can be damaged and the barcode can still ECC200 and ECC000 Datamatrix Codesbe decoded. Of course, all this error correction means the symbols are a little larger than they would normally be, but since the 2D barcodes are economical with the space they need, this isn’t usually an issue.

The example here shows the same MIL-STD-130 Datamatrix code encoded with both ECC 200 and ECC 000 (no error correction) to show the difference in size.

In reality, I don’t believe I’ve ever printed a Datamatrix code that wasn’t ECC 200, and I’ve printed them for 100’s of clients. Most standards that call for Datamatrix specify ECC 200 and it is a good practice anyway, even if not specified.

If printing MIL-STD-130 UID labels, the barcode will fail verification if ECC 200 isn’t used.

Want to learn more about Reed-Solomon error correction? Look no further than the Wikipedia entry – real geeky stuff!

Do you use 2D barcodes in your operations? We are always happy to help if you need us – just use the contact page.


Share Button


  1. Jan Kovar says:

    We are using DataMatrix 8×32 with 20 num. characters capacity. By ISO16022 with ECC200. When we try to use DataMatrix 8×32 with 12 num. characters, can we make error correction more robust? Or can we generaly say, if we increase the redundancy, we can read DataMatrix better if it is broken?

    Thank you in advance for your explanation.

  2. David Holliday says:

    Hi Jan,
    Here are the two possibilities you mentioned:

    I’m not an expert on this, but my feeling is that the error correction will be about the same in either case.

Speak Your Mind