Code 39 (also called Code 3 of 9, USS Code 39, USD-3, Alpha 39, and other names) was developed by Dr. David Allais and Ray Stevens in 1974 as the first alphanumeric barcode. The symbology can encode 43 different characters (uppercase A through Z, the digits 0 through 9, and 7 special characters: space, period, minus sign, plus sign, dollar sign, slash, and the percent symbol). A later extension to the symbology allowed the full ASCII character set to be represented by using a two-character encoding scheme. Code 39 is also a variable length symbology, with no theoretical limit on code length.
Code 39 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 Code 39 barcode consists of 5 bars (black) and 4 spaces (white)—every character starts and ends with a bar. Of these nine elements, three are always “wide” (either 2 or 3 times the width of a “narrow” element), and six are always narrow. Both a start character and a stop character are used, though Code 39 does not include a checksum, as a single print or read defect 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:
Although Code 39 is self-checking, not requiring a checksum digit, it is sometimes used with an optional modulo 43 check digit for enhanced data security and reliability. The checksum digit comes after the final data character and before the stop character.
Why use Code 39?
Code 39 is widely supported with most commercial barcode scanners being capable of reading it. Code 39 symbols are easy to generate and print as well; often times a special font is all that is needed (i.e. no special software is required). Since Code 39 is an alphanumeric code, allows for variable length data, and is self-checking with moderate reliability, it lends itself to wide variety of low-density, low risk application uses.
Who uses Code 39?
Code 39 is a standard bar code used by the United States Department of Defense (LOGMARS, Logistics Applications of Automated Marking and Reading Symbols) as well as the Health Industry Business Communications Council (HIBCC) in the healthcare industry.
Code 39 is also used in vehicle identification numbers (VIN) throughout the world.
How do we help developers using Code 39?
The Cognex Mobile Barcode Scanner SDK supports Code 39 detection, enabling developers to gather relevant workflow and application data. 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.