We’ve covered almost everything we need to create QR Codes. The next thing we need is version information blocks. The version information blocks simply tell the reader what version the symbol is, and therefore how many modules wide and tall it is.
Table 11 shows the top-right version of each version information block. Review Part 2 to see the positioning; in particular, remember to mirror these along the NW-SE axis to place them in the lower-left position.
Table 11 – Version information blocks
Another thing I want to include for convenience is the list of how many code words each version can hold. This can be inferred from previous information, but I’ll save you the trouble by putting it here. Table 12 indicates the total (data + error correction) code words for each symbol version. The number is the same for each error correction mode, the only difference is how many of them are for data and how many are error correction. Table 3 in Part 3 tells how many bits of data can be in each version/error correction pair, simply divide that by 8 to get the number of code words.
Table 12 – Total code words per version
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
26 | 44 | 70 | 100 | 134 | 172 | 196 | 242 | 292 | 346 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
404 | 466 | 532 | 581 | 655 | 733 | 815 | 901 | 991 | 1085 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
1156 | 1258 | 1364 | 1474 | 1588 | 1706 | 1828 | 1921 | 2051 | 2185 |
31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
2323 | 2465 | 2611 | 2761 | 2876 | 3034 | 3196 | 3362 | 3532 | 3706 |
The only thing left is the format information. Again, Part 2 explains where it goes, now we just need to know what to put there. The format information tells the reader two things – the error correction level, and the mask used. The format information is 15 bits in length. The first two bits represent the error correction level. L=01, M=00, Q=11, and H=10. The next 3 bits are the type of mask we used, as listed in Table 10 of Part 5. Finally, the last 10 bits contain a form of error correction. After that, a bit mask is applied to prevent it from being all zeroes. Table 13 shows the values for each combination of Error Correction and Mask. Now we place that according to the instructions in Part 2, and we have a complete QR code!
Table 13 – Format Information
ECC / Mask | Format Information |
00 000 | 101010000010010 |
00 001 | 101000100100101 |
00 010 | 101111001111100 |
00 011 | 101101101001011 |
00 100 | 100010111111001 |
00 101 | 100000011001110 |
00 110 | 100111110010111 |
00 111 | 100101010100000 |
01 000 | 111011111000100 |
01 001 | 111001011110011 |
01 010 | 111110110101010 |
01 011 | 111100010011101 |
01 100 | 110011000101111 |
01 101 | 110001100011000 |
01 110 | 110110001000001 |
01 111 | 110100101110110 |
10 000 | 001011010001001 |
10 001 | 001001110111110 |
10 010 | 001110011100111 |
10 011 | 001100111010000 |
10 100 | 000011101100010 |
10 101 | 000001001010101 |
10 110 | 000110100001100 |
10 111 | 000100000111011 |
11 000 | 011010101011111 |
11 001 | 011000001101000 |
11 010 | 011111100110001 |
11 011 | 011101000000110 |
11 100 | 010010010110100 |
11 101 | 010000110000011 |
11 110 | 010111011011010 |
11 111 | 010101111101101 |
Now here’s a sample of our QR Code generator. Soon we’re going to add a bunch of additional features, so you can customize your codes and use them for all kinds of marketing and entertainment purposes.