Decoding Barcode Symbologies

How to select the best barcode symbology for your manufacturing operations

In our last installment, we went through the basic process of barcode implementation, but with only brief mention of one of the first, and most important, choices you’ll make—the specific barcode symbology to use.


What is Barcode Symbology—and Why Do I Need It?

Symbology refers to the system used to translate text into a format a barcode reader can interpret. That’s it.


Now before you tell me your iPhone can read text—and even your sloppy handwriting—just fine, let me interject. Optical character recognition technology like this is awesome, and it’s getting better all the time. But trusting it for manufacturing-level precision is kind of like trusting spellcheck to fix your texts. Errors will be made.

Barcode symbologies, on the other hand, are specifically designed for simplicity. They’re big and blocky (thus the bars), so the machine doesn’t have to “work as hard” to tell the difference between the letter “o” and a “d” where the upper bit got smudged. What’s more, they incorporate checksum methods to guarantee that the right data was read. Can’t beat that.

What Are My Choices?

So you definitely want barcoding, not OCR—so let’s go barcode shopping! There are about 30 major symbologies out there, but fortunately, just three key factors to consider when deciding among them:

  • Compatibility

  • Density

  • Range

Of course, as with most decisions in life, these three priorities don’t all line up easily behind one choice. Comparing the pros and cons of three popular options, however, should get you in the right ballpark.


On the first criteria, compatibility, Code 39 is the hands-down winner among alpha-numeric barcode symbologies (ones that can code numbers and letters). Created in 1974, it uses a simple combination of bars and spaces, much like Morse code.

Barcode Sample.png

In Code 39, there are relatively few variables—bars and spaces can be wide or narrow. This simplistic coding makes it easy to print and read Code 39 via machine, so compatibility with barcode readers is essentially universal.

At its introduction, Code 39 only supported 43 characters, all uppercase letters and a few special characters. Users’ needs quickly outgrew this limited alphabet and the character set had to be expanded.

For technical reasons, the only way to add more characters was by using combinations of the original 43. So a lowercase “m,” for example, is coded as “+M.” It’s a fine solution, but the problem is that Code 39 uses nine elements (bars and spaces) per character. To code anything other than the initial 43 characters (the “+” and the “M” to mean a lowercase “m”) then requires 18 elements.

Barcodes in Code 39 quickly get unruly.

The shorthand for all of this is “density.” Code 39 isn’t very dense.


Code 39 is a one-dimensional (1D) barcode. It has bars and spaces running horizontally along the X access. But what if you used another dimension, breaking up the black ink and blank space in various ways along the Y access as well? You’d get something like this:

QR Code Sample.png

Look familiar? You’ve probably scanned any number of these with your phone. It’s called a QR code, and it can store over 3,000 characters, which puts Code 39’s density to shame.

Well, that’s great. I’ll use that!” you might say.

Sorry, but there’s a catch. 2D barcodes pose challenges on both compatibility and range, and these can be deal-breakers.

Let’s talk compatibility first. There are various types of barcode readers: CCD scanners, laser scanners, and imagers. Ideally, you’d want your barcodes to be readable by any type of device.

Well, an imager can read both 1D barcodes (like Code 39) and 2D barcodes (like QR codes), no problem. But laser and CCD scanners are linear—they read along that X access—so they can’t “see” what’s going on in the second dimension. 2D barcodes are all Greek to them.

This isn’t a big issue within a single company. You could buy only imagers and use whatever barcode format you like. But most barcode implementations also need to take into account materials suppliers, to more easily capture inputs, and customers, to facilitate their processes. They may or may not have the right equipment for 2D barcodes.


The larger issue with 2D barcodes, however, is range, by which I mean the distance at which a barcode can be read by a device. This factor comes into play because imagers, which are necessary to read 2D barcodes, cannot read at much distance at all. (Try scanning a QR code on your phone from across the room. It won’t work.)

Laser scanners, on the other hand, are great for places like warehouses, where an employee might need to scan a code affixed to a rack waaaaay up there. Unfortunately, as mentioned above, laser scanners can’t read 2D barcodes; the two are mutually incompatible.

Thus if range is a priority for you—and you’re not willing to mix 2D barcodes for labor activities and 1D codes for materials, which I’d recommend against—2D barcodes are likely a “no go.”


A final option I’ll present here—which is, in my opinion, among the best for balancing compatibility, density, and range—is Code 128, so called because it includes all 128 letters, numbers and symbols in ASCII.

Code 128 Example.png

Like Code 39, Code 128 is a 1D barcode. That means it’s compatible with a wide range of scanners, including CCD, imagers, and laser scanners, both short- and long-range. It also has greater density than Code 39, so barcodes don’t get so out of hand.

And there’s an extra benefit, a more robust checksum than Code 39. Most barcode symbologies include formulas enabling the reader to verify that the correct values were read. In Code 39, the checksum method is very simplistic and does not validate the entire barcode. In Code 128, it does.

A small downside, special software is required to generate Code 128, whereas a Code 39 font exists that can be plugged into any application, but this isn’t a huge barrier for most manufacturers.

Summing Up Symbology

Phew! Barcode symbology may seem confusing at first and, sadly, it’s not a one-size-fits-all thing. But picking the right barcode symbology needn’t involve a Herculean research effort. To summarize, three top options for different applications are as follows:

  • For simple needs, Code 39 offers excellent compatibility and can be read at a distance by laser scanners. But density issues mean using Code 39 can make for some looooong barcodes.

  • 2D barcodes, such as QR codes, are the real “say anything” of symbologies, accommodating 3,000+ characters. But reading them is limited to imagers, which may not work in the warehouse. Additionally, various suppliers and customers may not support 2D barcodes.

  • Code 128 is a 1D code, with the associated compatibility and range benefits, along with greater density than Code 39. In other words, you can include more information in less space with Code 128 than with Code 39. It might be the Goldilocks choice you’re looking for.

The good news is that there are affordable, mobile solutions for reading every barcode option. Bezlio’s built-in camera-based barcode scanning interface functions just like an imager for 1D and 2D barcodes at closer ranges. If you do need “see further,” though, Zebra offers an Android-based scanner and various companies sell compatible Bluetooth products as well. Any way you read it, the scanned data can reach the Bezlio mobile app and your ERP, so you can put it to work.

Leave a Reply