Skip to content
UseQR
ESC

Jump to

MOVEOPEN50 places

Reference tables

QR alignment pattern position table: versions 2 to 40

Alignment pattern centres sit at fixed coordinates per version, tabulated in Annex E of ISO/IEC 18004. The first centre is always at module 6, the last always seven modules from the far edge, and a version with n coordinate values carries n² − 3 patterns, from one at version 2 to 46 at version 40.

View as MarkdownPaste this page into any AI assistant. It is plain, portable Markdown.

How the coordinates work

Each version lists a set of row/column values. Alignment patterns (5 × 5 concentric squares) are placed at every (row, column) combination of those values, except the three combinations that would collide with the corner finder patterns. So n coordinate values give n² − 3 patterns. Version 1 has no alignment patterns at all.

Coordinates are the centre module, counted from 0 at the top-left. This table is verified against the pattern-geometry module in UseQR's own renderer, which carries the ISO/IEC 18004 Annex E values.

The table

Version Modules Centre coordinates Patterns
2 25 6, 18 1
3 29 6, 22 1
4 33 6, 26 1
5 37 6, 30 1
6 41 6, 34 1
7 45 6, 22, 38 6
8 49 6, 24, 42 6
9 53 6, 26, 46 6
10 57 6, 28, 50 6
11 61 6, 30, 54 6
12 65 6, 32, 58 6
13 69 6, 34, 62 6
14 73 6, 26, 46, 66 13
15 77 6, 26, 48, 70 13
16 81 6, 26, 50, 74 13
17 85 6, 30, 54, 78 13
18 89 6, 30, 56, 82 13
19 93 6, 30, 58, 86 13
20 97 6, 34, 62, 90 13
21 101 6, 28, 50, 72, 94 22
22 105 6, 26, 50, 74, 98 22
23 109 6, 30, 54, 78, 102 22
24 113 6, 28, 54, 80, 106 22
25 117 6, 32, 58, 84, 110 22
26 121 6, 30, 58, 86, 114 22
27 125 6, 34, 62, 90, 118 22
28 129 6, 26, 50, 74, 98, 122 33
29 133 6, 30, 54, 78, 102, 126 33
30 137 6, 26, 52, 78, 104, 130 33
31 141 6, 30, 56, 82, 108, 134 33
32 145 6, 34, 60, 86, 112, 138 33
33 149 6, 30, 58, 86, 114, 142 33
34 153 6, 34, 62, 90, 118, 146 33
35 157 6, 30, 54, 78, 102, 126, 150 46
36 161 6, 24, 50, 76, 102, 128, 154 46
37 165 6, 28, 54, 80, 106, 132, 158 46
38 169 6, 32, 58, 84, 110, 136, 162 46
39 173 6, 26, 54, 82, 110, 138, 166 46
40 177 6, 30, 58, 86, 114, 142, 170 46

The pattern behind the table

Three regularities hold for every version:

  • The first coordinate is always 6, centred in the timing-pattern row/column.
  • The last is always modules − 7, seven from the far edge.
  • Every gap is an even number, which keeps alignment pattern centres on the same black/white phase as the timing patterns.

The gaps after the first are always equal; the first gap absorbs the remainder, and not in a way any single obvious rounding rule reproduces. Compare version 32 (gaps 28, 26, 26, 26, 26, first gap larger) with version 36 (gaps 18, 26, 26, 26, 26, first gap smaller). Because no clean formula regenerates all forty rows, every serious implementation embeds the table verbatim, including the one this page was checked against.

Why the count jumps where it does

New coordinate values arrive at versions 7, 14, 21, 28 and 35 (every seventh version), so the pattern count steps 1 → 6 → 13 → 22 → 33 → 46. A version 6 code (41 modules) has a single central pattern; version 7 (45 modules) suddenly has six. This is why codes on curved surfaces get noticeably more reliable once the payload pushes the symbol past those thresholds: more anchors for the decoder to fit the grid to. Module counts per version are in the version and module table.

FAQ

How many alignment patterns does a QR code have?

None at version 1, one at versions 2–6, then 6, 13, 22, 33 and finally 46 at versions 35–40. The count is n² − 3 where n is the number of coordinate values for that version.

Where is the alignment pattern in a small QR code?

Versions 2–6 have exactly one, centred at (18, 18) to (34, 34) depending on version, always at coordinate modules − 7 in both axes, tucked toward the bottom-right.

Is there a formula for alignment pattern positions?

Almost. First coordinate 6, last modules − 7, equal even gaps between the rest, but the first gap absorbs rounding slack inconsistently across versions, so implementations embed the ISO/IEC 18004 Annex E table instead of computing it.

Why do alignment patterns skip the three corners?

The corners are occupied by the 7 × 7 finder patterns and their separators. The coordinate grid would place patterns there, so those three combinations are explicitly excluded.

Try it: free, no signup