Barcode Technology

Barcode History

Barcode Label Paper

Barcode Printer

Barcode Application

Inventory Management

AI Barcode QRCode

Barcode Scanner

Barcode Software

Barcode Software B

Barcode Software C

Barcode Software D

Barcode Software E

New Technology A

New Technology B

Robot Technology

Barcode Types

Barcode Types B

Barcode Types C

Barcode Types D

Barcode Types E

Barcode Types F

Electronic Technology

Psychology at Work

Barcode Technology and Barcode Software Related   <<< Back to Directory <<<

A Comprehensive Technical Guide to Barcodes: From 1D to 2D, RFID, and the Future of Machine Vision (P6)

Chapter 6: The Code 39 Symbology (1974)

Chapter Summary: The First Alphanumeric Workhorse

Code 39, developed in 1974 by David Allais and Ray Stevens, stands as a landmark achievement in the history of automatic identification. It was the first barcode symbology capable of encoding both letters and numbers, breaking free from the numeric-only limitations of earlier codes like UPC. Its design philosophy prioritized reliability and simplicity over information density. This chapter will explore the technical characteristics of Code 39, examine the key industries that adopted it, and explain how its specific features---self-checking, variable length, and alphanumeric capability---shaped its role as the workhorse of industrial, military, and healthcare tracking for decades.

6.1 Introduction

In the early 1970s, the world of barcodes was primarily numeric. The Universal Product Code (UPC), adopted in 1973, was a triumph for retail, but it could only encode numbers. This limitation was a significant barrier for industries that needed to track items using alphanumeric identifiers---part numbers, serial numbers, lot codes, and other information that combined letters and digits.

David Allais and Ray Stevens, working at Interface Mechanisms Inc. (later Intermec), recognized this gap. They developed a new symbology designed specifically to encode the full alphabet. When they completed their work in 1974, they had created what would become one of the most enduring and widely adopted barcode standards in history: Code 39.

The name 'Code 39' derives from its original design: each character was represented by nine elements (five bars and four spaces), three of which were wide. The original specification encoded 39 characters, hence the name. Later, four additional punctuation symbols were added, expanding the character set to 43, but the name remained.

What set Code 39 apart was its ability to encode uppercase letters (A-Z), numeric digits (0-9), and seven special characters: space, minus (-), period (.), dollar sign ($), slash (/), plus (+), and percent (%). An asterisk (*) served as the start and stop character, signaling the beginning and end of the barcode to a scanner. This alphanumeric capability opened doors to countless new applications, making Code 39 the first truly versatile barcode for industrial and non-retail use.

6.2 Technical Characteristics of Code 39

To understand why Code 39 became so successful in specific industries, it is helpful to examine its underlying technical features. These characteristics shaped its strengths and limitations, determining where it excelled and where it was eventually superseded.

6.2.1 The '3 of 9' Structure

Each character in Code 39 follows a consistent pattern: it is made of nine elements---five bars and four spaces. Out of these nine elements, exactly three are wide, while the remaining six are narrow. This is why it is also known as 'Code 3 of 9'. The bars and spaces alternate: a character begins with a bar and ends with a space. The pattern of wide and narrow elements is what encodes the specific character.

The ratio between wide and narrow elements is flexible, generally ranging from 1:2 to 1:3. This tolerance is a practical advantage because it makes Code 39 more forgiving of variations in printing quality. The width of the narrowest element, known as the 'X dimension,' determines the barcode's density. The width of the wide element is a multiple of X, and this ratio can be adjusted to accommodate different printing technologies and scanning conditions.

6.2.2 Self-Checking Property

One of Code 39's most important features is its self-checking nature. Because every character has exactly three wide elements, a single printing defect or scanning error that changes a narrow bar to a wide one (or vice versa) will likely create a character that does not conform to the '3 of 9' rule. As a result, a single erroneous interpretation cannot be misread as another valid character. It does not require a mandatory check digit to ensure basic data integrity, although an optional Modulo 43 check digit can be added for extra security in specific applications.

This self-checking feature is particularly valuable in environments where labels may become damaged, dirty, or poorly printed---common conditions in factories, warehouses, and military settings.

6.2.3 Variable Length and Character Set

Code 39 is a variable-length symbology. It can encode a message of any length, from a single character to dozens, limited only by the space available on the label. This flexibility is essential for applications that require encoding identifiers of varying lengths, such as part numbers or serial numbers.

The standard Code 39 character set includes 43 characters. However, a variant known as 'Full ASCII Code 39' can encode all 128 ASCII characters by using two-character combinations. This extension allows Code 39 to represent lower-case letters and additional punctuation, increasing its versatility, although the standard version remains the most common.

6.2.4 Discrete Symbology

Code 39 is a discrete symbology, meaning that each character is independent and separated by an intercharacter gap (a narrow space). This contrasts with continuous symbologies like Code 128, where characters share the space between them. The discrete nature of Code 39 simplifies printing and decoding because it reduces the risk of characters running together. The intercharacter gap makes Code 39 more robust against scanning errors caused by variations in print density or scanning speed, contributing to its suitability for manual scanning in industrial settings.

6.2.5 Low Data Density

The primary drawback of Code 39 is its low data density. Because it requires nine elements per character, many of which are wide, Code 39 symbols can become very long, even with moderate amounts of data. It requires more horizontal space to encode the same information compared to more recent symbologies like Code 128. This can be a problem when labeling small items or when space on a label is at a premium.

6.3 Key Industries and Their Applications

Despite its lower density, Code 39's reliability, simplicity, and alphanumeric capability made it the standard choice for several key industries. Its adoption was often driven by major organizations that established formal labeling standards, ensuring consistency across supply chains.

6.3.1 U.S. Military and LOGMARS

The U.S. Department of Defense was one of the earliest and most influential adopters of Code 39. They implemented it through the LOGMARS program, which stands for Logistics Applications of Automated Marking and Reading Symbols. LOGMARS standardized the placement and content of barcodes on military shipments, providing a uniform system for tracking supplies, equipment, and parts from the factory to the front lines.

Code 39 was specified in the military standard MIL-STD-1189. The choice of Code 39 for such a critical application stemmed directly from its technical features. The military needed a symbology that could:

- Encode alphanumeric part numbers and serial numbers used across the vast Defense Logistics Agency inventory.

- Withstand harsh environments, including exposure to dirt, moisture, and rough handling.

- Be readable even if labels were partially damaged, thanks to its self-checking property.

- Be printed reliably by a variety of methods, from impact printers to early thermal printers, without the need for complex checksum calculations.

The LOGMARS standard ensured that any supplier shipping goods to the Department of Defense had to use Code 39 labels, making it a de facto requirement for a vast network of defense contractors and suppliers. This military mandate was instrumental in spreading Code 39's use far beyond the battlefield, embedding it in the supply chains of companies that supported the military.

6.3.2 Automotive Industry

The automotive industry relies on the Automotive Industry Action Group (AIAG) for its labeling standards, and AIAG has long specified Code 39 for identifying parts and assemblies. The automotive supply chain is a complex web of manufacturers, suppliers, and assemblers spanning the globe. Tracking parts through this network requires a reliable, standardized approach.

Code 39's variable length makes it perfect for encoding the diverse alphanumeric part numbers used by different automakers and their suppliers. The self-checking nature of Code 39 helps ensure that misreads are minimized, which is critical when a misidentified engine block or transmission component could halt an assembly line. Its durability means that labels can withstand the oily, dirty, and physically demanding conditions of an automotive factory.

For decades, Code 39 labels have been affixed to everything from engine blocks and transmissions to smaller components like sensors and fasteners. The symbology is used at every stage: for receiving raw materials, work-in-progress tracking on assembly lines, quality control, and final inventory management. The widespread adoption of Code 39 in automotive standards helped create a common language for part identification across different manufacturers and countries.

6.3.3 Healthcare and the HIBCC Standard

The Health Industry Business Communications Council (HIBCC) established Code 39 as a key component of its labeling standard for healthcare products. The HIBCC standard was instrumental in improving patient safety through more reliable tracking of medical devices, pharmaceuticals, and other supplies. It provided a uniform way to encode the manufacturer, product, and lot number, enabling effective traceability for recalls or adverse event investigations.

In healthcare, the combination of Code 39's features proved valuable:

- The alphanumeric capability was essential for encoding the unique identifiers of medical devices, drug lot numbers, and expiration dates.

- The self-checking feature added a layer of reliability, reducing the risk of medication errors or patient misidentification in clinical settings.

- The discrete nature of the code made it easier to print on small labels often required for tiny vials and medical instruments.

Barcode scanning in hospitals became ubiquitous for checking patient wristbands against medication barcodes, verifying blood products, and tracking surgical instruments, reducing human error and saving lives. While HIBCC has allowed newer symbologies, Code 39's role in establishing these initial standards cannot be overstated.

6.3.4 Government and Industrial Tracking

Beyond these core industries, Code 39 was widely adopted by government agencies and general industry. The U.S. Department of Defense's LOGMARS program influenced other government bodies to adopt similar standards, making Code 39 a common sight on government property and equipment. In the private sector, it became the preferred symbology for inventory and tracking in many non-retail environments.

Manufacturing plants used Code 39 to track work-in-progress, tooling, and finished goods. Warehouses relied on it for inventory management and shipping. Electronics manufacturers used it to track circuit boards and components through assembly. In each case, the reasons were similar:

- Alphanumeric data was essential for meaningful identification.

- The system needed to be simple and robust enough for high-speed, high-volume scanning.

- The cost and complexity of alternative symbologies were often higher.

The 'workhorse' label is well-deserved. For decades, the Code 39 barcode was the default standard for any organization that needed to track physical assets in a non-retail environment.

6.4 Detailed Analysis of Technical Features and Their Practical Impact

Let's explore in more depth how Code 39's technical characteristics translated into real-world advantages and limitations.

6.4.1 The Impact of Alphanumeric Capability

Before Code 39, a barcode could only encode digits. This meant that items were typically identified by a numeric ID assigned by the organization. However, existing systems---such as inventory ledgers, part catalogs, and serial number logs---often used alphanumeric codes. A part number like 'ABC-123-XR' was more human-readable and meaningful than a random 10-digit number. Code 39 allowed these existing identifiers to be directly encoded onto labels. This reduced errors associated with translating alphanumeric codes to numeric-only barcodes and made the system more intuitive for workers who could see and read the barcode's human-readable text. It also meant that organizations did not have to redesign their internal part numbering systems to accommodate barcoding, significantly lowering the barrier to adoption.

6.4.2 Reliability Through Self-Checking

The self-checking property of Code 39 made it a safe choice for critical applications. In a factory with metal shavings, in a warehouse with dust, or on a military vehicle exposed to mud and moisture, barcode labels get damaged. A printed barcode may have a smear, a scratch, or a missing bar. In a less robust system, such damage could cause the scanner to misread the code, leading to errors in inventory, incorrect shipments, or assembly of the wrong parts.

Because Code 39 verifies that each character has exactly three wide elements, a scanner can reject a character if the count is wrong. This does not guarantee that every error will be caught, but it significantly reduces the chance of substituting one valid character for another. The optional Modulo 43 check digit could provide an even higher level of assurance, often mandated by specific standards. This reliability was a major factor in winning the trust of the military and other organizations where mistakes were not an option.

6.4.3 Simplicity and Cost-Effectiveness

The simplicity of Code 39 was a major driver of its adoption. It had no mandatory check digit, which meant that generating the barcode was as easy as converting the alphanumeric data into the corresponding bar and space patterns and printing it. Organizations could implement Code 39 using simple 'barcode font' technology. With a barcode font installed on a computer, a user could type the data (with start and stop asterisks) and select the font to print a barcode. This simplicity made it extremely easy to integrate with existing printing systems.

This ease of use also kept costs down. There was no need for specialized barcode generation software or complex check digit calculators. This democratized barcoding, allowing small businesses to implement sophisticated tracking without significant investment in software or training. The lack of a mandatory check digit was both a strength and a weakness. It made implementation easier, but it also meant that the optional check digit was sometimes omitted by well-meaning implementers who did not fully understand its benefits.

6.4.4 The Density Dilemma and Its Consequences

The same simplicity that made Code 39 easy to use also imposed a major limitation: low information density. The '3 of 9' pattern, with its three wide elements per character, created relatively long barcodes. As barcode applications grew more complex and the need to encode more data increased, Code 39 labels became physically large. This made it impossible to use on small items like jewelry or small electronic components. Furthermore, very long barcodes were more susceptible to damage and required more careful handling during scanning.

This density limitation was a primary reason for the later development and adoption of more efficient symbologies like Code 128, which can encode the same data in about half the space. However, for many years, the available printing and scanning technologies were limited, and Code 39's tolerance for variation in print quality was more important than its lack of density. Even today, its durability and reliability often outweigh its size in industrial applications.

6.5 Global Standardization and Legacy

Code 39 achieved its widespread adoption not just through its technical merits, but also through formal standardization. It was first standardized by the American National Standards Institute (ANSI) as ANSI MH 10.8 M-1983 and by the military as MIL-STD-1189. These standards were later superseded by the ANSI/AIM BC1/1995 specification and, ultimately, the international standard ISO/IEC 16388.

The existence of an international standard (ISO/IEC 16388) ensured that Code 39 symbols could be read by scanners from any manufacturer, anywhere in the world. This global interoperability was crucial for international trade and global supply chains. It meant that a military part labeled in the United States could be easily scanned and tracked at a base in Europe, or that an automotive component produced in Japan could be tracked by a plant in the United States. The standard defines everything from the precise dimensions and tolerances of the bars and spaces to the decoding algorithms and the symbology identifier prefix strings that indicate a scanner has read a Code 39 symbol.

The fact that ISO/IEC 16388 was updated as recently as 2023 shows that Code 39 remains a relevant and actively maintained standard, even decades after its creation.

6.6 Code 39 in the Age of 2D Barcodes

In the 21st century, 2D barcodes like Data Matrix and QR Code have become increasingly prevalent. These symbologies offer much higher data density, error correction capabilities (such as Reed-Solomon error correction), and the ability to encode thousands of characters, including web links and binary data. They are well-suited for modern use cases like direct part marking (DPM) with dot peen or laser etching on small components.

However, Code 39 has not been relegated to history. It continues to be used extensively in industries where its specific advantages are still valuable. Its continued relevance is a testament to its robust design. In many factories and warehouses, legacy systems were built around Code 39 and continue to function perfectly. Upgrading to a new symbology would require significant investment in new scanners, software, and training, with little benefit for a label that is already performing its job.

Furthermore, in applications where a simple, reliable alphanumeric code is needed and space is not a constraint, Code 39 remains a cost-effective choice. The availability of low-cost scanners that can read Code 39, combined with the ease of generating Code 39 labels using simple fonts, ensures that it will remain a part of the automatic identification landscape for the foreseeable future.

Detailed Chapter Summary

Code 39 was a revolutionary symbology when it was introduced in 1974. It was the first barcode to reliably encode alphanumeric data, breaking the numeric barrier and opening a world of new applications. Developed by David Allais and Ray Stevens, its '3 of 9' structure was designed for simplicity and reliability. The self-checking property of Code 39 meant that a single error could not be misread as another valid character, making it suitable for demanding industrial and military environments. Its variable length allowed it to accommodate a wide range of identifiers, from simple codes to complex part numbers.

These technical features made Code 39 the standard choice for several major industries. The U.S. Department of Defense mandated its use through the LOGMARS program. The automotive industry adopted it as a standard via the Automotive Industry Action Group (AIAG). The healthcare sector, through the Health Industry Business Communications Council (HIBCC), used it to improve patient safety and track medical devices. These industry standards made Code 39 a de facto requirement for thousands of suppliers across the globe, embedding it deeply in supply chains.

The symbology's simplicity also contributed to its widespread use. Without a mandatory check digit, it was easy to generate using simple barcode fonts, reducing costs and barriers to entry. However, this same simplicity meant that Code 39 had low data density, requiring more space to encode information than more modern symbologies.

Despite the rise of 2D barcodes and more efficient linear codes, Code 39 remains a relevant and active standard, most recently updated in ISO/IEC 16388:2023. Its continued presence in legacy systems, coupled with its proven reliability and simplicity, means that Code 39 will continue to be a trusted workhorse in industrial and military applications. While newer technologies have expanded the possibilities of automatic identification, Code 39 stands as the foundational symbology that first brought alphanumeric data into the barcode revolution. It was not the most sophisticated code, but it was exactly what the industrial world needed at the time: a robust, simple, and universally understood language of lines and spaces that could be printed in a factory, survive a journey across the ocean, and be read with a reliable, affordable scanner.

Key Terms and Concepts

Code 39 (Code 3 of 9): A variable-length alphanumeric barcode symbology developed by David Allais and Ray Stevens in 1974, characterized by a pattern of nine elements (five bars and four spaces), three of which are wide.

LOGMARS: Logistics Applications of Automated Marking and Reading Symbols; a U.S. Department of Defense program that standardized the use of Code 39 for military logistics.

MIL-STD-1189: The military standard that specified the use of Code 39 for the Department of Defense, later replaced by civilian standards.

ISO/IEC 16388: The international standard that currently defines the specifications for Code 39 symbology.

Self-Checking: A property of a symbology where a decoding error cannot result in another valid character. In Code 39, this is achieved because every character has exactly three wide elements.

Variable-Length: A characteristic of Code 39 that allows it to encode a data message of any practical length, up to the physical limitations of the label and scanner.

Modulo 43: An optional check digit algorithm used with Code 39 to add an extra layer of data integrity validation.

LOGMARS: Logistics Applications of Automated Marking and Reading Symbols; a U.S. Department of Defense program that standardized the use of Code 39 for military logistics.

AIAG: Automotive Industry Action Group; an organization that established Code 39 as a labeling standard for the automotive sector.

HIBCC: Health Industry Business Communications Council; an organization that established Code 39 as a labeling standard for healthcare products.

Discrete Symbology: A type of barcode in which each character is independent, separated by a gap, making printing and decoding more fault-tolerant.

Data Density: The amount of information that can be encoded in a given unit of space. Code 39 has low data density compared to more modern symbologies.

 

EasierSoft Barcode Label Design & Bulk Printing Software

---- Use Excel Data to Batch Print Barcodes on Label Sheets or Roll Labels  

---- How to use this barcode software

Download:  Free Barcode Software + Barcode Label Designer

Download Free Barcode Software at Softonic

     Download at CNET

Once you obtain a GS1/UPC/EAN barcode, or other barcode type and QR code, you can use our free software to batch print barcode labels onto Roll label paper using a professional label printer, or to batch print barcodes onto Avery 5160 label sheets using a regular laser or inkjet printer. Our software has free and paid versions.

The free version fully meets your needs for batch printing GS1/UPC/EAN barcodes. The paid version can import data from Excel and databases to batch print barcode labels with different values.

How to Start

Input Data

Import Excel Data

Print Barcode

Barcode Format

Label Designer

All Screen Shot

Export Barcode Image

Save Template

Output Word Excel

How to Use & FAQ:

Label Designer

Edit data in Label designer

Label Designer - Add new label

Label Designer - Printing

Set the barcode label format to be printed

Other Barcode Label Format Settings

Barcode types supported by this program

Barcode Label Font Settings

Configuring the Barcode Print Rotation

Text Alignment for Barcode Labels

Automatically Adjusting Barcode Width

Text Beneath the Barcode

Configuring Barcode Size

Auto Calculate the Barcode Size

Export Barcode images

Export Barcode Image Format

File Names for Exported Barcode

Resolution of Exported Barcode Images

Fixed Folder for Exporting Barcode

Default Barcode Image Export Format

Print bulk barcodes quickly

Print barcodes to Avery 5160 label

How to bulk Barcode Printing

Sample - Avery 5162 (2x7) Label Sheet

Example: Print barcodes to 5*3cm roll

Example: Print barcodes to 5161 label

Example: Print barcodes to 5162 label

Example: Print barcodes to 5163 label

Example: Print barcodes to 5164 label

Example: Print portrait orientation 5164

Example: Print barcodes to 5167 label

Example: Print barcodes to 5168 label

Example: Print portrait orientation 5168

Example: Print barcodes to 5169 label

Example: Print barcodes to 5660 label

Example: Print barcodes to 5661 label

Example: Print barcodes to 5662 label

Example: Print barcodes to 5663 label

Example: Print barcodes to 5664 label

Example: Print portrait orientation 5664

Example: Print barcodes to 5873 label

Example: Print barcodes to 5874 label

Two ways to import Excel data

Import Excel Data - Pro Edition

Import Excel Data - Std Edition

Import Data from Excel - Detail

Load Data From Excel File

Data Editing Table

Copy Data From Excel

Four ways to input barcode data

Highlights

Excel integration: Import data directly from Excel to generate and print barcodes in bulk.

Label designer: Create complex labels with multiple barcodes, text, logos, and shapes.

Batch printing: Print thousands of barcodes at once using standard inkjet/laser printers or professional barcode printers.


Flexible editions:

Standard Edition: Simple batch printing with Excel data.

Professional Edition: Adds command-line automation for workflow integration.

Label Designer Edition: Advanced design features for complex labels.


Why Choose Our Barcode Solutions?

Cost-effective: Free online generator and permanent free desktop version available.

Easy to use: No technical expertise required—just input data and print.

Versatile: Supports nearly all 1D and 2D barcode types, including QR codes.

Trusted: Recommended by CNET and widely downloaded by users worldwide.


Suitable Use Cases

Small businesses and startups needing quick barcode labels for products.

Retailers and online sellers managing inventory with batch barcode printing.

Manufacturers requiring sequential or custom barcode labels for packaging.

Educational and testing environments where barcodes are used for tracking.

 

 

CONTACT

cs@easiersoft.com

If you have any question, please feel free to email us.

 

https://free-barcode.com

 

<<< Back to Directory <<<     Barcode Generator     Barcode Freeware     Privacy Policy