Codabar (also called Ames Code, Code 2 of 7, NW-7, USD-4, and other names) was developed in 1972 by Pitney Bowes. The barcode was designed to be accurately read even when printed by dot matrix and impact printers (the most common print technology in use in the early 1970s). While Pitney Bowes published the original standard for Codabar, there are now other standards that vary slightly (e.g., ANSI/AIM-BC3-1995 Uniform Symbology Specification for Codabar, published in 1995).
The original Pitney Bowes standard allowed for the encoding of numeric digits, and the letters A,B,C, and D (for start/stop characters). Later standards added six symbols (minus sign, colon, period, dollar sign, forward slash, and plus sign) and four additional start/stop characters (E, *, N, and T). Different characters must be used for the start and stop and they cannot appear in the data portion of the barcode. A common convention in the use of Codabar is to use different pairs of start/stop characters to indicate different applications (e.g. libraries use A/B while FedEx uses C/D). Codabar is variable length with the only limit on length being the width available for print.
Codabar is a linear, or one-dimensional (1D) barcode. This means the barcode is composed of a single set of varying width vertical lines and spaces. The data in the barcode is represented linearly by these black/white (bar/space) patterns. Below is a simple example:
Each character in a Codabar barcode consists of 4 bars (black) and 3 spaces (white)—every character starts and ends with a bar. Unlike many other linear barcodes though (e.g., Code 39 and Code 11), each character does not contain a set number of wide and narrow bar/spaces, rather it can vary. This means that all characters are not the same width.
Codabar is a self-checking symbology; that is a single print or read defect that cannot transpose one character into another valid character. The symbology is further characterized as a discrete barcode, meaning that each character is separated with an inter-character gap element (typically a single white element, though larger gaps are permitted). Here is our example again, diagramed for clarity:
Since Codabar is a self-checking symbology, no standard checksum is defined. However, many implementations have added their own checksum as part of the data for extra security.
Codabar is widely supported with most commercial barcode scanners being capable of reading it. Codabar symbols are easy to generate and print as well; oftentimes a special font is all that is needed (i.e. no special software is required). Codabar is ideal for numeric data application and where it's relatively low-density is not an issue.
Codabar is used by FedEx on airbills, US libraries for item and location tracking, photo labs, and United States blood banks just to name a few.
The Cognex Mobile Barcode SDK supports Codabar detection, enabling developers to integrate relevant workflow and application data into their barcode scanning apps. You can download the SDK for free by registering on the Cognex Mobile Barcode Developer Network. In addition, the Barcode Scanner SDK supports a broad range of symbologies to meet your growing development needs.