Code 93

 

CODE 93 has the ability to encode the entire 128 ASCII character set by using combinations of two characters.  Also, CODE 93 is framed by a start/stop character and contains two check digits for added security.  The check digits follow the encoded message and precede the stop character.  The two digits are calculated as follows:

            For each character

·         Record the “weight” of the character.  The weight of the last character is 1 and it increments by one for as we move toward the first character (up to weight=20).  If the weight goes over 20, we wrap back around 1.  For example, in “CSE370” the weight of C = 6, S = 5, and 0 = 1.

·         Record the “value” of the character.  Each number/letter/symbol has a numeric value.

·         Take the product of the Weight and Value of each character.

·         Take the sum of all the products.

·         The first of the check digits is this sum MOD 47

·         To find the second of the check digits, repeat all the previous steps except wrap the weight around 15 instead of 20.

 

Code 128

 

CODE 128 is a denser version of CODE 93. It has 106 different bar and space patterns that each has one of three possible values. The first encodes upper case and ASCII control characters, the second encodes upper and lower case characters, and the third encodes numeric digit pairs (from 00 – 99). Also included is a mandatory check digit that is calculated similar to CODE 93 except using MOD 103.

 

Interestingly, CODE 128 also allows encoding of four function codes (FNC1, FNC2, FNC3, FNC4). FNC1 is reserved for the European Article Numbering Association (EAN) applications FNC2 and FNC3 are for bar code readers: FNC2 tells a bar code reader to concatenate the message in a bar code symbol with the message in the next symbol while FNC3 tells a bar code reader to perform a reset. FNC4 is reserved for any other close system application.

 

 

LOGMARS Encoding

LOGMARS (Logistics Applications of Automated Marking and Reading Symbols) is a special application of Code 39 used by the U.S. Department of Defense and is governed by Military Standard MIL-STD-1189B.  The Standard defines acceptable ranges for a number of variables, include density, ratio, bar height, and size of the human-readable interpretation line. The Modulus 43 check digit, optional with Code 39, is defined and recommended in the specification. While not required by the general specification, it may be required in specific Department of Defense applications.

 

Data Matrix (CSE370)

Data Matrix is a 2-D matrix code designed to store a lot of information in a very small area, up to 500 characters can be stored in one symbol. The symbol is also scalable from as small as 1-mil square to 14 square inches so the data density can be very large, up to 500 million characters per square inch. The actual data density is limited by the technology used to print and read the symbols.

The information in the symbol is encoded by using an absolute dot position instead of a relative dot position, so the error rate won’t be as affected by printing problems as with the regular barcode. The company that designed this code, CiMatrix, designed the code to have a high level of redundancy in it, so that even if the symbol is damaged it can still be read correctly. The datacode symbol has adjacent solid bars on the two sides of the symbol and the other two sides have equally spaced dots, this is used indicate the orientation and the density of the data. A CCD camera or a CCD scanner is used to read the code. Symbols as small as .125 inches to 7 inches square can be read at rates up to 5 symbols per second at distance from 3ft to contact.

The most common application of this is used on printed circuit boards, where they can encode up to 50 characters of data in a space 2 or 3mm square.

 

Maxi-Code (CSE370)

 

Maxixode is a 2-D matrix code originally created by United Parcel Service. Unlike other codes, it does not contain square dots or bars, it consists of interlocking hexagons. Using hexagons instead of squares increases the density over square dot code by at least 15 percent, but requires a higher density printer to produce. The code is printed on a 1 inch square area with a central bulls-eye to help the scanner locate the label regardless of orientation. The maximum data capacity for a MaxiCode symbol is 93 Alphanumeric characters or 138 Numeric characters encoded in the 866 interlocking hexagons in the symbol.  There is some redundancy in the code, so that even if up to one fourth of the symbol is destroyed the scanner can still read it.  To achieve this, at symmetric points around the finder are six orientation clusters, each consisting of three modules labeled as either as black or white, which provide crucial orientation information to a reader.  Although the capacity of a MaxiCode symbol is not as high as other matrix style barcodes, it was primarily designed to encode address data which rarely requires more than about 80 characters.  

 

MaxiCode symbols actually encode two separate messages - a Primary message and a Secondary message. The Primary message normally encodes a postal code, a 3 digit country code and a 3 digit class of service number. The Secondary message normally encodes address data and any other required information.

 

The data cells shown around the finder (shown in green) constitute the Primary message, 60 bits of data plus 60 bits of Reed-Solomon error correction which by their proximity to the finder and high redundancy constitute the most secure section of the symbol.

A MaxiCode's Primary message serves two special uses. Most importantly, it contains four Mode bits, designated by orange hexagons, which directly indicate what "mode" all the rest of the symbol is encoded in.  The layout of the Primary message and of these mode bits has not changed throughout development of the MaxiCode, providing for backward compatibility, but the number of defined modes has expanded substantially.  The second special use of the Primary message is that in some modes its remaining 56 data bits encode a Structured Carrier Message which contains all the information needed for package sorting and tracking, the result of this method is in most cases high-speed scanners do not need to decode beyond this Primary message, and the surrounding Secondary message fields (shown in blue) provide simply additional source or destination information useful during manual handling of a package.

PDF417 Encoding (CSE370)

Portable Data File (PDF) 417 is a public domain code designed by Ynjiun Wang in 1991 for Symbol Technologies. The code is made up of 17 modules each containing 4 bars and spaces (hence the 417). Each symbol has a solid bar between them which act as a start and stop point. Between 1000 and 2000 characters can be stored per symbol with a information density of 100 to 340 characters.  The code words in a PDF417 symbol are generated using one of three data compaction modes currently defined.  This allows more than one character to be encoded into a single data code word. Because different data compaction algorithms may be used, it is possible for different printed symbols to be created from the same input data.  This also allows for varying degrees of security and error correction.  Nine different error correction levels are available with each higher level adding additional overhead to the printed symbol.  The symbol can be read using a handheld laser or a CCD scanner; a high-density printer is required to print the symbols.

 

 

 

Useful resources used:

    http://thor-gw.phys.ualberta.ca/barcode/

    http://www.adams1.com/pub/russadam/stack.html

    http://www.adams1.com/pub/russadam/128code.html

 

 

Less useful resources used:

    http://www.waspbarcode.com/autoid_input.asp

    http://renderx.com/barcodes.html

    http://www.barcodeisland.com/msi.phtml

   

Composed by:

    Team Barcode-Be-Que