Data Matrix, also known as **Data Matrix ECC200**, is a two-dimensional (2D) matrix symbology, which is defined in "INTERNATIONAL STANDARD ISO/IEC 16022:2006".

The future version "ISO/IEC CD 16022.4" is still under development.

Data Matrix symbology has two types, based on error correction mode:

**ECC 200**: ECC 200 uses Reed-Solomon error correction. ECC 200 is recommended.**ECC 000 - 140**: with several available levels of convolutional error correction, referred to as ECC 000, ECC 050, ECC 080, ECC 100 and ECC 140 respectively. ECC 000 - 140 should only be used in closed applications where a single company or organization controls both the generating and reading of the Data Matrix symbols.

Data Matrix barcode supports full ASCII characters encoding.

Data Matrix encodable character set

- values 0 - 127 in accordance with the US national version of ISO/IEC 646
- values 128 - 255 in accordance with ISO 8859-1. These are referred to as extended ASCII.
- Other character sets (e.g. Arabic, Cyrillic, Greek, Hebrew) may be supported when using the Extended Channel Interpretation (ECI) protocol

Depends on your encoding data type, Data Matrix supports maximum length from 1,555 to 3,116 characters.

**Alphanumeric data**: up to 2,335 characters**Byte data (8-bit)**: 1,555 characters**Numeric data**: 3,116 digits

Data Matrix will encode the data using any combination of six encoding modes (schemes).

Encodation Scheme | Characters |

ASCII | double digit numerics |

ASCII values 0 - 127 | |

Extended ASCII values 128 - 255 | |

C40 | Upper-case alphanumeric |

Lower case and special characters | |

Text | Lower-case alphanumeric |

Upper case and special characters | |

X12 | ANSI X12 EDI data set |

EDIFACT | ASCII values 32 - 94 |

Base 256 | All byte values 0 - 255 |

Data Matrix supports 24 square symbols and 6 rectangular symbols in ECC 200.

View the table below for list of Data Matrix symbol sizes

A sample **square** Data Matrix barcode with 32 rows and 32 columns.

A sample **rectangular** Data Matrix barcode with 8 rows and 32 columns.

Each Data Matrix barcode consists one or more data regions (up to 36).
In larger ECC 200 barcode, data regions are separated by alignment patterns.

The highlighted alignment pattern below width is 2X (bar module).

The finder pattern is a perimeter to the data region and is one bar module wide.

Two adjacent sides, the left and lower sides, forming the L boundary, are solid dark lines.

The two opposite sides are made up of alternating dark and light modules.

The finder pattern width is X (bar module).

Data Matrix barcode all four sides are surrounded by a quiet zone border.

The minimum quiet zone is equal to X (bar module) on all four sides. For applications with moderate to
excessive reflected noise in close proximity to the symbol, a Quiet Zone of 2X to 4X is recommended.

Symbol size | Data region | Maximum data capacity | ||||

Row | Column | Size | No. | Num. | Alphanum. | Byte |

10 | 10 | 8 x 8 | 1 | 6 | 3 | 1 |

12 | 12 | 10 x 10 | 1 | 10 | 6 | 3 |

14 | 14 | 12 x 12 | 1 | 16 | 10 | 6 |

16 | 16 | 14 x 14 | 1 | 24 | 16 | 10 |

18 | 18 | 16 x 16 | 1 | 36 | 25 | 16 |

20 | 20 | 18 x 18 | 1 | 44 | 31 | 20 |

22 | 22 | 20 x 20 | 1 | 60 | 43 | 28 |

24 | 24 | 22 x 22 | 1 | 72 | 52 | 34 |

26 | 26 | 24 x 24 | 1 | 88 | 64 | 42 |

32 | 32 | 14 x 14 | 4 | 124 | 91 | 60 |

36 | 36 | 16 x 16 | 4 | 172 | 127 | 84 |

40 | 40 | 18 x 18 | 4 | 228 | 169 | 112 |

44 | 44 | 20 x 20 | 4 | 288 | 214 | 142 |

48 | 48 | 22 x 22 | 4 | 348 | 259 | 172 |

52 | 52 | 24 x 24 | 4 | 408 | 304 | 202 |

64 | 64 | 14 x 14 | 16 | 560 | 418 | 277 |

72 | 72 | 16 x 16 | 16 | 736 | 550 | 365 |

80 | 80 | 18 x 18 | 16 | 912 | 682 | 453 |

88 | 88 | 20 x 20 | 16 | 1,152 | 862 | 573 |

96 | 96 | 22 x 22 | 16 | 1,392 | 1,042 | 693 |

104 | 104 | 24 x 24 | 16 | 1,632 | 1,222 | 813 |

120 | 120 | 18 x 18 | 36 | 2,100 | 1,573 | 1,047 |

132 | 132 | 20 x 20 | 36 | 2,608 | 1,954 | 1,301 |

144 | 144 | 22 x 22 | 36 | 3,116 | 2,335 | 1,555 |

Rectangular Symbols | ||||||

8 | 18 | 6 x 16 | 1 | 10 | 6 | 3 |

8 | 32 | 6 x 14 | 2 | 20 | 13 | 8 |

12 | 26 | 10 x 24 | 1 | 32 | 22 | 14 |

12 | 36 | 10 x 16 | 2 | 44 | 31 | 20 |

16 | 36 | 14 x 16 | 2 | 64 | 46 | 30 |

16 | 48 | 14 x 22 | 2 | 98 | 72 | 47 |

The width of a Data Matrix barcode, including quiet zones, can be calculated from the following expression:

W = Row * X + 2Q

where

**W**: is the barcode width**Row**: is the modules per row (Symbol Size). Check the Data Matrix Symbol Size data table**X**: is the width of the module**Q**: is the width of the quiet zone

The height of a Data Matrix barcode, including quiet zones, can be calculated from the following expression:

H = Col * X + 2Q

where

**H**: is the barcode height**Col**: is the modules per column (Symbol Size)**X**: is the width of the module**Q**: is the width of the quiet zone

Note: if the Data Matrix is a square, the width and height are the same value.

The Data Matrix default character interpretation for character values 0 to 127 shall conform to ISO/IEC 646. The default
character interpretation for character values 128 to 255 shall conform to ISO 8859-1: Latin Alphabet No. 1.

The Extended Channel Interpretation (ECI) protocol allows the output data stream to have interpretations
different from that of the default character set.

Four broad types of interpretations are supported in Data Matrix

- international character sets (e.g. Arabic, Cyrillic, Greek, Hebrew). View complete source code: Encode Thai text in Data Matrix using C#
- general purpose interpretations such as encryption and compaction
- user defined interpretations for closed systems
- control information for structured append in unbuffered mode

Data Matrix can append up to 16 barcodes in a structured format. Structure Appended is only for ECC 200 barcodes. Some key terms for Data Matrix Structure Append:

**Symbol sequence indicator**: It indicates the position of the symbol within the set (up to 16 barcodes) of Data Matrix barcodes.**File identification**: All Data Matrix barcodes with the same file identification value are parts of the same message.

some common terms and definitions in Data Matrix

**codeword**: Data matrix barcode character value, an intermediate level of coding between Data matrix source data and the graphical encodation in the Data matrix**module**: single cell in a Data matrix barcode used to encode one bit of data, nominally a square shape in Data Matrix