Chapter 32: Advantages - Simplicity |
In Brief: At its heart, Code 39 endures because of its remarkable simplicity. The encoding rules are so straightforward that a child could decode them with a ruler and a bit of graph paper, requiring no complex lookup tables for variable-length patterns. This chapter explores how this foundational simplicity translates into real-world practicality, examining the symbology's technical characteristics and illustrating, through a wide range of industry applications, why 'simple' is often the most powerful advantage of all. |

|
32.1 The Uncomplicated Genius of Code 39 |
In an age of complex data matrix codes and layered encryption, it is easy to overlook the quiet elegance of a simple linear barcode. Yet, the Code 39 symbology, a mainstay of industrial identification for decades, stands as a testament to the power of straightforward design. Its enduring legacy is not built on complexity, but on the very absence of it. The rules governing its encoding and decoding are so remarkably simple that they can be grasped without specialized training or costly equipment---a feature that has cemented its place in countless industries. |
To understand this advantage, we must look at the very structure of the code. Code 39 gets its name from its core encoding pattern: each character is represented by nine elements, which are a combination of bars and spaces. Of these nine elements, exactly three are wide, and the remaining six are narrow. This 'three of nine' pattern is the entire foundation of the symbology. The wide elements represent a binary '1,' while the narrow elements represent a binary '0.' The arrangement of these three wide elements among the nine positions creates a unique pattern for each character in the Code 39 alphabet. |
This system relies on a single, crucial variable: the width ratio between the narrow and wide bars. This ratio is typically recommended to be between 1:2 and 1:3, with a ratio of 1:2.5 being widely considered optimal. The exact ratio is not critical, which is a key part of its robustness. This tolerance for variability means that a Code 39 barcode printed with a slightly imperfect ratio can still be successfully decoded. The decoder simply needs to discern which elements are 'narrow' and which are 'wide' relative to each other. |
The use of start and stop characters, denoted by an asterisk (*), further underscores this simplicity. These special characters are not part of the data; instead, they frame the message, telling the scanner where the barcode begins and ends. Their design is asymmetric, meaning the pattern at the beginning is different from the pattern at the end when read in the opposite direction. This clever but simple feature allows the scanner to determine the correct orientation of the code, eliminating the need for additional orientation markers or complex image processing. |
This self-checking nature is perhaps the most profound consequence of Code 39's simplicity. Because each character has a unique, fixed pattern of wide and narrow elements, a single printing defect---an ink smear or a scratch---will likely turn a wide bar into a narrow one or vice versa. When a decoder reads this corrupted character, it will not match any valid pattern in the Code 39 character set and will be rejected as an error. This built-in error detection means that a separate check digit is not strictly required for basic verification. It makes the code 'self-checking,' a property that is both reliable and computationally inexpensive. |

|
32.2 Technical Characteristics and Their Practical Impact |
The simplicity of the encoding logic directly influences several technical characteristics that shape the practical application of Code 39. |
32.2.1 Variable Length and Data Capacity |
Code 39 is a variable-length symbology, meaning the number of characters encoded can vary to suit the application's needs. There is no fixed upper limit defined by the standard, although practical constraints related to printing and scanning often limit most implementations to a range of 20 to 50 characters. A longer barcode physically takes up more space, which can be a challenge when the label must fit on a small item. This is a direct trade-off: the flexibility of variable length is constrained by the low data density of the code itself. |
32.2.2 Data Density and Space Requirements |
The technical term 'data density' refers to how much information can be packed into a given physical space. Code 39 is considered to have a low data density. A Code 39 barcode will be roughly 30-40% wider than a Code 128 barcode encoding the exact same data. This is a direct consequence of its self-checking design, which requires a relatively long pattern of bars and spaces for each character. For this reason, Code 39 is not suitable for very small items like electronic components, where a more compact symbology like Code 128 or a 2D code would be necessary. The physical space requirement is an important design consideration. |
32.2.3 The Optional Check Digit |
While Code 39 is self-checking, it does not inherently include a checksum. However, an optional Modulo 43 check character can be added to the end of the data to provide an additional layer of validation. This is highly recommended for mission-critical applications where data integrity is paramount. The check digit is calculated using a weighted sum of the character values in the message, but its calculation, while adding a layer of security, is not a prerequisite for basic use. |
32.2.4 Extended Code 39 for Full ASCII |
The base Code 39 character set is limited to uppercase letters (A-Z), digits (0-9), and a few special symbols (- . $ / + % and space). This is a notable limitation, preventing the direct encoding of lowercase letters or other standard ASCII characters. To overcome this, an extension called Full ASCII Code 39 (or Code 39 Extended) was developed. This standard uses pairs of base Code 39 characters to represent the full 128-character ASCII set, including lowercase letters and control characters. For example, a lowercase 'a' can be represented as '+A'. This technique allows for greater flexibility but at the cost of even lower data density, as a single character now requires two encoded symbols. |
32.2.5 The Importance of the Quiet Zone |
A crucial, often overlooked, element of Code 39 is the quiet zone. This is a blank white space that must be present on both sides of the barcode, free of any marks or printing. It allows the scanner to identify where the barcode begins and ends. The recommended minimum quiet zone is 10 times the width of the narrow bar (the X-dimension) on each side. This requirement is a direct result of the discrete nature of the symbology; the scanner needs this 'breathing room' to reliably detect the start and stop patterns. Failing to provide an adequate quiet zone is a common cause of scanning failures. |
32.2.6 Printing and Dimensional Considerations |
The simplicity of the code's structure means that printing it is generally straightforward. It can be generated using barcode fonts, a method where the user simply types the data and the start/stop characters, and the font renders the appropriate bars and spaces. This ease of integration into existing printing systems is a key advantage. However, the code's reliance on a narrow-to-wide ratio makes it sensitive to 'ink spread' during printing, where the ink bleeds and thickens the bars. A slight ink spread can change the relative widths of narrow and wide bars, potentially making the code unreadable. Therefore, maintaining high print quality is essential for reliable performance. The minimum bar height is typically recommended to be 5mm or 15% of the barcode length, whichever is greater, ensuring the scanner has a tall enough target to read. |

|
32.3 Industry Applications: A Testament to Simplicity |
The technical simplicity of Code 39 translates directly into widespread applicability. Its robustness, ease of generation, and ubiquity in scanning hardware make it a preferred choice across a diverse range of industries. |
32.3.1 The United States Department of Defense (DoD) - LOGMARS |
Perhaps the most prominent and historic application of Code 39 is within the United States Department of Defense (DoD). The DoD adopted Code 39 as the standard for its LOGMARS (Logistics Applications of Automated Marking and Reading Symbols) program. This standard mandates the use of Code 39 for marking military shipments, equipment, and property. The rationale for this choice is deeply rooted in the characteristics of the symbology. |
The DoD required a barcode that was robust, reliable, and could be read in harsh and unpredictable environments---from deserts to arctic conditions. Code 39's self-checking property meant that even if a label was slightly damaged during transit or handling, there was a high probability it could still be successfully scanned or the error would be caught. The variable-length nature allowed for encoding critical identification numbers like the National Stock Number (NSN) without a fixed field length. Furthermore, the lack of a mandatory check digit simplified the initial printing and adoption process, while the option to add a check digit (as mandated by some specifications like MIL-STD-130) provided an extra layer of security for mission-critical assets. The DoD's requirement for a durable, easily-readable alphanumeric code made Code 39 the logical and enduring choice. |
32.3.2 The Automotive Industry - AIAG Standards |
The automotive sector, known for its complex supply chains and rigorous quality standards, is another major adopter of Code 39. The Automotive Industry Action Group (AIAG) has established standards that use Code 39 for part labeling and tracking throughout the manufacturing process. |
In a factory environment, parts are subjected to grease, paint, and extreme temperatures. The barcode must be readable despite these harsh conditions. Code 39's tolerance to imperfect printing and a degree of wear and tear gives it an advantage over more delicate, high-density codes. The ability to encode alphanumeric characters is essential for identifying specific parts, which often have designations that include both letters and numbers. The simplicity of the start/stop characters allows a scanner in a fast-paced assembly line to quickly lock onto the barcode, leading to efficient scanning. This simplicity, combined with robustness, made it a perfect fit for the automotive industry's demanding assembly and logistics environments. |
32.3.3 Healthcare and Patient Safety - HIBC |
In the healthcare industry, accuracy is a matter of life and death. The Health Industry Business Communications Council (HIBCC) developed a labeling standard for patient safety and unique device identification that is built upon Code 39. |
The HIBC standard leverages Code 39's ability to encode a mix of letters and numbers to create standardized labels for medical products. These labels can include information such as the manufacturer, product catalog number, and lot number. Using Code 39, the labels are robust enough to survive sterilization and the harsh chemicals used in a medical environment. The self-checking feature provides a critical line of defense against scanning errors, ensuring that the correct medication or device is administered to the correct patient. While the healthcare industry is increasingly moving towards 2D barcodes like Data Matrix for their higher data capacity, Code 39 remains a standard for many legacy systems and applications where its reliability is still highly valued. |
32.3.4 Inventory and Asset Tracking in General Industry |
Beyond these specific regulated sectors, Code 39 is the workhorse of general inventory management and asset tracking. Libraries use it to track books and media; the barcode on a book is a simple, reliable way to manage a vast collection. Electronics manufacturers use it to track components through assembly, even though they must carefully manage the length of the code. The aerospace industry, with its stringent safety requirements, has adopted it for tracking aircraft parts through their lifecycle. Even in office environments, Code 39 is used for routing documents and tracking equipment. Its ease of implementation using barcode fonts and the near-universal compatibility with barcode scanners means that any business, regardless of size, can adopt this technology quickly and affordably. |
The widespread use of Code 39 is a powerful endorsement of its practical value. Its advantages are not theoretical; they have been proven in the demanding real-world conditions of the battlefield, the factory floor, and the hospital room. |

|
32.4 Simplicity vs. Complexity: A Look at the Alternatives |
To fully appreciate the simplicity of Code 39, it is useful to consider the alternatives that have been developed to address its limitations. |
32.4.1 Code 128: Higher Density, Greater Complexity |
The most common direct competitor is Code 128. This symbology was designed to address the 'low data density' of Code 39. Code 128 can encode the same amount of data in roughly 30-40% less space, making it suitable for applications where label size is limited. |
However, this increased efficiency comes at a cost. Code 128 is more complex. It has multiple character sets and can be encoded in different modes, allowing for variable density. Crucially, Code 128 is not self-checking in the same way Code 39 is and *requires* a mandatory check digit to ensure accuracy. Its encoding logic involves more complex lookup tables and computational steps for both encoding and decoding. While this is trivial for a modern microchip, it makes it less accessible for simple or manual applications. Code 39's simple 'three of nine' pattern is far easier for a human to understand and even decode manually with a ruler and paper. |
32.4.2 Code 93: A Compact Successor |
Code 93 was developed as an evolution of Code 39, offering higher density and a more robust character set while maintaining a similar design philosophy. It can encode the same 43 characters as Code 39 but in a more compact form. However, like Code 128, it is not self-checking and requires a mandatory check digit for data integrity. Despite being an improvement in many ways, Code 93 never achieved the same widespread adoption as Code 39. This is largely due to the immense installed base and legacy support for Code 39; its simplicity and the fact that 'it just works' are powerful deterrents to change. |
32.4.3 The Shift to 2D Codes |
For applications requiring large amounts of data---such as a web address or detailed product information---linear barcodes like Code 39 or Code 128 are simply inadequate. In these cases, two-dimensional (2D) matrix codes like QR Codes and Data Matrix are used. These codes store data in a grid of squares, offering a much higher data density. However, they require a more complex imaging system to decode, moving beyond the simple laser scanner to a camera-based imager. While incredibly powerful, they represent a much higher level of technological complexity in terms of both generation and scanning. |
32.4.4 The Value of Legacy |
The decision to use Code 39 is often less about superior performance and more about the practical benefits of its widespread adoption. The installed base of Code 39 scanners and printers is enormous, and the symbology is supported by virtually every barcode reader on the market. It is a known quantity. When a new system is being designed, the cost and effort of transitioning to a more complex symbology often outweigh the benefits, especially for applications where Code 39's limitations are not a bottleneck. |

|
32.5 The Human Element: Manual Decoding and Accessibility |
The simplicity of Code 39 makes it accessible on a human level, something that is rarely discussed in technical specifications. The 'three of nine' pattern is intuitive enough that a person can decode the barcode with basic tools. |
The idea is simple: using a ruler, one can measure the widths of the bars and spaces in a Code 39 barcode. By marking which elements are wide (W) and which are narrow (N), a pattern such as WNNWWNNWNN is obtained. By consulting a chart that maps these patterns to characters, the encoded data can be manually transcribed. While not practical for mass scanning, this ability is a powerful testament to the code's inherent simplicity. It means that even without specialized equipment, the information on a Code 39 label is not locked away. This can be valuable in situations where a scanner is broken, or in educational contexts where understanding barcodes is the goal. It also speaks to the transparency of the design; there is no 'secret sauce' or complex math---just a cleverly arranged series of wide and narrow lines. One developer even demonstrated this by writing a simplistic JavaScript library called 'dumb3of9' that can decode Code 39 from images using a naive algorithm, a feat that would be far more challenging for a more complex symbology. |

|
32.6 Summary: The Enduring Power of Simplicity |
In a world that prizes complexity and information density, Code 39 has carved out a lasting legacy by being the opposite. Its 'simplicity advantage' is multi-faceted. |
First, its design is simple. The encoding and decoding rules are easy to understand and implement. Using only two elements (wide and narrow) and a fixed 'three-of-nine' pattern makes generation and scanning computationally inexpensive. This enables simple 'font-based' printing and the creation of affordable, reliable scanners. |
Second, its robustness is a result of its simplicity. The self-checking property, a direct consequence of the 'three-of-nine' pattern, provides an inherent resistance to printing defects and physical damage. This makes it ideal for harsh environments like those found in the military, automotive, and healthcare industries. |
Third, its accessibility drives adoption. It was the first symbology to encode alphanumeric data, a feature that quickly made it a standard. The optional check digit made it easier to adopt in the early days, while the near-universal support for the symbology in existing hardware has created a powerful network effect that keeps it relevant today. |
Its limitations are also a product of its simplicity. Its low data density makes it unsuitable for very small items or complex data sets. Its limited character set restricts its use to uppercase alphanumeric data unless the Extended version is used. |

|
However, the success of Code 39 is not a story of a technology that is 'good enough.' It is a story of a technology that is perfectly suited to a specific niche: reliable, simple, and rugged identification of physical assets. For internal logistics, asset tracking, and any application where a long, complex string of data is not required, the vast ecosystem of scanners and printers that support Code 39 makes it a compelling choice. |
The vast ecosystem of scanners and printers supporting Code 39, combined with its proven track record, makes it a compelling choice for countless organizations. The code's enduring presence in the 21st century is a powerful reminder that sometimes, the most elegant solution to a complex problem is a simple one. |