What matters most
- L, M, Q and H provide increasing error-correction capacity.
- Typical approximate recovery figures are around 7%, 15%, 25% and 30% of codewords respectively, but they are not a promise that the same percentage of visible area can be destroyed.
- Higher correction can increase matrix density for the same payload.
- For physical prints, choose correction level together with module size and final object size.
What error correction actually does
QR Codes use Reed–Solomon error correction. Extra codewords are added so a decoder can reconstruct data when some symbols are unreadable or damaged. The familiar levels are L, M, Q and H, from lower to higher redundancy.
The often-quoted recovery percentages are useful approximations, but they should not be interpreted as “you can cover exactly 30% of the QR and it will always scan.” Damage location matters because finder patterns, timing patterns, format information and other structural regions are not interchangeable with ordinary data modules.
The four QR error-correction levels
The exact matrix version depends on payload length, character mode and encoding as well as error correction. Always inspect the generated matrix instead of assuming that a particular level will fit your target object.
| Level | Approx. codeword recovery | Physical-print trade-off |
|---|---|---|
| L | ~7% | Lower redundancy; can keep matrix smaller |
| M | ~15% | Balanced general-purpose starting point |
| Q | ~25% | More redundancy; may increase density |
| H | ~30% | Highest standard redundancy; can require more modules |
Why higher correction can hurt a tiny 3D print
Suppose a payload fits in a lower QR version at M but needs a larger matrix at H. If you keep the physical width unchanged, every module becomes smaller. The higher redundancy can protect against damage, yet the smaller physical features may print less cleanly.
That is the central physical trade-off: redundancy protects the encoded information, while module size protects the geometry that the camera must recognize. A robust design needs both.
When higher error correction can be useful
For a clean indoor sign, M can be a reasonable starting point. For a rough environment, Q or H may be worthwhile if you also enlarge the physical QR to preserve module width. These are design choices, not absolute rules.
- Objects exposed to scratches, dirt or wear.
- Labels where part of the code may be temporarily obstructed.
- Decorative physical objects where minor surface defects are expected.
- Applications where you can increase the QR size enough to keep modules comfortably printable.
A better way to choose the level
- Generate the exact final payload at a moderate correction level.
- Record matrix size and physical module width.
- Try a higher correction level and see whether the matrix version grows.
- If it grows, increase the physical size to restore the module target.
- Print and test the object under the expected wear and lighting conditions.
A reproducible check before you print
Keep the QR payload fixed and change one variable at a time. Watch physical module size and ScanSafe warnings, export the same model to your slicer and inspect the layer preview. The final check is still to scan the finished physical object with a real camera.
Read the editorial and technical methodologyPrimary sources and technical documentation
These references support QR requirements, file formats or general printing constraints. ModuQR-specific FDM targets are labeled as heuristics rather than requirements from these sources.
- ISO/IEC 18004:2024 — QR Code symbology specification — ISO
- Error correction feature — DENSO WAVE / QRcode.com
- Information capacity and versions of QR Code — DENSO WAVE / QRcode.com
Compare error correction against physical module size
Change the QR error-correction level in ModuQR and watch matrix density and physical module size before choosing the final model dimensions.