
A Data Matrix is a
two-dimensional code
A barcode or bar code is a method of representing data in a visual, machine-readable form. Initially, barcodes represented data by varying the widths, spacings and sizes of parallel lines. These barcodes, now commonly referred to as linear or o ...
consisting of black and white "cells" or dots arranged in either a
square
In geometry, a square is a regular polygon, regular quadrilateral. It has four straight sides of equal length and four equal angles. Squares are special cases of rectangles, which have four equal angles, and of rhombuses, which have four equal si ...
or
rectangular
In Euclidean plane geometry, a rectangle is a rectilinear convex polygon or a quadrilateral with four right angles. It can also be defined as: an equiangular quadrilateral, since equiangular means that all of its angles are equal (360°/4 = 90 ...
pattern, also known as a
matrix
Matrix (: matrices or matrixes) or MATRIX may refer to:
Science and mathematics
* Matrix (mathematics), a rectangular array of numbers, symbols or expressions
* Matrix (logic), part of a formula in prenex normal form
* Matrix (biology), the m ...
. The information to be encoded can be text or numeric data. Usual data size is from a few bytes up to 1556
byte
The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable un ...
s. The length of the encoded data depends on the number of cells in the matrix.
Error correction codes
In computing, telecommunication, information theory, and coding theory, forward error correction (FEC) or channel coding is a technique used for controlling errors in data transmission over unreliable or noisy communication channels.
The centra ...
are often used to increase reliability: even if one or more cells are damaged so it is unreadable, the message can still be read. A Data Matrix symbol can store up to 2,335
alphanumeric
Alphanumericals or alphanumeric characters are any collection of number characters and letters in a certain language. Sometimes such characters may be mistaken one for the other.
Merriam-Webster suggests that the term "alphanumeric" may often ...
characters.
Data Matrix symbols are rectangular, usually square in shape and composed of square "cells" which represent
bit
The bit is the most basic unit of information in computing and digital communication. The name is a portmanteau of binary digit. The bit represents a logical state with one of two possible values. These values are most commonly represented as ...
s. Depending on the coding used, a "light" cell represents a 0 and a "dark" cell is a 1, or vice versa. Every Data Matrix is composed of two solid adjacent borders in an "L" shape (called the "finder pattern") and two other borders consisting of alternating dark and light "cells" or modules (called the "timing pattern"). Within these borders are rows and columns of cells encoding information. The finder pattern is used to locate and orient the symbol while the timing pattern provides a count of the number of rows and columns in the symbol. As more data is encoded in the symbol, the number of cells (rows and columns) increases. Each code is unique. Symbol sizes vary from 10×10 to 144×144 in the new version ECC 200, and from 9×9 to 49×49 in the old version ECC 000 – 140.
Applications

The most popular application for Data Matrix is marking small items, due to the code's ability to encode fifty characters in a symbol that is readable at and the fact that the code can be read with only a 20% contrast ratio.
A Data Matrix is scalable; commercial applications exist with images as small as (laser etched on a silicon device) and as large as a 1 metre (3 ft) square (painted on the roof of a
boxcar
A boxcar is the North American (Association of American Railroads, AAR) and South Australian Railways term for a Railroad car#Freight cars, railroad car that is enclosed and generally used to carry freight. The boxcar, while not the simpl ...
). Fidelity of the marking and reading systems are the only limitation.
The US
Electronic Industries Alliance
The Electronic Industries Alliance (EIA; until 1997 Electronic Industries Association) was an American standards organization, standards and trade organization composed as an alliance of trade associations for electronics manufacturers in the ...
(EIA) recommends using Data Matrix for labeling small electronic components.
[
]
Data Matrix codes are becoming common on printed media such as labels and letters. The code can be read quickly by a
barcode reader
A barcode reader or barcode scanner is an optical scanner that can read printed barcodes and send the data they contain to computer. Like a flatbed scanner, it consists of a light source, a lens, and a light sensor for translating optical impul ...
which allows the media to be tracked, for example when a parcel has been dispatched to the recipient.

For industrial engineering purposes, Data Matrix codes can be marked directly onto components, ensuring that only the intended component is identified with the data-matrix-encoded data. The codes can be marked onto components with various methods, but within the aerospace industry these are commonly industrial ink-jet, dot-peen marking, laser marking, and electrolytic chemical etching (ECE). These methods give a permanent mark which can last up to the lifetime of the component.
Data Matrix codes are usually verified using specialist camera equipment and software. This verification ensures the code conforms to the relevant standards, and ensures readability for the lifetime of the component. After component enters service, the Data Matrix code can then be read by a reader camera, which decodes the Data Matrix data which can then be used for a number of purposes, such as movement tracking or inventory stock checks.

Data Matrix codes, along with other open-source codes such as 1D barcodes can also be read with mobile phones by downloading code specific mobile applications. Although many mobile devices are able to read 2D codes including Data Matrix Code, few extend the decoding to enable mobile access and interaction, whereupon the codes can be used securely and across media; for example, in track and trace, anti-counterfeit, e.govt, and banking solutions.
Food industry
Data Matrix codes are used in the
food industry
The food industry is a complex, global network of diverse businesses that supplies most of the food consumed by the world's population. The food industry today has become highly diversified, with manufacturing ranging from small, traditional, ...
in
autocoding
Autocoding refers to software solutions that help manufacturers, particularly those in the food industry, ensure that products have the correct packaging and correct 'sell by' date codes, thereby reducing the number of Emergency Product Withdrawal ...
systems to prevent food products being packaged and dated incorrectly. Codes are maintained internally on a food manufacturers database and associated with each unique product, e.g. ingredient variations. For each product run the unique code is supplied to the printer. Label artwork is required to allow the 2D Data Matrix to be positioned for optimal scanning. For black on white codes testing isn't required unless print quality is an issue, but all color variations need to be tested before production to ensure they are readable.
Art
In May 2006 a German computer programmer, Bernd Hopfengärtner, created a large Data Matrix in a wheat field (in a fashion similar to
crop circle
A crop circle, crop formation, or corn circle is a pattern created by flattening a crop, usually a cereal. The term was first coined in the early 1980s. Crop circles have been described as all falling "within the range of the sort of thing ...
s). The message read "
Hello, World!".
Technical specifications

Data Matrix symbols are made up of modules arranged within a perimeter finder and timing pattern. It can encode up to 3,116 characters from the entire
ASCII
ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
character set (with extensions). The symbol consists of data regions which contain modules set out in a regular array. Large symbols contain several regions. Each data region is delimited by a finder pattern, and this is surrounded on all four sides by a quiet zone border (margin). (Note: The modules may be round or square- no specific shape is defined in the standard. For example, dot-peened cells are generally round.)
Data Matrix ECC 200
ECC 200, the newer version of Data Matrix, uses
Reed–Solomon codes for error and erasure recovery. ECC 200 allows the routine reconstruction of the entire encoded data string when the symbol has sustained 30% damage, assuming the matrix can still be accurately located. Data Matrix has an error rate of less than 1 in 10 million characters scanned.
Symbols have an even number of rows and an even number of columns. Most of the symbols are square with sizes from 10 × 10 to 144 × 144. Some symbols however are rectangular with sizes from 8×18 to 16×48 (even values only). All symbols using the ECC 200 error correction can be recognized by the upper-right corner module being the same as the background color. (binary 0).
Additional capabilities that differentiate ECC 200 symbols from the earlier standards include:
* Inverse reading symbols (light images on a dark background)
* Specification of the character set (via
Extended Channel Interpretations
Extended Channel Interpretation (ECI) is an extension to the communication protocol that is used to transmit data from a bar code reader to a host when a bar code symbol is scanned. It enables the application software to receive additional inform ...
)
* Rectangular symbols
* Structured append (linking of up to 16 symbols to encode larger amounts of data)
Data Matrix ECC 000–140
Older versions of Data Matrix include ECC 000, ECC 050, ECC 080, ECC 100, ECC 140. Instead of using
Reed–Solomon codes like ECC 200, ECC 000–140 use a convolution-based error correction. Each varies in the amount of error correction it offers, with ECC 000 offering none, and ECC 140 offering the greatest. For error detection at decode time, even in the case of ECC 000, each of these versions also encode a
cyclic redundancy check
A cyclic redundancy check (CRC) is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to digital data. Blocks of data entering these systems get a short ''check value'' attached, based on ...
(CRC) on the bit pattern. As an added measure, the placement of each bit in the code is determined by bit-placement tables included in the specification. These older versions always have an odd number of modules, and can be made in sizes ranging from 9 × 9 to 49 × 49. All symbols utilizing the ECC 000 through 140 error correction can be recognized by the upper-right corner module being the inverse of the background color. (binary 1).
According to ISO/IEC 16022, "ECC 000–140 should only be used in closed applications where a single party controls both the production and reading of the symbols and is responsible for overall system performance."
Standards
Data Matrix was invented by
International Data Matrix, Inc.
International is an adjective (also used as a noun) meaning "between nations".
International may also refer to:
Music Albums
* ''International'' (Kevin Michael album), 2011
* ''International'' (New Order album), 2002
* ''International'' (The T ...
(ID Matrix) which was merged into RVSI/
Acuity CiMatrix
Automatix Inc., founded in January 1980, was the first company to market industrial robots with built-in machine vision. Its founders were Victor Scheinman, inventor of the Stanford arm; Phillippe Villers, Michael Cronin, and Arnold Reinhold of ...
, who were acquired by
Siemens
Siemens AG ( ) is a German multinational technology conglomerate. It is focused on industrial automation, building automation, rail transport and health technology. Siemens is the largest engineering company in Europe, and holds the positi ...
AG in October 2005 , Microscan Systems in September 2008, and Omron in 2017. Data Matrix is covered today by several
ISO
The International Organization for Standardization (ISO ; ; ) is an independent, non-governmental, international standard development organization composed of representatives from the national standards organizations of member countries.
Me ...
/
IEC
The International Electrotechnical Commission (IEC; ) is an international standards organization that prepares and publishes international standards for all electrical, electronic and related technologies. IEC standards cover a vast range of ...
standards and is in the public domain for many applications, which means it can be used free of any licensing or royalties.
* ISO/IEC 16022:2006—Data Matrix bar code symbology specification
* ISO/IEC 15415—2-D Print quality standard
* ISO/IEC 15418:2016—Symbol data format semantics (
GS1 application identifiers and ASC MH10 data identifiers and maintenance)
* ISO/IEC 15424:2008—Data Carrier Identifiers (including Symbology Identifiers)
Ds for distinguishing different barcode types* ISO/IEC 15434:2006—Syntax for high-capacity ADC media (format of data transferred from scanner to software, etc.)
* ISO/IEC 15459—Unique identifiers
Error correction
Data Matrix codes use
Reed–Solomon error correction
In information theory and coding theory, Reed–Solomon codes are a group of error-correcting codes that were introduced by Irving S. Reed and Gustave Solomon in 1960.
They have many applications, including consumer technologies such as MiniDiscs, ...
over the
finite field
In mathematics, a finite field or Galois field (so-named in honor of Évariste Galois) is a field (mathematics), field that contains a finite number of Element (mathematics), elements. As with any field, a finite field is a Set (mathematics), s ...
(or ), the elements of which are encoded as
bytes of 8 bits; the byte
with a standard numerical value
encodes the field element
where
is taken to be a primitive element satisfying
. The primitive polynomial is
, corresponding to the polynomial number 301, with initial root = 1 to obtain generator polynomials. The Reed–Solomon code uses different generator polynomials over
, depending on how many error correction bytes the code adds. The number of bytes added is equal to the degree of the generator polynomial.
For example, in the 10 × 10 symbol, there are 3 data bytes and 5 error correction bytes. The generator polynomial is obtained as:
,
which gives:
,
or with decimal coefficients:
.
Encoding

The encoding process is described in the
ISO/IEC
ISO/IEC JTC 1, entitled "Information technology", is a joint technical committee (JTC) of the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC). Its purpose is to develop, maintain and ...
standard 16022:2006. Open-source software for encoding and decoding the ECC-200 variant of Data Matrix has been published.
The diagrams below illustrate the placement of the message data within a Data Matrix symbol. The message is "Wikipedia", and it is arranged in a somewhat complicated diagonal pattern starting near the upper-left corner. Some characters are split in two pieces, such as the initial W, and the third 'i' is in "corner pattern 2" rather than the usual L-shaped arrangement. Also shown are the end-of-message code (marked End), the padding (P) and error correction (E) bytes, and four modules of unused space (X).
The symbol is of size 16×16 (14×14 data area), with 12 data bytes (including 'End' and padding) and 12 error correction bytes. A (255,243,6) Reed Solomon code shortened to (24,12,6) is used. It can correct up to 6 byte errors or erasures.
To obtain the error correction bytes, the following procedure may be carried out:
The generator polynomial specified for the (24,12,6) code, is:
,
which may also be written in the form of a matrix of decimal coefficients:
242 100 178 97 213 142 42 61 91 158 153 41''
The 12-byte long message "Wikipedia" including 'End', P1 and P2, in decimal coefficients (see the diagrams below for the computation method using ASCII values), is:
88 106 108 106 113 102 101 106 98 129 251 147">span style="color:light-dark(blue, lightblue)">88 106 108 106 113 102 101 106 98 129 251 147''
Using the procedure for
Reed-Solomon systematic encoding, the 12 error correction bytes obtained (E1 through E12 in decimal) in the form of the remainder after polynomial division are:
104 216 88 39 233 202 71 217 26 92 25 232">span style="color:light-dark(red, lightcoral)">104 216 88 39 233 202 71 217 26 92 25 232''
These error correction bytes are then appended to the original message. The resulting coded message has 24 bytes, and is in the form:
W i k i p e d i a 'End' P1 P2 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12">span style="color:light-dark(blue, lightblue)">W i k i p e d i a 'End' P1 P2 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12''
or in decimal coefficients:
88 106 108 106 113 102 101 106 98 129 251 147 104 216 88 39 233 202 71 217 26 92 25 232">span style="color:light-dark(blue, lightblue)">88 106 108 106 113 102 101 106 98 129 251 147 104 216 88 39 233 202 71 217 26 92 25 232''
and in hexadecimal coefficients:
58 6A 6C 6A 71 66 65 6A 62 81 FB 93 68 D8 58 27 E9 CA 47 D9 1A 5C 19 E8">span style="color:light-dark(blue, lightblue)">58 6A 6C 6A 71 66 65 6A 62 81 FB 93 68 D8 58 27 E9 CA 47 D9 1A 5C 19 E8''
Multiple encoding modes are used to store different kinds of messages. The default mode stores one
ASCII
ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
character per 8-bit codeword. Control codes are provided to switch between modes, as shown below.
Text modes
The C40, Text and
X12 modes are potentially more compact for storing text messages. They are similar to
DEC Radix-50
RADIX 50 or RAD50 (also referred to as RADIX50, RADIX-50 or RAD-50), is an uppercase-only character encoding created by Digital Equipment Corporation (DEC) for use on their DECsystem, PDP, and VAX computers.
RADIX 50's 40-character rep ...
, using character codes in the range 0–39, and three of these codes are combined to make a number up to 40
3=64000, which is packed into two bytes (maximum value 65536) as follows:
:V = C1×1600 + C2×40 + C3 + 1
:B1 = floor(V/256)
:B2 = V mod 256
The resulting value of B1 is in the range 0–250. The special value 254 is used to return to ASCII encoding mode.
Character code interpretations are shown in the table below. The C40 and Text modes have four separate sets. Set 0 is the default, and contains codes that temporarily select a different set for the next character. The only difference is that they reverse upper-and lower-case letters. C40 is primarily upper-case, with lower-case letters in set 3; Text is the other way around. Set 1, containing ASCII control codes, and set 2, containing punctuation symbols are identical in C40 and Text mode.
EDIFACT mode
EDIFACT
United Nations/Electronic Data Interchange for Administration, Commerce and Transport (UN/EDIFACT) is an international standard for electronic data interchange (EDI) developed for the United Nations and approved and published by UNECE, the UN Econ ...
mode uses six bits per character, with four characters packed into three bytes. It can store digits, upper-case letters, and many punctuation marks, but has no support for lower-case letters.
Base 256 mode
Base 256 mode data starts with a length indicator, followed by a number of data bytes. A length of 1 to 249 is encoded as a single byte,
and longer lengths are stored as two bytes.
:L1 = floor(length / 250) + 249, L2 = length mod 250
It is desirable to avoid long strings of zeros in the coded message, because they become large blank areas in the Data Matrix symbol, which may
cause a scanner to lose synchronization. (The default ASCII encoding does not use zero for this reason.) In order to make that less likely, the
length and data bytes are obscured by adding a pseudorandom value R(n), where n is the position in the byte stream.
:R(n) = (149 × n) mod 255 + 1
Patent issues
Prior to the expiration of US patent 5,612,524 in November 2007, intellectual property company
Acacia Technologies claimed that Data Matrix was partially covered by its contents. As the patent owner, Acacia allegedly contacted Data Matrix users demanding license fees related to the patent.
Cognex Corporation
Cognex Corporation is an American manufacturer of machine vision systems, software and sensors used in automated manufacturing to inspect and identify parts, detect defects, verify product assembly, and guide assembly robots. Cognex is headquart ...
, a large manufacturer of 2D barcode devices, filed a
declaratory judgment
A declaratory judgment, also called a declaration, is the legal determination of a court that resolves legal uncertainty for the litigants. It is a form of legally binding preventive by which a party involved in an actual or possible legal ma ...
complaint on 13 March 2006 after receiving information that Acacia had contacted its customers demanding licensing fees. On 19 May 2008 Judge Joan N. Ericksen of the U.S. District Court in Minnesota ruled in favor of Cognex.
The ruling held that the '524 patent, which claimed to cover a system for capturing and reading 2D symbology codes, is both invalid and unenforceable due to
inequitable conduct
In United States patent law, inequitable conduct is a breach of the applicant's duty of candor and good faith during patent prosecution or similar proceedings by misrepresenting or omitting material information with the specific intent to deceive ...
by the defendants during the procurement of the patent.
While the ruling was delivered after the patent expired, it precluded claims for infringement based on use of Data Matrix prior to November 2007.
A German patent application DE 4107020 was filed in 1991, and published in 1992. This patent is not cited in the above US patent applications and might invalidate them.
See also
*
PDF417
PDF417 is a stacked linear barcode format used in a variety of applications such as transport, identification cards, and inventory management. "PDF" stands for ''Portable Data File'', while "417" signifies that each pattern in the code consis ...
*
Aztec Code
The Aztec Code is a matrix code invented by Andrew Longacre, Jr. and Robert Hussey in 1995. The code was published by AIM, Inc. in 1997. Although the Aztec Code was patented, that patent was officially made public domain. Click "images" then ...
*
High Capacity Color Barcode
High Capacity Color Barcode (HCCB) is a technology developed by Microsoft for encoding data in a 2D "barcode" using clusters of colored triangles instead of the square pixels conventionally associated with 2D barcodes or QR codes. Data density i ...
*
MaxiCode
MaxiCode is a public domain, machine-readable symbol system developed by United Parcel Service (UPS) in 1992. Designed for tracking and managing package shipments, it resembles an Aztec Code or QR code but uses dots in a hexagonal grid instea ...
*
Nintendo e-Reader
The Nintendo e-Reader, commonly abbreviated as e-Reader, is an add-on manufactured by Nintendo
is a Japanese Multinational corporation, multinational video game company headquartered in Kyoto. It develops, publishes, and releases both v ...
*
QR Code
*
Semacode
Semacode is a software company based in Waterloo, Ontario, Canada. It is also this company's trade name for their machine-readable International Organization for Standardization, ISO/IEC 16022 Data Matrix 2D barcode, barcodes, which are used to en ...
*
SPARQCode
A SPARQCode is a matrix code (or two-dimensional bar code) encoding standard that is based on the physical QR Code definition created by Japanese corporation Denso-Wave.
Overview
The QR Code standard as defined by Denso-Wave in ISO/IEC 1800 ...
*
Trusted paper key A paper key is a machine-readable print of a cryptographic key. The printed key can be used to decrypt data, e.g. archives or backup data. A paper key can be the result of an offline private key protocol. The offline private key can also function ...
References
External links
GS1 DataMatrix Guideline: Overview and technical introduction to the use of GS1 DataMatrixDatamatrix Code Generator - Online Tool
{{DEFAULTSORT:Data Matrix (Computer)
Barcodes