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 (P42)

Chapter 42: The Failure of Code 16K

In Brief

Code 16K, introduced in 1988 as an early stacked two-dimensional barcode, promised to pack more data into a smaller footprint by stacking rows of linear barcode patterns. Yet despite its technical innovations, it ultimately failed to achieve widespread adoption. The reasons are instructive for anyone interested in the evolution of automatic identification technology: limited error correction, poor tolerance to printing defects, proprietary licensing terms, and competition from a more flexible, open standard called PDF417. This chapter examines the technical limitations that doomed Code 16K, contrasts its approach with that of the successful Code 39 symbology, and explores how different industries responded to the strengths and weaknesses of these competing standards.

The Promise of Stacked Barcodes

The late 1980s was a period of intense innovation in the automatic identification and data capture industry. Linear barcodes, which had revolutionized retail inventory management through the Universal Product Code, were proving inadequate for a growing number of industrial applications. The fundamental limitation of one-dimensional barcodes is simple: they can only store a limited amount of data in a given physical space. A typical Code 39 barcode might hold 20 to 25 alphanumeric characters before becoming impractically long . For applications requiring more information---such as shipping manifests, healthcare records, or manufacturing specifications---this was simply not enough.

The industry needed a solution that could encode more data without requiring an impossibly large label. Two approaches emerged. The first was the development of two-dimensional matrix codes, such as Data Matrix and QR Code, which encode data in a grid of square modules. The second approach, which seemed more natural to engineers familiar with existing barcode technology, was the 'stacked' or 'row-pile' barcode.

Stacked barcodes are built on a clever premise: take the familiar linear barcode, rotate it slightly, and stack multiple rows on top of one another. This approach offered several advantages. First, stacked codes could be printed using the same technology as linear barcodes---no special printing equipment was required. Second, they could be read by scanners that were already in use, with relatively modest software upgrades. Third, they preserved the familiar pattern of bars and spaces that had proven so reliable in industrial environments .

Code 49 was the first commercially available stacked barcode, introduced in 1987. It was followed quickly by Code 16K, developed by Ted Williams at Laserlight Systems and introduced in 1988 . Code 16K was based on the widely adopted Code 128 symbology, which meant it inherited a proven encoding scheme and a character set that included the full ASCII range. The '16K' in its name refers to its maximum capacity: up to 16 layers or rows of data.

How Code 16K Worked

Understanding why Code 16K ultimately failed requires a closer look at its technical design. At its core, Code 16K is a stacked symbology built on the foundation of Code 128. Each row in a Code 16K symbol is essentially a miniature Code 128 barcode, complete with its own start and stop characters, encoded data, and a mandatory check digit .

A Code 16K symbol could contain between two and sixteen rows, with each row holding up to five ASCII characters. When fewer than five characters were encoded in the final row, placeholder characters filled the remaining positions. Rows were separated by horizontal bars, known as separator bars or bearer bars, which helped the scanner distinguish one row from the next. The minimum row height was eight times the width of the narrowest bar, ensuring sufficient vertical extent for reliable scanning .

One of Code 16K's more ambitious features was its ability to stack up to 107 separate symbols together, creating a composite that could theoretically encode up to 8,025 ASCII characters or 16,050 numeric characters. This was an extraordinary capacity for its time, suggesting applications in dense data storage and complex record-keeping .

The symbology supported the full extended ASCII character set, encompassing 256 characters, through the use of shift characters and code-set switching . It adopted the three character sets from Code 128---Set A, B, and C---allowing efficient encoding of uppercase letters, mixed case text, and numeric data respectively. This flexibility was a genuine strength.

Error detection in Code 16K relied on two mandatory modulo-107 check digits . The first check digit was calculated across all the data characters in the symbol, while the second provided additional verification. This dual-check approach was more robust than the single check digit found in many linear barcodes, and certainly more robust than the optional check digit that was often omitted in Code 39 implementations.

However, the critical limitation of Code 16K lay in its error correction capabilities---or rather, the lack thereof. Unlike modern two-dimensional barcodes such as QR Code or Data Matrix, which incorporate Reed-Solomon error correction to recover data even when a significant portion of the symbol is damaged, Code 16K offered only error detection. If a symbol was damaged in a way that affected the encoded data, the scanner could recognize that an error had occurred, but it could not reconstruct the missing information . This might be acceptable for symbols that are guaranteed to remain in pristine condition, but in industrial environments, labels get scratched, smudged, and faded.

The problem was compounded by Code 16K's limited tolerance to printing distortion. Barcode printing is subject to variations in ink spread, edge noise, and other distortions that can alter the apparent width of bars and spaces. Code 16K, because it was built on Code 128, inherited the latter's sensitivity to such variations. A patent filing from the period noted that even advanced techniques struggled to handle 'extreme levels of ink spread and ink shrink distortion' when reading stacked symbologies like Code 16K . The narrow bars that enabled higher data density also made the symbol more vulnerable to printing imperfections.

A Tale of Two Approaches: Proprietary vs. Open

Perhaps the most consequential factor in Code 16K's failure was its proprietary nature. Laserlight Systems held patents on the technology, and companies wishing to implement Code 16K had to navigate licensing terms that were not always favorable. In an industry where interoperability and widespread adoption are critical to success, proprietary standards face an uphill battle.

The contrast with PDF417, introduced in 1991, could not be starker. PDF417 was developed by Symbol Technologies and was designed from the outset to be an open, freely available standard. The specification was published and made available to any company that wished to implement it, without restrictive licensing fees or legal barriers. This openness was instrumental in PDF417's rapid adoption by the US Department of Defense, the airline industry, and numerous other organizations .

The proprietary nature of Code 16K had practical consequences beyond licensing fees. Because the specification was not freely available, fewer companies developed scanning hardware and software capable of reading it. The ecosystem of compatible devices remained limited, which in turn discouraged potential users from adopting the symbology. It was a classic chicken-and-egg problem: no one wanted to implement Code 16K because there were few scanners that could read it, and no one wanted to build scanners because there was no demand.

The Technical Characteristics of Code 39

To fully appreciate Code 16K's failure, it is helpful to understand the technical strengths of Code 39, the linear barcode that remained the workhorse of industrial applications throughout this period. Code 39, also known as Code 3 of 9, was introduced by Intermec Corporation in 1974 and was the first barcode symbology to encode both letters and numbers . Its design principles offer valuable lessons about what makes a barcode technology succeed.

Each character in Code 39 is encoded using a pattern of five bars and four spaces, for a total of nine elements. Of these nine elements, exactly three are wide and six are narrow. This 'three of nine' pattern gives the symbology its name and is central to its self-checking property .

The self-checking property is one of Code 39's most important features. Because each character has a unique pattern of wide and narrow elements, a single printing defect or reading error cannot transform one valid character into another. If a single bar is misread as wide when it should have been narrow, or vice versa, the resulting pattern will not correspond to any valid character in the code set, and the decoder will reject it . This provides a degree of error detection without requiring a separate check digit, though a modulo-43 check digit can be added if additional verification is required .

Code 39's character set includes uppercase letters A through Z, the digits 0 through 9, and seven special characters: space, dash, dot, dollar sign, slash, plus sign, and percent sign . The asterisk serves as the start and stop character, marking the beginning and end of the barcode. For applications requiring lowercase letters or additional special characters, the Extended Code 39 variant uses pairs of standard Code 39 characters to represent the full 128-character ASCII set, though at the cost of significantly longer barcode length .

The most significant drawback of Code 39 is its low data density. Because each character requires nine elements (five bars and four spaces), with three of those elements wide, Code 39 barcodes are relatively long for the amount of data they encode. A typical Code 39 barcode can hold 20 to 23 alphanumeric characters before becoming impractically large . For applications requiring more information, Code 128, introduced in 1981, offers approximately 40% higher density while supporting the full ASCII character set natively .

Despite this limitation, Code 39's simplicity, self-checking property, and lack of mandatory check digits made it easy to implement and virtually universal in its compatibility with existing barcode readers . The ability to print Code 39 barcodes using simple font-based systems, rather than specialized software, was a significant advantage for organizations with limited technical resources .

Industry Applications of Code 39

The widespread adoption of Code 39 across diverse industries illustrates how its technical characteristics aligned with real-world requirements. Each industry valued different aspects of the symbology, and the trade-offs between density, reliability, and ease of implementation were weighed differently depending on the application.

Military Logistics: The LOGMARS System

Perhaps the most influential early adopter of Code 39 was the United States Department of Defense. In the early 1980s, the military recognized that its logistics systems, which tracked billions of dollars worth of equipment and supplies, were in desperate need of automation. The result was LOGMARS, the Logistics Applications of Automated Marking and Reading Symbols program .

The military's choice of Code 39 was driven by several factors. First, the symbology's self-checking property meant that even without a check digit, the risk of misread data was acceptably low. In a military supply chain, where a misread could send critical spare parts to the wrong location or result in incorrect inventory counts, this reliability was essential. Second, the ability to encode alphanumeric characters was crucial, as military part numbers and equipment designations typically include both letters and numbers. Third, the military required a standard that could be implemented consistently across all branches of service and by all suppliers. Code 39, as an open and well-documented specification, met this requirement.

The LOGMARS program mandated the use of Code 39 for identifying all government property, and this requirement cascaded down through the defense supply chain. Any company that wanted to do business with the Department of Defense had to be able to print and read Code 39 labels . This created a vast installed base of Code 39-compatible hardware and software, ensuring the symbology's continued relevance for decades.

Healthcare: Patient Safety and Inventory Management

The healthcare industry adopted Code 39 through the Health Industry Bar Code standard developed by the Health Industry Business Communications Council. This standard, known as HIBC, specified Code 39 as the primary symbology for labeling medical products, including pharmaceuticals, devices, and supplies .

In healthcare applications, the self-checking property of Code 39 was particularly valuable. A misread barcode on a medication label could have life-threatening consequences, so any mechanism that reduced the risk of data errors was welcome. The ability to encode both letters and numbers was also essential, as drug names, lot numbers, and expiration dates include a mix of characters.

Hospitals also used Code 39 for patient identification wristbands, laboratory specimen tracking, and equipment inventory. The symbology's simplicity meant that barcode printing could be integrated into hospital information systems without specialized hardware, and the widespread availability of Code 39 readers meant that staff at any location could scan labels without proprietary equipment.

Automotive Manufacturing: Supply Chain Tracking

The automotive industry, through the Automotive Industry Action Group, established standards for barcode labeling that relied heavily on Code 39. Parts manufacturers were required to label components with Code 39 barcodes containing part numbers, serial numbers, and date codes, enabling tracking through the entire supply chain .

In automotive manufacturing, the key requirement was reliability in a demanding environment. Automotive parts travel through factories where they are exposed to oil, grease, heat, and abrasion. Barcode labels must survive these conditions and remain readable. Code 39's simple bar and space patterns proved robust enough to withstand the harsh environment of automotive production.

The low data density of Code 39 was not a significant concern in this application. Automotive part numbers tend to be short, typically containing 10 to 20 characters, which is well within the capacity of a reasonably sized Code 39 label . The larger label area required by Code 39 was acceptable because automotive parts are generally large enough to accommodate a label of several inches in width.

Government and Defense Contracting

Beyond the military LOGMARS program, Code 39 was widely adopted across government and defense contracting. MIL-STD-130, the military standard for identification marking of US government property, specified Code 39 as the required symbology . This standard applied to everything from combat vehicles to office furniture, creating an enormous installed base.

Government contractors found that Code 39 was easy to integrate into existing operations. Because no check digit calculation was required (though some specifications mandated the optional modulo-43 check digit), Code 39 could be printed simply by adding a font to a printer and formatting the data accordingly . This simplicity made Code 39 accessible to organizations that lacked specialized barcode expertise.

Warehousing and Logistics

Warehouses and distribution centers, particularly in the government and defense sectors, used Code 39 for inventory management, shipping and receiving, and asset tracking . The symbology's ease of implementation was a key factor, as warehouse operations often involve multiple systems and suppliers.

The reliability of Code 39 in dusty, dimly lit warehouse environments was also important. The self-checking property meant that a dirty or partially damaged label was less likely to produce a misread than a symbology without this feature. While Code 128 might have been more efficient in terms of label space, many warehouse operators saw no compelling reason to switch from Code 39.

The Failure of Code 16K: A Technical Postmortem

With this background on Code 39's success, the failure of Code 16K becomes more comprehensible. Code 16K attempted to address a genuine need---the desire for greater data capacity in barcode labels---but it did so in a way that exposed the limitations of the stacked barcode approach while failing to provide compensating advantages.

The Error Correction Problem

The most significant technical limitation of Code 16K was its lack of robust error correction. While Code 39's self-checking property protected against single-character misreads in a linear barcode, a stacked barcode faces different failure modes. Damage to a label can affect multiple rows simultaneously; a scratch across the symbol might obscure a portion of every row, making the affected data unrecoverable.

Code 16K's two modulo-107 check digits provided error detection, but not error correction . If a portion of the symbol was unreadable, the entire symbol had to be rescanned or replaced. In practical applications, this was a serious limitation. A barcode that cannot be read because of minor damage is not merely an inconvenience; it can cause production delays, shipping errors, and customer dissatisfaction.

Modern two-dimensional barcodes solve this problem through Reed-Solomon error correction, which can reconstruct missing data from redundant information encoded in the symbol. This allows a QR Code or Data Matrix symbol to remain readable even if a significant percentage of the symbol is damaged. Code 16K's era predates the widespread availability of this technology, and its architects lacked the computational resources necessary to implement sophisticated error correction in a cost-effective manner.

Printing Tolerance Issues

The second major technical limitation of Code 16K was its poor tolerance to printing distortion. Barcode printing involves a process of ink application or thermal transfer that inevitably introduces some variation in the width of printed bars. Narrow bars are particularly susceptible to these variations, as a small amount of ink spread can significantly change their apparent width.

Code 16K, built on the Code 128 symbology, inherited that standard's sensitivity to printing distortion. While Code 39 uses a simple wide-narrow ratio that accommodates significant variation in bar width, Code 128 requires more precise control over bar widths to decode correctly. When this precision is multiplied across multiple stacked rows, the risk of reading errors increases .

In practice, this meant that Code 16K required higher-quality printing than many industrial environments could provide. Labels printed on older thermal transfer printers, or on substrates that caused ink to spread, were often unreadable. This was particularly problematic for applications where barcodes were printed on demand by workers using portable printers.

Competition from PDF417

The introduction of PDF417 in 1991 was a watershed moment for stacked barcodes. Developed by Symbol Technologies, PDF417 addressed many of the weaknesses of its predecessors. Most importantly, it included built-in error correction that could reconstruct data even when a portion of the symbol was damaged. It also offered higher data density, better printing tolerance, and a flexible structure that could be scaled to accommodate different amounts of data.

PDF417 was designed from the start as an open standard, available to all without licensing restrictions . This contrasted sharply with Code 16K's proprietary nature. Organizations that had been reluctant to commit to Code 16K because of licensing uncertainty found PDF417 an attractive alternative.

PDF417 also offered a more sophisticated approach to error correction. The symbology could be configured with different levels of error correction, allowing users to trade off data capacity for robustness depending on their needs. This flexibility made PDF417 suitable for a much broader range of applications than Code 16K.

The Ecosystem Problem

The failure of Code 16K was self-reinforcing. Because the symbology was proprietary, few scanner manufacturers invested in supporting it. Because few scanners could read Code 16K, organizations were reluctant to use it. This created a classic network effect problem, where the value of a technology depends on how many others are using it.

The contrast with Code 39 is instructive. Code 39 was not only open and free, but its simplicity meant that nearly every scanner manufacturer could support it with minimal effort. This created a virtuous cycle: as more organizations adopted Code 39, scanner manufacturers competed to offer better reading performance, further increasing the symbology's adoption.

Lessons for Technology Adoption

The failure of Code 16K offers several lessons that extend beyond the world of barcodes. First, technical superiority does not guarantee market success. Code 16K offered greater data capacity than linear barcodes, but it sacrificed reliability and ease of implementation in ways that mattered more to users.

Second, open standards have a significant advantage over proprietary ones. The open nature of PDF417 and Code 39 allowed them to benefit from competition among implementers, which improved both quality and price. Proprietary technologies, by contrast, must overcome the barrier of licensing uncertainty and the need to build a complete ecosystem of compatible products.

Third, reliability matters more than capacity for many applications. The self-checking property of Code 39, and the error correction of PDF417, addressed genuine user concerns about data integrity. Code 16K's lack of error correction, and its sensitivity to printing distortion, created vulnerabilities that users found unacceptable.

Fourth, industry standards and government mandates can make or break a technology. Code 39's success was driven in large part by the LOGMARS program and MIL-STD-130, which required its use in defense applications . PDF417's success was accelerated by adoption by the Department of Defense and the airline industry. Code 16K, lacking such mandates, remained a niche product.

Finally, the installed base of hardware and software creates enormous inertia. Once organizations have invested in barcode printers, scanners, and software that support a particular symbology, they are reluctant to change. Code 39's early adoption in defense and healthcare created an installed base that continues to sustain it decades later. Code 16K never achieved this critical mass.

Conclusion

Code 16K stands as a cautionary tale in the history of barcode technology. It was technically innovative, offering greater data capacity than linear barcodes in a format that could be printed with existing equipment. Yet it failed to gain traction because of fundamental limitations: inadequate error correction, poor tolerance to printing distortion, proprietary licensing, and competition from a superior open standard.

The success of Code 39 in military, healthcare, automotive, and logistics applications demonstrates the importance of reliability, simplicity, and openness. Code 39's self-checking property, while modest compared to modern error correction, provided a level of data integrity that users valued. Its alphanumeric character set made it flexible enough for diverse applications. And its open specification created an ecosystem of compatible hardware and software that reinforced its adoption.

PDF417 ultimately succeeded where Code 16K failed by addressing the limitations of early stacked barcodes. It provided robust error correction, accommodated a wider range of printing conditions, and was available as an open standard. Yet even PDF417 eventually ceded ground to two-dimensional matrix barcodes, which offer even higher data density and more sophisticated error correction in a smaller footprint.

The story of Code 16K reminds us that innovation is not enough. New technologies must fit the practical needs of users, work reliably under real-world conditions, and be adopted by an ecosystem of compatible products. When these conditions are not met, even technically ambitious technologies can fail. The barcode industry's evolution from linear codes through stacked codes to matrix codes reflects the industry's learning about what truly matters: reliability, interoperability, and practical usability in diverse industrial environments.

Summary

Code 16K, an early two-dimensional stacked barcode introduced in 1988, promised to solve the data capacity limitations of linear barcodes by stacking multiple rows of Code 128 patterns. However, it failed to achieve widespread adoption due to several critical weaknesses.

Limited Error Correction: Code 16K used two check digits for error detection but lacked the robust error correction capability of modern 2D codes. Any damage to the symbol could make it unreadable, and the missing data could not be reconstructed. This was a serious problem in industrial environments where labels are subject to wear, abrasion, and contamination.

Poor Printing Tolerance: Based on the Code 128 symbology, Code 16K was sensitive to variations in bar width caused by ink spread and other printing distortions. Low-quality printers, which were common in many industrial settings, often produced Code 16K labels that could not be read reliably. This limited the symbology's applicability in the very environments that most needed greater data capacity.

Proprietary Licensing: Code 16K was developed and patented by Laserlight Systems, requiring users and implementers to navigate licensing terms. This created uncertainty and discouraged adoption, particularly in contrast to the open standards that dominated the industry.

Competition from PDF417: The introduction of PDF417 in 1991 offered a superior alternative that addressed many of Code 16K's weaknesses. PDF417 provided robust error correction, better printing tolerance, higher data density, and was available as an open standard. Organizations that might have considered Code 16K increasingly chose PDF417 instead.

The success of Code 39 in military, healthcare, and industrial applications illustrates the principles that drive barcode adoption. Code 39's self-checking property provided a level of data integrity that users valued, even without mandatory check digits. Its ability to encode alphanumeric characters made it flexible for diverse applications. Its simplicity meant it could be printed and read with inexpensive equipment. Its open specification ensured widespread compatibility and a robust ecosystem of hardware and software. And its adoption by military and government programs created an installed base that sustained it for decades.

Code 16K's failure demonstrates that technical innovation must be accompanied by practical reliability, ease of implementation, and ecosystem support to achieve commercial success. The barcode industry's evolution toward increasingly sophisticated symbologies has been driven by real user needs, and technologies that fail to address those needs---no matter how innovative---will not succeed.

 

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:

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

Add ASCII Key E

Input Multiple Lines of Text for Barcodes

Generates Sequential Serial Numbers

Import or copy data from Excel sheets

Special sequence number generation

Std Details: Simple Input Form

Std Details: Multiple Line Text Input

Details: Sequence Barcode Generator

Examples: Sequence Barcode Generator

Import Data From Excel Spreadsheet

Barcode Data Correspondence Diagram

Data Editor

Editing a Single Row Data in Form

Batch Editing Multiple Rows of Data

Batch Data Editing - Example 2

Design & print complex barcode labels

Configuring Text Elements on Label

Configuring Barcode Elements on Label

Configuring Image Elements on Label

Setting Line Elements on Label

Designing Labels for 5164 Sheet

Advanced Page Layout Settings

Add Barcode Elements to a Label

Configuring Parameters of a Barcode

Entering Multiple Values for a Barcode

Print barcode labels

Print bulk barcodes - How to start

Four sections of print bulk barcodes

Barcode Filter & Repeat Print Quantity

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