Why won't my 3D printed QR code scan? 9 causes and fixes
A QR code that looks perfect on screen can fail once printed. These are the real causes, most common first, and how to fix each one.
A phone camera reads a QR code by finding the three large corner squares and measuring the light difference between dark and light modules. Anything that reduces that contrast or distorts the modules makes it fail. Before reprinting, go through this list.
1. Low contrast between colors
The number-one cause. Gray on white, red on orange or silver on black look different to you, but the camera sees them as nearly the same. Fix: light base, dark relief. QRelieve computes contrast (WCAG-style) and warns below 3:1; aim for 7:1 or more.
2. Modules too small
With a 0.4 mm nozzle, a module under 1.5 mm prints with rounded corners and merges with its neighbors. Fix: increase the code size or shorten the link. A short link produces a 25-module code; a long one 40+ modules and needs nearly twice the size.
3. Missing quiet zone
The code needs a margin in the base color of at least 2 modules. If you trim the piece or push the code to the edge, it stops reading. QRelieve objects already include that margin; don't remove it when scaling.
4. Light code on a dark background
Many readers accept inverted QR codes, but some older phones and apps don't. If you used a black base with a white relief and it fails, swap the colors.
5. Gloss and reflections
Silk or glossy filaments reflect light and create white spots on dark modules. Fix: matte filament for the relief, or scan with the piece slightly tilted away from the light.
6. Relief too tall
Above 2 mm, side light casts shadows that darken the light modules. 1–1.2 mm is the sweet spot.
7. Squished first layers or elephant's foot
A squished base doesn't matter, but if the relief spreads out in its first layers, the light gaps between modules shrink. Check flow and calibration, and use 0.16–0.2 mm layers.
8. Logo or emoji too large
The center can be covered thanks to error correction (level H, up to 30%), but combined with small modules or borderline contrast, the problems stack up. Try without the logo to rule it out.
9. Wrong link
Sometimes the code reads but opens nothing: missing https://, a stray space or an expired link. Scan the PNG on screen before printing to confirm the destination.
Quick pre-print checklist
| Check | Good value |
|---|---|
| Contrast | ≥ 7:1 (minimum 3:1) |
| Module size | ≥ 1.5 mm |
| Quiet zone | ≥ 2 modules |
| Relief height | 1–1.2 mm |
| Filament | Matte, light base + dark relief |
Check my QR code in the tool →