Code 39 - Full ASCII
Code 39 was developed in 1974 by David Allais and Raymond Stevens, then with Interface Mechanisms Inc. (now Intermec Corporation). It was the first barcode symbology to use alphabetic characters in addition to numeric digits. Variations of Code 39 have been used extensively in multiple industries, notably in the US military as a component of the Logistics Applications of Automated Marking and Reading Symbols (LOGMARS) system.
The Code 39 - Full ASCII symbology is an extension of the original Code 39 (Code 39 - Regular) symbology that enables encoding of all 128 ASCII characters. The barcode reader that is used to scan the barcode must be configured to perform Full ASCII character translations.
Code 39 is defined in ISO/IEC 16388 Information technology - Automatic identification and data capture techniques - Code 39 bar code symbology specification.
The symbol comprises the following elements:
-
Leading quiet zone
-
Start character (usually an asterisk [*])
-
One or more pairs of symbol characters that represent data (including an optional check digit)
-
Stop character (usually an asterisk [*])
-
Trailing quiet zone
-
Intercharacter spaces (one module wide) that separate characters within the symbol
Each Code 39 - Full ASCII data character is represented by nine elements: five bars and four spaces, three of which are wide and six narrow.
Code 39 start and stop characters are used at the beginning and the end of the barcode message to signal a barcode reader that a Code 39 barcode has been scanned. This character is commonly designated as an asterisk, but you can choose to have no start and stop characters at all or choose to let the data source specify either the start character or the stop character or both. The start and stop characters are not transmitted as part of the barcode and are not included in any check digit calculations.
Code 39 - Regular and Code 39 - Full ASCII support the same 43-character set and the same start and stop characters. However, Code 39 - Full ASCII uses special two-character combinations from the 43-character set to allow for the representation of all 128 ASCII characters. In other words, you can encode any of the ASCII standard (not extended) characters and the ASCII control characters into a barcode, as illustrated in the following table from the ISO/IEC standard.
For example, to create lowercase letters, you use the barcode symbol for a plus sign (+) followed immediately by the barcode symbol for the uppercase version of the letter. So, to print the letter "a", you would create a barcode that uses "+A".
In this example, the barcode reader, which must be in Full ASCII mode, decodes the plus sign, and then, rather than transmitting it, scans the next barcode character symbol (in this case, a capital "A") and performs a Full ASCII conversion to then transmit the lowercase "a". If the barcode reader were not using Full ASCII translation, no translation would be performed, and the characters "+" and "A" would be transmitted instead.
Code 39 - Full ASCII allows for an optional check digit that is based on the modulo 43 (mod 43) algorithm.
The recommended minimum symbol height for manual scanning is 5.0 mm or 15 percent of the symbol width (excluding quiet zones), whichever is greater. The quiet zones must be at least 10X wide, where "X" is the current X dimension.
Although Code 39 - Full ASCII has the advantage of representing all 128 ASCII characters, it does sacrifice barcode character density to do so. When you encode characters that are native to the 43-character Code 39 - Regular character set into Code 39 - Full ASCII, your barcodes do not undergo any degradation in character density. However, because Full ASCII characters are represented by a two-character combination, they take up more space. For example, the word "SEAGULL" is encoded into the barcode as *SEAGULL*, but the word "seagull" is encoded into the barcode as *+S+E+A+G+U+L+L*, which takes about twice as much space.