- Home
- Barcode Glossary
- Code 39
Code 39
The classic self-checking alphanumeric barcode: 43 characters, simple structure, still everywhere in industry.
Code 39 Specification
| Character set | 43 characters: 0-9, A-Z, space, and - . $ / + % (full ASCII via Code 39 Extended) |
| Data length | Variable; no fixed minimum or maximum |
| Check digit | Optional Mod 43 check character (mandatory in LOGMARS and some industry standards) |
| Density | ≈5-9 characters per inch depending on wide:narrow ratio and X-dimension |
| Module width (X-dimension) | 0.19-0.50 mm typical; wide element = 2X-3X |
| Print ratio | Wide:narrow ratio 2:1 to 3:1 (2.5:1 recommended; 3:1 for dot-matrix impact printing) |
| Magnification | Scales with X-dimension and ratio |
| Quiet zone | 10X on each side |
| Standard | ISO/IEC 16388; AIM USS-39; ANSI/AIM BC1 |
| Origin | David Allais and Ray Stevens, Intermec, 1974 |
| Sample data | CODE 39 |
Try It: Generate a Code 39 Barcode
This live generator is preconfigured for Code 39. Adjust size, colors, and text — then download as PNG or SVG. Free, no signup, all encoding happens in your browser.
What Is Code 39?
Code 39, standardized as ISO/IEC 16388, was introduced by Intermec in 1974 and became the first widely-adopted alphanumeric symbology. Each character is nine elements — five bars and four spaces — of which exactly three are wide, giving the symbology its mathematical name (3 of 9) and a self-checking property: the fixed wide-count makes most print defects fail the decode rather than misread. Characters are separated by a narrow inter-character gap, and every symbol is framed by an asterisk start/stop.
Its character set is 43 symbols: digits 0-9, uppercase A-Z, space, and - . $ / + %. Full ASCII is available via Code 39 Extended. Density is modest — roughly 60-70% of Code 128 for the same data — and the Mod 43 check character is optional. But simplicity won: defense logistics (LOGMARS), automotive (AIAG), electronics, and countless in-house systems standardized on it decades ago, so it remains one of the most-scanned 1D formats in the world.
Common Applications
- Defense and government logistics (LOGMARS)
- Automotive manufacturing (AIAG labels)
- Electronics and industrial asset tags
- In-house legacy inventory and badge systems
Related Barcode Types
Code 39 with escape sequences that map the full ASCII set onto the 43-character base alphabet.
A high-density, variable-length linear barcode that encodes all 128 ASCII characters, and the backbone symbology of modern logistics.
Code 39 carrying the Health Industry Bar Code supplier labeling structure — the legacy healthcare marking standard.
Code 39 FAQ
Why is Code 39 wider than Code 128 for the same data?
Code 39 uses fixed character patterns of 9 elements plus a separator gap, and cannot switch to a denser numeric mode. Code 128 packs 11 modules per character with no gaps and encodes digit pairs in code set C. For typical alphanumeric data expect Code 128 to be about 30-40% narrower — and for numeric-only data, about half.
Do I need the asterisks in my Code 39 data?
No. The asterisk is the start and stop character — added automatically by the encoder and invisible in the transmitted data. If your scanned system reports asterisks around data, someone typed them into the input; they should be removed (or the scanner configured to strip them).
What is the Mod 43 check character and when is it required?
An optional trailing character computed from the weighted sum of character values, expressed as the 43-character set itself (so a data ending ...XJ might carry check char K). US DoD LOGMARS and some automotive specifications mandate it; general commercial use often omits it since Code 39 is already self-checking.
