# QR codes on embroidery

> Embroidery is the worst common QR surface: stitch pitch is coarse, thread has sheen, and fabric distorts as it is stitched. A code below about 6 cm will not work, and even a large one needs error correction H and careful stabilising.

Source: https://useqr.app/qr-codes-on/embroidery · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

| Typical scan distance | **30–60 cm** |
|---|---|
| Minimum code width | **6–10 cm** |
| Error correction | **H** |

## Why it is so hard

1. **Stitch resolution.** A satin or fill stitch has an effective resolution of roughly
   1.5–2 mm. A 33-module code therefore needs 5–7 cm minimum just to render.
2. **Thread sheen.** Rayon and polyester thread reflect directionally, so a dark module can
   look bright from one angle.
3. **Fabric pull.** Dense stitching draws the fabric in, distorting the grid — worst in the
   middle, exactly where alignment patterns are trying to correct.

## Making it work

- **6 cm minimum**, 8–10 cm comfortable.
- **Matt threads** — cotton or matt polyester, never rayon.
- **Fill stitch** the dark modules; satin stitch rounds the corners.
- **Cut-away stabiliser**, and hoop properly. Tear-away is not enough for this density.
- **Digitise with pull compensation** so modules end up the size you specified.
- Prefer a **dark code on a light woven fabric**. Knit fabric distorts too much.

## Test before you run

Stitch one, photograph it under normal lighting from a normal distance, and decode it. Then
stitch it on the actual garment fabric and repeat — the substrate changes the result
completely.

Honestly: for most uses a printed patch or a woven label with a printed code is a better
answer than embroidering the pattern itself.

## Try it

- https://useqr.app/url
- https://useqr.app/size-calculator
- https://useqr.app/validate
