QR Meadow
English

Maximum QR code size: version 40, 2,953 bytes, and how big to print it

The largest QR code is version 40: 177 × 177 modules holding up to 2,953 bytes at error correction L. There is no largest printed size, but the version decides how large a code must be printed to scan.

The hard limits

QR Code runs from version 1 (21 × 21 modules) to version 40 (177 × 177), four modules more per side at each step (DENSO WAVE). DENSO WAVE’s outline of the specification gives the maximum for version 40 at the lowest error correction level, L:

Kind of dataMaximum in one code
Numbers only7,089 characters
Alphanumeric (A–Z, 0–9 and a few symbols)4,296 characters
8-bit bytes (binary)2,953 bytes
Kanji1,817 characters

QR Meadow writes every code in byte mode with UTF-8 text, so its ceiling is the 2,953-byte row. In UTF-8 a letter such as é takes 2 bytes and most Chinese or Japanese characters take 3, so a version 40 code holds at most 2,953 ÷ 3 = 984 of those.

Capacity by version and error correction

Higher error correction spends modules on repair data. Bytes per code, from the encoder’s tables:

VersionModulesLMQH
1211714117
537106846044
1057271213151119
2097858666482382
301371,7321,370982742
401772,9532,3311,6631,273

The generator counts bytes as you type and picks the version. Filled to the limit at level L, it reports version 40:

Text QR code at version 40, 177 × 177 modules, level L, 2,950 of 2,953 bytes, scan check passed
Version 40 at level L with 2,950 of 2,953 bytes. The scan check reads a clean full-size image; a printed code read by a phone is a harder test.

Bitly notes there is no upper limit on printed size. What grows with the version is the size a code needs. With the size guide’s rules, the larger of a tenth of the scanning distance (Bitly) and 1/250 of the distance per module (worked out from QRStuff’s 2011 table, which assumes a 3–4 megapixel camera, so a conservative figure), never under 2 cm:

Scanning distanceVersion 2 (25 modules)Version 10 (57)Version 40 (177)
30 cm3.0 cm6.8 cm21.2 cm
1 m10 cm22.8 cm70.8 cm
3 m30 cm68.4 cm2.12 m

Width without the quiet zone. Version 40 at 30 cm: 177 × 300 ÷ 250 = 212 mm.

A version 2 and a version 40 QR code drawn at the same width
At the same width, a version 40 module is about seven times narrower than a version 2 module (185 ÷ 33 modules across with margins).

What real phones read

With an iPhone and an Android phone, each with its built-in camera app, scanning a computer screen from about 20 cm, version 20 (97 modules) and version 40 (177 modules) codes were read by both phones at 50 mm and at 80 mm wide. At 50 mm a version 40 module is about 0.28 mm (50 ÷ 177).

Phone test: full-capacity codes, error correction M for version 20 and L for version 40. One session, one distance, codes shown on a screen rather than printed; details.

How large versions fared in a decoder test

Code2.5 px/module3.54.56.58.5Pixel-aligned, 1–3 px
Version 10, level M10 of 1010101010all decoded
Version 20, level M7910910all decoded
Version 40, level L349010all decoded

Test: full-capacity codes, averaged down to each resolution at 10 random sub-pixel offsets; “pixel-aligned” = every module exactly 1, 2 or 3 pixels. Decoder jsQR 1.4.0 on synthetic images, not phone photos; how the tests work.

Version 40 decoded in every pixel-aligned image, even at 1 pixel per module, but in resampled images it went from 9 of 10 at 4.5 pixels per module to 0 of 10 at 6.5 and back to 10 of 10 at 8.5. A pattern that does not improve steadily with resolution points to how this decoder handles very large grids rather than to a resolution floor, and the phones above read the same code without trouble. The margin still matters for readers built on simpler decoders, such as web-based scanners: versions up to 10 behaved the same at every scale tried, and version 40 did not.

What a separate camera-model test adds

Rebuilt large versions, padded near capacity; 36 synthetic inputs per sample and decoder
Rebuilt sampleApple VisionZXing-C++
D1: version 20, 50 mm29/3630/36
D2: version 20, 80 mm36/3635/36
D3: version 40, 50 mm8/3618/36
D4: version 40, 80 mm19/3627/36

The 50 mm version 40 sample (D3) gave different results in the two engines. More capable software does not make a dense code insensitive to blur, sampling and perspective. These counts combine all model distances and stress settings; they are not scan-distance limits or phone results.

Separate synthetic-image study, QM-LAB-20261028, not a phone or physical-print test. Distances are projections under assumed camera settings, not measured scan ranges. Method, limits and downloadable results.

When the content is too big

  • Link to it. Put the content on a web page and encode the address; a short link is version 2 or 3.
  • Trim it. Drop fields nobody needs, such as a vCard note or tracking parameters.
  • Lower error correction only for clean, flat, indoor use: at version 40, L holds 27 % more than M (2,953 against 2,331 bytes).
  • Split it. The specification allows up to 16 symbols to be read as one (“structured append”, DENSO WAVE). QR Meadow does not make them; check your readers support them.

Questions

How many characters can a QR code hold?

Up to 2,953 bytes of text at level L: 2,953 plain English characters, fewer accented letters (2 bytes each) and about 984 Chinese or Japanese characters (3 bytes each). Digits alone go up to 7,089.

Can I make a version 40 code here?

Yes. The text generator switches version automatically and shows the byte count; choose level L under Error correction for the most room.

Sources

  1. DENSO WAVE, “Information capacity and versions of QR Code”
  2. DENSO WAVE, “QR Code Standardization” (outline specification and capacities)
  3. Bitly, “What’s the Minimum Size for a QR Code?”
  4. QRStuff, “QR Code Minimum Size” (module size table)
  5. jsQR, the decoder used in the tests (GitHub)

Tools used in this guide

More guides