Standards/code-49
Code 49
Overview
Code 49 is a continuous, variable-length stacked barcode symbology: it packs multiple short linear barcode rows on top of one another so that a large amount of data fits into a small footprint. It encodes the full 128-character ASCII set and was, historically, the first stacked symbology, combining ideas from UPC and Code 39 into one code 1 3 6. It is standardised as USS-49 / ANSI/AIM BC6 (AIM-BC6-2000, "Uniform Symbology Specification — Code 49") and is in the public domain 1 2.
History
Code 49 was developed in 1987 by Dr. David Allais of Intermec Corporation 1 3 5. Allais was one of the most prolific barcode inventors of the era — at Intermec he also created Interleaved 2 of 5 (1972), Code 39 (1974, with Ray Stevens), Code 11 (1977) and Code 93 (1982) 5. Code 49 was conceived to solve the problem of scanning large amounts of data on small objects, where conventional linear barcodes were too long or too low-capacity 3 5. It is widely credited as the first stacked barcode symbology, and although its own practical adoption was limited, it set the stage for the later, far more successful stacked code PDF417 3 5 6.
Technical specification
A Code 49 symbol comprises two to eight rows 1 2. Each row contains four symbol characters that together encode eight ASCII characters, the last of which is a per-row check character; every row is exactly 18 bars and 17 spaces 1. The symbology supports the full 128-character ASCII set and operates as a continuous, variable-length code 1 2.
Error detection/correction is layered: row check digits use a modulo-49 algorithm and symbol check digits use a modulo-2401 algorithm (2401 = 49²) 1. The symbol has a fixed width of 70 modules (70X); each row must be at least 8X tall; the leading quiet zone should be at least 10X and the trailing quiet zone at least 1X 1. The name "Code 49" reflects that its row check arithmetic and character architecture are organised around the value 49 1 6.
Use cases
Reported early adopters were data-dense, small-item industrial settings: defense/parts marking (U.S. Department of Defense), healthcare/patient identification, electronics manufacturing and aerospace component tracking, where its high data density was advantageous 6. Practical use was limited from the outset and declined through the 1990s–2000s as PDF417 and Data Matrix took over the same niches 3 6.
Implementations
- Zint (
github.com/zint/zint) — open-source C encoding library; its symbology appendix and manual confirm Code 49 support 4 7. - BarTender / Seagull Scientific — commercial label software documents a full Code 49 implementation 1.
- Neodynamic barcode SDKs — commercial component documents Code 49 (USS-49 / ANSI/AIM BC6) support 2.
Comparison
- vs. Code 16K — Code 16K, created by Ted Williams at Laserlight Systems in 1989, was a direct response to Code 49. Where Code 49 needed large lookup tables and substantial memory for its encoding/decoding algorithms, Code 16K (built on Code 128) offered a simpler approach to printing and decoding stacked rows while avoiding those memory requirements 3 8. Code 16K allows 2–16 rows (vs Code 49's 2–8) and is standardised as AIM-BC7 8.
- vs. PDF417 — PDF417 (Symbol Technologies, 1991) is the spiritual successor: also a stacked symbology but with much higher capacity, formal Reed-Solomon error correction, and broad industry/ISO adoption. Code 49 is regularly described as having "set the stage" for PDF417 3 5.
- vs. linear codes (UPC / Code 39) — Code 49 was explicitly designed as a stacked hybrid drawing on UPC and Code 39, trading the single-line scannability of those linear codes for far higher data density in a small area 3 6.
Fun facts
- Code 49 is generally cited as the first stacked barcode symbology ever created — the conceptual ancestor of PDF417 and other stacked codes 3 6.
- Its inventor David Allais later founded PathGuide Technologies (1989), a warehouse-management-systems company, after a 20-year career at Intermec where he served as CEO and chief scientist 5.
- Both the symbology's check-character math (modulo 49 and modulo 2401 = 49²) and its name are organised around the number 49 1.
Status
Niche / legacy. Code 49 is a published, public-domain AIM standard (AIM-BC6) with continuing software support 1 2 4, but in the field it was quickly overtaken by PDF417 and Data Matrix and survives only in a few specialised manufacturing and archival contexts 6. Confidence is medium: the technical spec and history are well-corroborated across multiple barcode references, but quantified current-deployment data is not available and several use-case claims come from a single secondary source.
Sources
1 Code 49 — BarTender Barcode Guide — Seagull Scientific. 2 Code 49 (USS-49, ANSI/AIM BC6) — Neodynamic. 3 The history of Code 49 barcode — Free-Barcode.com. 4 zint/zint barcode encoding library — GitHub. 5 David Allais — Wikipedia. 6 What is a Code 49 Barcode? — Triton Store. 7 Zint Manual — symbology appendix — Zint project. 8 Code 16K — Wikipedia.
Deployments
No country reports mention this standard by name.
Regions / aggregations not mapped to a single country
- Universal