Barcode Symbology Selection

Getting Started

One of the questions we are most frequently asked is, what barcode symbology should a customer choose.  Sometimes the answer to this is simple and sometimes it is more complex.  The simple answers come when you are printing a label that has a standard or specification tied to it.  Most of the time there is a mandate as to what symbology you need to use.  Other times, you are open as to what symbology you can choose, and factors such as available space and the amount of data encoded help make the choice for you.

1D or 2D barcode is another question that we frequently face.  We at EMP have been strongly recommending for years now that any barcode scanner we sell, be an imager that is capable of reading both barcode types.  The cost difference between the two is small and you are future-proofing yourself with an imager even though you may only need to read 1D barcodes for now.  Not to mention that you can read any code from any orientation with an imager and are not worrying about lining up a thin beam on a 1D barcode.  This can drastically reduce scanning times.

There are many, many barcode symbologies out there, we are only going to cover the main ones in this document.


Both an easy barcode to discuss and a confusing one.  First, this is the common barcode symbology that you see on all consumer goods.  The one that is scanned at the cash register.  It used to be called UPC (Universal Product Code) but was changed to GTIN (Global Trade Item Number) in 2005.  Also, the governing group was changed from the UCC (Uniform Code Council) to GS1 (Global Standards 1).  What started as a way for suppliers to get a unique UPC number for goods sold through retailers in the US.  Is now much more widely used for barcode standards in many industries around the globe.  This is a 1D code that is only good for numeric data and should only be used on consumer goods selling through retail.

Code 3 of 9

Also called Code 39, it is more correctly called Code 3 of 9 because each character in the barcode is made up of 3 wide and 6 narrow bars, hence 3 of 9 are wide.  This is a 1D barcode symbology that can encode alpha, numeric, and special characters.  The first widespread use of this code was by the auto manufacturers in their AIAG (Auto Industry Action Group) standards for labels used by all auto suppliers.  This standard was copied by many other industries and the proliferation of Code 3 of 9 was the result.  Code 3 of 9 is a very reliable code since it has a * for start and stop character that must be present for the code to be read.  Check digits can also be added to the code for additional security.  But it is not the most efficient code for packing data.  If you have a long data string such as a vehicle VIN number, the codes can get very long and difficult to scan.

I 2 of 5

The quick answer is “Do Not Use”.  It is an efficient code since it Interleaves the date (the I in the name), with some data in the bars and some in the spaces.  But it is the least secure symbology and prone to partial reads or substitution errors.  It also is only good for numeric data.  We do not see it often anymore, it was used by the pharma industry for serial numbers and the packaging industry as an option for case coding.

Code 128

This is the best 1D barcode symbology that you can use.  It compacts the data very well and will encode alpha, numeric, and special characters.  This code uses 3 different bar widths to help with the code density which also allows you to easily spot this symbology versus Code 3 of 9.  One challenge is that the code can grow in length if you are encoding alpha or special characters.  Numbers have a fixed length and you can easily predict the overall length of the barcode, but every time you throw an alpha or special character in the code, the symbology inserts a switch function character that takes up more space.  This can be troubling when you have a finite amount of space to print the code on the label and your data mix between alpha and numeric is not consistent, such as in an Auto VIN number.

PDF 417

Portable Data File, this is a hybrid bar code since it uses 1D and 2D code elements.  If you look at the code, you will see standard 1D bars on both sides of the code along with individual square elements of a 2D barcode in between.  You can even read this code with a rastering 1D scanner, but it is not recommended.  When to use this code is easy, when you need to get a lot of data into your bar code.  The most common use case is the back of a driver’s license.  All the data on the front side of the license is encoded in the PDF417 barcode on the back.  But this code can be challenging to read, it is large and has a lot of data, so your barcode scanner may struggle to get all of the code in the reading window and to decode and transmit all of the data quickly.  Also, we recommend keeping your data in a database and not in your barcodes.  Rather, scan in an easier to read bar code with a unique serial number and look up the data in the database.

QR Code

QR (Quick Response) code is one of the more misunderstood barcodes.  It is a 2D barcode and can encode all character types in a very compact-sized barcode.  The secret to its quick reads is the three larger squares in the corners of the code, this also makes it very easy to identify this barcode symbology.  Originally invented by Denso, a division of Toyota in 1994, it has been around longer than most people are aware.  Other than the UPC code, this is probably the most seen and used barcode by the general public.  Its ability to be easily read by the camera on a smartphone led to its widespread use in advertising.  This is the code that we see misused the most.  Many times, the application is calling for a Data Matrix code and a QR code is being used instead.  QR and Data Matrix codes do have a limitation on the number of characters that can be encoded.  Generally, QR Codes are not as secure and redundant as Data Matrix.

Data Matrix

We saved the best for last!  Not the easiest code to read with a smartphone, but one of the most frequently used codes in manufacturing.  There is a reason that most direct part mark barcodes are Data Matrix, it has the most redundancy and is the most likely to be readable when the conditions are tough or when there are blemishes in the code.  Many standards such as military and pharmaceutical specify Data Matrix for its ability to encode large amounts of data into a small code and be easily ready with a bar code scanner.  Data Matrix is also good to use for its data integrity.  We have even used very large Data Matrix codes for long-range uses such as top racking in a warehouse.  If you can choose any barcode that you want and your scanners are capable of, choose Data Matrix.


Yes, we skipped a lot of barcodes.  MaxiCode, used by UPS is one that stands out, but it is only used in that one application by that one company, so we skipped it.  Also, PostNet, Code 93, Code 49, Code 16, which are used infrequently, in specialized applications, or not at all anymore.  We also skipped all the standards and data identifiers.  But we will gladly discuss all of this and more with you. Contact us today to see how we can help!

Download the Project Guide

Looking for assistance with Barcode Symbology Selection?

Contact Us

Download the Project Guide