So how many changed “bits” (or squares) did it take until the QR code wouldn't scan any more?
I saw a lot of '6's in the chat and a couple of different numbers too.
For the first few changes, your scanners were able to perform error correction, which means they could work out the correct original message even though there were errors in the bits.
By changing one bit at a time, we have demonstrated the exact point when error correction became error detection only.
The QR code reader detected that there was an error in the information it was trying to scan, the QR code, and, rather than giving the wrong information, it gave no information at all.
At that point it couldn't work out the correct original information.
QR codes have a lot more extra bits added to them than the parity system you may have seen before (which can be presented as a magic trick).
The parity method can correct a one-bit error, but if there is more than one bit changed, it can only detect that there is an error, not where it is.
In either case, this ensures the system is very reliable at giving either the intended information, or no information at all (not scan).
A damaged QR code is unlikely to accidentally give you the wrong information, as the likelihood of the damaged bits changing the original QR code to match another QR code exactly is extremely low.
Of course, someone could purposefully change the whole QR code if they wanted.
The error control system used by QR codes is called Reed-Solomon error correction.
Reed-Solomon error correction is also used for other situations where data needs to be stored reliably, such as disk storage.
Often QR codes that look quite damaged will still work because of the error correction that is built into them.
Did you notice that some cell phone or tablet cameras read QR codes automatically?
We have noticed that some of these cameras will read a QR code a certain number of times but will then stop reading it.
This may not be because the QR code is corrupt, but because the camera has stopped looking specifically for a QR code.