Developer QR codes

QR code generator

Web address
Version 2 · 33×33 · 20/26 bytes
Error correction
Higher levels survive more damage and make the code denser. M is the usual choice; use H only if the code will be printed small or partly covered.
Local · the data is in the code, not on a server
https://tooltiki.com
Advertisement
320 × 100

A QR code stores data directly in its pattern of black and white squares. There is no lookup and no server involved. The codes made here contain exactly what you type, so they work forever, cannot be redirected later, and record nothing when scanned. Error correction lets a code still read with up to 30% of it damaged.

How to make a QR code

1 Pick what the code should carry: a link, some text, Wi-Fi details, a phone number or a contact card.
2 Fill in the fields. The code redraws as you type.
3 Download it as PNG for screens or SVG for print, where it stays sharp at any size.

Free QR services usually give you a short redirect link rather than your own data, which lets them count scans — and lets the code stop working when they change their pricing. A code with the destination inside it is larger and denser, and that is the trade: a longer link makes a busier code. Shorten the URL before generating if density matters, and check that the shortener is one you trust to still exist in five years.

What L, M, Q and H are

Every QR code carries a copy of its own data in a form that survives damage. That is the error-correction level, and the four settings say how much of the code can be unreadable before a scanner gives up: L about 7 per cent, M 15, Q 25, H 30. The redundancy is not free: it is stored in the code itself, so raising the level at a fixed data length adds modules, and the pattern gets denser. Going from L to H on the same URL can push a code up several versions, which means smaller squares at the same printed size, which is its own kind of unreadable.

Which one to pick

M is the sensible default and what most generators use: it survives a scuff or a thumbprint and stays reasonably open. Use L when the code is on a screen or a clean flat print that nothing will touch, and you want the loosest possible pattern. A long URL at L is much easier to scan than the same URL at H. Use Q or H when the code will live in the physical world and take damage: a label that creases, a sticker on a curved bottle, a menu that gets wiped down, signage that will fade. H is also the level to use when you are putting a logo in the middle, because that logo is damage. You are deliberately covering modules, and only the redundancy makes it still readable. Keep the covered area under roughly the level you chose and test the finished code with a real phone before printing a thousand of them.

Questions

No. The data is in the pattern, so there is nothing to expire and nobody to keep paying.

ISO/IEC 18004, QR Code bar code symbology specification
Advertisement
300 × 250
Was this tool any good?
Internal signal only · I use it to find the tools worth rebuilding