QR code generator

Type anything below and the code updates as you go. Colors, module shape and a centre image are all optional.

This tool needs JavaScript. Everything it does runs in your browser — nothing you type is sent anywhere.

This runs entirely in your browser. What you type is never uploaded, logged or stored, which matters more here than on most tools - a QR code is a common way to share a WiFi password or a contact card.

Getting a code that actually scans

A QR code that looks right and fails in a camera is the normal failure, not an unusual one, so the tool warns about the two causes rather than leaving you to discover them.

Contrast. A scanner reduces the image to black and white before it reads anything, so what matters is how far apart your two colors are, not how they look. Below about 3:1 most readers give up. The tool measures the pair and says so.

Direction. A light code on a dark background is legal and plenty of readers still refuse it. If the code has to be pale, put it on something paler still rather than inverting it.

The centre image. Anything placed in the middle covers modules the scanner needs, so the tool raises the error correction to its highest level automatically whenever you add one. That is why the code gets denser the moment an image goes in.

The quiet zone. The blank margin around the code is part of the specification, not padding, and it is four modules wide here. Cropping it off is the single commonest way a printed code stops working.

What the levels mean

Error correction is how much of the code can be damaged or covered while still reading correctly. Higher levels store the same content in a larger, denser symbol.

Level Recoverable Use it when
L 7% The code will be on screen, or printed large and clean
M 15% The sensible default
Q 25% Printed small, or somewhere it will get handled
H 30% There is a logo in the middle, or it is going outdoors

Encoding a WiFi network

WiFi credentials are a plain string in a fixed format. Paste this in, substituting your own values, and a phone camera will offer to join the network:

WIFI:T:WPA;S:MyNetworkName;P:MyPassword;;

Use T:WEP for an old network, or T:nopass for an open one. If the name or password contains ; , : or \, put a backslash in front of it.