Skip to content
barcoder

Standards/code-49

Code 49

Type2D Stacked Linear
Completeness76%medium

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
source · docs/standards/code-49/index.md