← Blog  ·  Essentials  ·  4 min read

How QR Codes Work — and Why Damaged Ones Still Scan

A QR code looks like noise, but every region of it has a job — and understanding three of those jobs explains almost everything odd about QR behaviour, from why codes survive logos to why cropping the margin kills them.

Advertisement

The three big squares find the code

The corner squares are finder patterns. A phone camera does not know where the code is in the frame, how large it is, or which way up — the three identical squares answer all of that in one pass, which is why a code scans upside down or at an angle. It is also why decorating those squares beyond recognition is the fastest way to break an otherwise healthy code.

Finder patternsthree corners tell the reader wherethe code is and which way is upTiming linealternating modules set the grid spacingData + error correctionyour content, interleaved withReed–Solomon recovery codewords —the reason a damaged code still reads
The three big squares are not decoration — they are how a phone finds the code at any angle. Everything else is data woven with recovery information.

Versions: why more data means a finer grid

QR codes come in versions from 21×21 modules up to 177×177. The encoder picks the smallest version that fits your content at your chosen error-correction level — so a short link produces a coarse, easy grid and a long vCard produces a fine one. At the same print size, a finer grid means smaller modules, which is why long content needs to be printed larger to stay readable.

Reed–Solomon: the damage budget

Your data is interleaved with recovery codewords using the same error-correction mathematics as CDs and deep-space links. The four levels — L, M, Q, H — let a reader reconstruct roughly 7%, 15%, 25% or 30% of the symbol from the rest.

That percentage is a budget, and everything spends from it: a logo punched in the middle, a scuff, a fold, glare, a slightly misprinted edge. A logo on level H is comfortable; the same logo on level L may leave nothing in reserve for real-world wear. This is the setting behind the generator’s ECC control, and the reason the troubleshooting guide tells you to raise correction before shrinking a logo.

What this means in practice

Keep the finder squares plain, keep the margin, and treat error correction as insurance you size to the abuse the print will take. A code on a laminated menu lives an easy life at level M; a code on shipping packaging earns level H. None of this depends on any service being online — the entire mechanism, from finder patterns to recovery, happens between the ink and the phone.

Static code — nothing expires, no account, no sign-up.

Make a QR code →
Advertisement