Recover the signal

A damaged QR code is still data.

Reconstruct curved, faded and incomplete codes entirely on your device.

Open Signal Studio

Signal Studio

Reconstruction workspace

Drop a photograph here or click to choose one

Several photographs of the same code are read together — take them from different angles and what one loses, the others still hold.
Nothing is uploaded, nothing leaves this device.

01–03

From damaged image to verified payload

  1. Find the grid
  2. Measure uncertainty
  3. Verify the reconstruction
Method

Field notes

Built for difficult surfaces

Common situations

My QR code won't scan — can anything still read it?

Often, yes. A reader app needs the whole code to be clean; qrsalvage instead treats the parts every QR code must contain as a calibration target, measures how damaged the rest is, and uses the code's own error correction to reconstruct what is missing. It can recover some codes that ordinary scanner apps reject — and tells you honestly when too much is physically gone.

Does it matter what the QR code belongs to or what it contains?

No. Recovery works from the QR structure, not from an assumed product or use case. The code may be on packaging, a ticket, a document, a sign, an inventory tag or a device. Its payload may be a web address, contact card, email, phone number, location, Wi-Fi login, pairing code or plain text. Recognised formats are labelled after recovery; unknown content stays plain text rather than being guessed.

The QR code is on a curved bottle, tube, tool or device

A code wrapped around a curved object defeats normal readers because straight grid lines become curves; qrsalvage fits a bowed grid to the surface before reading a single cell. Take several photographs from slightly different angles — what the curvature hides in one, another still shows, and they are read together.

Zigbee install code or Matter pairing code unreadable

For this specific kind of engraved or printed device label, recovery does more than return a string: it recognises a Zigbee install code, a Matter onboarding code, Wi-Fi credentials — and shows the fields you actually need to type into your hub, including the 11-digit Matter manual pairing code. A pairing code is a secret: it never leaves your device here, and be careful where else you paste it.

The code is engraved in metal or plastic, scratched or faded — barely any contrast

Laser engraving and wear defeat readers because dark and light modules become nearly the same shade. qrsalvage estimates the two brightness levels from the parts of the code whose values are fixed by the standard, then scores every other cell against them — so even a few percent of contrast, spread unevenly across the label, can be enough. The method page shows this step by step, with real figures.

A tiny label on a product, component or device that no app will scan

Those labels are tiny, and the physics is unforgiving: once a module of the code is smaller than about five pixels in your photograph, or the photo is so blurry that neighbouring modules smear into each other, recovery becomes unlikely. In the synthetic resolution benchmark the rate collapses between five and four pixels per module; that is practical guidance, not a universal cutoff. The fix is in the photograph, not the app — get as close as your camera focuses, fill the frame with the label, and take several shots from slightly different angles. This tool fuses them, and the measured gain from fusion is larger than from any other step.

The label is torn, or the print has partly worn away

Missing is better than wrong. A QR code carries error correction that repairs twice as many known-missing cells as misread ones, so qrsalvage marks what it cannot trust as unknown instead of guessing — worn print becomes exactly the kind of damage the code was designed to survive. A torn edge that bends the paper is handled too: the grid is re-fitted before cells near the tear are read.

Can I read a QR code from a photo without uploading it anywhere?

Here, yes — and verifiably so. The entire recovery runs inside your browser; there is no server that could receive your photograph, and the page's own security policy forbids it from talking to one. That matters for private documents, tickets, contact details, network credentials and pairing secrets. The first visit downloads the recovery engine (about 29 MB, then cached), which is the honest price of nothing leaving your device.

What if the code really is beyond saving?

Then qrsalvage says so, and says why: it distinguishes a code it cannot find from one whose data area is physically destroyed beyond what error correction can carry. If several photographs agree the grid is clean but too many modules are simply gone, no tool can recover it — and knowing that is worth more than a spinner that never ends.

Local by design

Private by construction, open by default

Every QR code can carry something different. Recovery runs entirely on this device; photographs and recovered text are never uploaded, and the same-origin security policy prevents the application from sending them elsewhere.