Micro QR Code

A Micro QR code is a smaller version of the QR code with a single finder pattern instead of three. It comes in four sizes, M1 to M4, from an 11 x 11 to a 17 x 17 grid of modules. It suits spaces too small for a regular QR code, but it holds far less data and many phone cameras cannot read it.
Micro QR Code Sizes: M1 to M4
A Micro QR symbol is always smaller than the smallest regular QR code. Denso Wave, the company that invented the QR code, states that the capacity of the largest Micro QR symbol is below that of Version 1. The format was approved as JIS X 0510 in November 2004 and is also defined in ISO/IEC 18004.
| Symbol | Grid (modules) | Total modules | Width with 2-module quiet zone at 0.5 mm per module |
|---|---|---|---|
| M1 | 11 x 11 | 121 | 7.5 mm |
| M2 | 13 x 13 | 169 | 8.5 mm |
| M3 | 15 x 15 | 225 | 9.5 mm |
| M4 | 17 x 17 | 289 | 10.5 mm |
| QR Version 1 | 21 x 21 | 441 | 14.5 mm (4-module quiet zone) |
M1 uses 27% of the modules of Version 1. M4 uses 66%. Module size is a design choice, so the printed width scales with it.
Micro QR Code Capacity
Micro QR capacity runs from 5 digits to 35 digits. Each symbol holds a different mix of data types and error correction levels. The figures below were reproduced with Segno 1.6.6 and match the published tables.
| Symbol | Error correction | Numeric | Alphanumeric | Byte |
|---|---|---|---|---|
| M1 | Detection only | 5 | no | no |
| M2 | L | 10 | 6 | no |
| M2 | M | 8 | 5 | no |
| M3 | L | 23 | 14 | 9 |
| M3 | M | 18 | 11 | 7 |
| M4 | L | 35 | 21 | 15 |
| M4 | M | 30 | 18 | 13 |
| M4 | Q | 21 | 13 | 9 |
Byte mode, which URLs need, only exists from M3 upward. The largest byte capacity is 15 characters, at M4 and level L. Kanji mode holds up to 9 characters at M4 and is left out of the table.
How Micro QR Differs From a Regular QR Code
Four changes make the symbol smaller:
- One finder pattern. Denso Wave says a Micro QR code has “only one position detection pattern”. A regular code has three. See QR code versions for how the regular grid scales.
- A 2-module quiet zone. Denso Wave specifies “a two-module wide margin”, against at least four modules for a regular code.
- Fewer error correction levels. M1 detects errors but cannot correct them. M2 and M3 offer levels L and M. M4 adds Q. Level H does not exist, so a Micro QR code cannot survive a large logo or heavy damage.
- Small capacity. The limits suit short strings such as part numbers and serial codes, not links.
Will a Phone Scan a Micro QR Code?
Often not. Scandit, a barcode scanning vendor, states that the QR readers built into camera apps such as the iPhone camera do not support Micro QR codes. Android behaviour was not found in any official documentation, so test on the phones your audience uses.
A reader test shows how much support differs between software. Four Micro QR symbols (one each of M1 and M2, two of M3) were rendered cleanly at 8 pixels per module and decoded with two open-source readers.
| Reader | Micro QR symbols decoded | Regular QR Version 1 decoded |
|---|---|---|
| zxing-cpp 3.1.1 | 4 of 4 | yes |
| OpenCV 5.0.0 QRCodeDetector | 0 of 4 | yes |
The OpenCV result applies to its QR detector only. This was a clean digital test, not a camera test. Micro QR is a poor choice for any code the public must scan.
Can a Micro QR Code Hold a URL?
No realistic web link fits. Four short test strings were encoded at level L, none of which fit in any Micro QR symbol.
| String | Characters | Micro QR | Regular QR |
|---|---|---|---|
linkutm.com/a1b2 |
16 | does not fit | Version 1 |
HTTPS://LINKUTM.COM/A1 |
22 | does not fit | Version 1 |
https://lnk.to/ab12 |
19 | does not fit | Version 2 |
https://linkutm.com/a1b2 |
24 | does not fit | Version 2 |
A link needs a scheme, a domain and a path, which exceeds the 15-byte limit. Because no tagged URL fits, a Micro QR code cannot carry UTM parameters or use a tracking redirect. A campaign that must be measured needs a regular code on a short link.
How to Make a Micro QR Code
Most online QR generators produce only regular codes. Micro QR output is available in some barcode libraries and industrial label software. In Python, the Segno library creates one with a single flag:
import segno
qr = segno.make("0123456789", micro=True, error="L")
print(qr.designator) # M2-L
qr.save("micro.png", scale=10, border=2)
Segno picks the smallest symbol that fits the data. Keep the border at 2 modules or more. On a black background, a code with no margin failed to decode, while margins of 1, 2 and 4 modules passed in zxing-cpp.
Frequently Asked Questions
What is a Micro QR code?
A Micro QR code is a compact QR format with one finder pattern and four sizes, M1 to M4. The grids range from 11 x 11 to 17 x 17 modules. It holds at most 35 digits or 15 bytes.
What is the difference between a QR code and a Micro QR code?
A Micro QR code is smaller and holds less. It has one finder pattern instead of three, a 2-module quiet zone instead of 4, and no level H error correction. Regular QR codes hold up to 2,953 bytes. Phone cameras are built around regular codes, and some do not read Micro QR.
How do I make a small QR code?
Shorten the data, not the format. A short link encodes as Version 1 or 2 and scans on every phone. Micro QR makes the grid smaller but cannot hold a link and some phone cameras cannot read it.
Can I use a Micro QR code generator for a marketing campaign?
Not for a public campaign. A Micro QR code cannot hold a URL, so it cannot open a page or carry tracking. It fits internal use, such as part labels read by dedicated scanners.
To print compact codes that every phone can scan, generate a short-link QR code with linkutm.