How To Develop Apps for QR Codes: What you need to know

qr-scan-girlSo you want to develop an application using QR Code with a mobile phone:  What you should know to create a user-friendly experience: 

Without question, we are in the midst of a technological and social revolution, brought upon by the smartphone.  And possibly the singular technology, beyond the smartphone, that has accelerated this revolution has been the QR Code.  For when integrated with one and the other we enable a whole host of applications, previously not considered.  Masahiro Hara of DENSO WAVE led a development team in the early 1990’s to create a symbol that could encode Japanese Kanji and Kana, as well as being capable of containing more than the 20-character maximum of a traditional bar code.  In 1994 DENSO WAVE announced the release of QR Code and Hara began contacting various Japanese companies, seeking implementation of the new symbol.  As a result of his efforts QR Code was adopted in the Japanese auto industry for use in their electronic Kanban systems.

The first camera phone was sold in Japan in 2000, so it is not surprising that these new technologies began to merge in 2002 (   Soon QR Codes were appearing on products, brochures, posters, billboards, and the sides of buildings.  Previous attempts to read bar codes were made by devices usually within 10 to 20 centimeters from the symbol.  What could be expected from reading a symbol 1 to 10 meters aware?  What about a distance of 100 meters?  What size would be required for each of the QR Code elements to be able to be successfully read at that distance?

Displaying a symbol that is intended to be read

In addition to symbols being read at a distance with a camera, another set of applications evolved where a symbol was being displayed by the mobile phone and read by an external readers.  QR Code was used for airline boarding passes and visas in Japan.  Aztec Code was used within the United States for such applications and the IATA Passenger Services Conference passed Resolution 792 (2012) permitting the use of QR Code, Aztec Code, PDF 417, and Data Matrix for boarding passes.  However, the displays of various mobile phones differed both in size and resolution (number of pixels per inch).  Further, the background for these displays differed from a bright white to a dimly illuminated grey.  The reading equipment might not have been maintained as well as it should (think of milk being spilled in the scanner glass in the supermarket).  How would these variables come into play so that reading a symbol from a cell phone would be as reliable (or more so) than reading a product code in a grocery store?

In May 2010, DENSO WAVE, the creators of QR Code and who subsequently made its patents publicly available when the ISO standards were followed, filed a New Work Item Proposal within ISO entitled, ISO/IEC 16480, Information technology — Automatic identification and data capture techniques — Reading and display of ORM by mobile devices.  This work item has now been vetted by the working group and was released for ISO member national vote on 2013-12-04.  This timing indicates that the standard will be published in 2014.

If a symbol is rendered on an electronic display, the image is generally constructed with pixels that emit light and pixels that block light.  Unlike printed symbols they do not have a diffuse reflective surface (where a an incident ray is reflected at many angles) rather more the case of specular reflection (where the incident ray is reflected at a single angle, like a mirror).  Not having diffuse reflection means that the display will not normally be able to be read by a flying spot laser.  Most mobile devices have a flat polished screen surface, such as glass, that is highly reflective.  Consequently it may not be appropriate for a scanner to illuminate the surface.  The only device recommended to read images rendered on mobile device would be an imager containing a linear, area, or array sensors.  

The backlighting of the display is measured as “luminance” by an optometer set to the units “candelas per metre squared (cd/m2)”.  Background illumination should be 90 cd/m2 for dependable performance.  Displays with less than 40 cd/m2 may not be readable.  A black module should be rendered with the same number of pixels as a white module.  The appropriate “X dimension” for a symbol rendered on a display should be between 15 mils (0.38 mm) and 25 mils (0.63 mm).

ISO/IEC 16480 provides quality measurement and reporting employing the same standards used for linear bar code symbols (ISO/IEC 15416) as well as two-dimensional symbols (ISO/IEC 15415).  The major difference is that the verification process does not illuminate the display; rather the light coming from the display is used to make the image.

Reading a symbol with your mobile phone’s camera

While the use of displayed symbols for scanning purposes, as used with electronic boarding passes and paying for coffee with a loyalty card, have begun to achieve some traction, the broadest marketing application for QR Codes and others is scanning a QR Code from printed material, a poster, or a billboard.

The following narrow element width (“X” dimension) are recommended for the various applications:

  • Printed material (newspaper or magazine): 0.5 mm up to 1.25 mm (0.02 inches to 0.05 inches)

  • Posters: >1.25 mm up to 12.5 mm (0.05 inches to 0.5 inches)

  • Billboards:  >12.5 mm (>0.5 inches)

With regards to the smaller symbols (printed material), mobile device cameras and optics continue to improve. Some devices will be or already are capable of reading X-dimensions smaller than 20 mils.  The recommendation for a minimum 0.5 mm “X” dimension is made based on consumer grade mobile device testing at the time of development of ISO/IEC 16480.  Future standards may include applications with smaller X-dimensions.

With regards to symbols at the larger end, no definitive recommendation can be made due to the variations in distance from the mobile device’s camera to the symbol, however, if you know the distance from which the symbol will be read, one can calculate the minimum X-dimension for the symbol through the formula (Xmm = Distm * 4) or the minimum “X” dimension, in millimeters, should be the distance, in meters, between the intended reader and the symbol.  By way of example, if the distance between the intended reader and symbol were 50 meters the X-dimension should be 200 mm (or slightly less than 8 inches) and at 25 meters the X-dimension should be 100 mm (or slightly less than 4 inches).  A poster intended to be read at a distance of 10 meters should have an X-dimension of 40 mm (approximately 1.6 inches).  It is always good to use an X-dimension a bit larger than the minimum.

Additionally, the angle of the symbol at a point relative to the mobile device should be no greater than 20 degrees to increase the likelihood of reading the symbol.

The print quality of the symbols for printed material, posters, and billboards are measured the same as for other printed 2D symbols, namely compliant with ISO/IEC 15415.

Putting a graphic (e.g. a logo) inside a symbol may reduce the ability to read the symbol. Symbols with graphics shall pass the print quality parameter for “unused error correction”. Some symbologies support the ability to increase the amount of encoded error correction to accommodate this parameter. Designers of symbols with graphics (creative destruction) should encode the symbol with a high enough error correction level to pass the print quality specification. Data Matrix has a fixed level of error correction (ECC 200), however, QR Code, on the other hand, has four levels of error correction (L, M, Q, and H, in increasing order of error correction capacity).  Creative designers should start with QR Code error correction level M, and seriously consider level Q.  Any graphics or logos inside the symbol cannot interfere with the fixed patterns of the symbol.

Questions are invited.

Other articles that may interest you:

Bar Code Quiet Zones Explained

QR Code and 2D Bar Code resources

Resources for 1D Bar Codes

When to Verify Bar Codes

The Most Common Cause of Bar Code Failure

Standards mentioned in this article:

For ISO/IEC DIS 18004 (98 CHF) QR Code bar code symbology specification

For ISO/IEC DIS 16480, Reading and display of ORM by mobile devices


For ISO/IEC 15415 (146 CHF) Bar code symbol print quality test specification -- Two-dimensional symbols


For ISO/IEC 15416 (134 CHF) Bar code print quality test specification -- Linear symbols

For ISO/IEC 16022 (224 CHF) Data Matrix bar code symbology specification


For IATA Resolution 792 (Version 4) and Implementation Guide

For IATA Resolution 792 (Version 5) (449 USD)

For ISO/IEC 24788 (146 CHF) Aztec Code bar code symbology specification

For ISO/IEC DIS 15438 PDF417 bar code symbology specification

Written by

Craig K. Harmon - (deceased - 2014) was the President and CEO of Q.E.D. Systems. With over 30 years of proven experience in the information systems industry he was one of the leading experts on data collection and communications standardization in the world. Craig had authored four books on data collection technology, including Reading Between The Lines and Lines of Communications. He provided the content for the web sites “” and “”.    He authored a number of original articles for The Bar Code News and we will dearly miss his sharp eye for detail. 

Also by this author - The Internet of Things (IoT) - The Fundamentals - What you need to know

Other Articles You May Enjoy:

How To Develop Apps for QR Codes: What you need to know
Barcode 101: Where Did Barcode Technology Come From?
How Barcode Scanners Increase Efficiency
6 Tips to Consider When Choosing Your Barcode Printer
How to Create a Barcode for a Particular Number
The Barcode Industry—Gone but Not Forgotten
1D Barcodes and 2D Symbols: How are they the same—and different?
The Internet of Things Pt 2 - Unique ID
How to Select A Service Contract For Barcode Equipment

Follow us on Facebook -