How will the error correction from H=>M effect damage from being folded or perhaps water damage (ink jet)?
All right, so I did some tests for how well the error correction works. I printed out two notes using my code ("M" level error correction) onto 20# (standard) printer paper with an HP inkjet printer on "normal" quality setting). I used an iPod Touch rear camera to attempt to scan the QR codes under indoor lighting. I use an iPod touch for all the QR testing I do at work, since that rear camera is a fixed-focus 0.7 megapixel camera, which is probably the worst camera on a mobile device you'd attempt to scan a QR code with. It's bad not only because it's low megapixels, but also because the fixed focus of the lens is designed for taking pictures of other people, 3-6 feet away from you, not for macro scans of something right up close. So all macro shots are blurry on this camera, in addition to being low-res, so is a good worst-case camera.
I used the "QRreader" app, which has the feature that it can capture a photo the moment it recognizes a QR code in the live feed off the camera data. I targeted the private key QR code because (a) that's the more important of the two, and (b) it's the more dense QR code, so potentially harder to scan.
So here's what I got. I started very far away from the bitnote and slowly brought the camera closer to the note, and this was the first point that the QR code was recognized. Which is still pretty far away, but reads just fine. Also, at this far out, the rest of the note is visible to the camera/scanner, so this shot shows that the two-cell-width border around it is sufficient, as the scanner wasn't getting confused by the other artwork nearby.
I also tried starting almost flat with the paper (really foreshortened), and slowly coming up to a line of sight perpendicular to it. This was the first point that it was recognized, so this is about the limit of skew possible and still be recognized.
To address the fold question, I folded the bill neatly in half (what someone might do if it's too tall for their wallet). I slowly unfolded the bill, and this was the first point it was recognized. With where the QR codes are on the note, folding it in half tilts just the calibration blocks different from the rest of the glyph, so it does need to be pretty flat before it's recognized.
Taking folding to the extreme, I crumpled the note into a ball and then tried to unfold it and get it to scan. If the light is perpendicular to the node, there's no shadows from the folds, and it scans just fine. Here I'm holding the note at a little bit of an angle to the light so you can see the creases, and it still scans.
I then took the other (uncrumpled) note and started playing with water. Here I just dripped water onto it such that it discolored the white paper, but didn't really move the ink around. It scanned just fine. Then I started taking my wet finger and dabbing at the paper to coax the ink to bleed:
These two progressions still scanned just fine, even with large portions of the middle blacked out.
This one finally didn't scan (I took this picture with the phone's normal camera. Note this is a full 0.7 Megapixel image; the other snapshots that the QRreader app saves are slightly smaller images it grabs off the live sensor data). I had soaked the paper so thoroughly it had started to peel back layers of the paper in the middle of the glyph as I rubbed. You can also see the water stain itself has spread quite far as well, which may have contributed to it being unreadable.
Here's a shot of the back showing how much water has to bleed through before it's unreadable.
So even with a bad camera, bad paper, and bad ink, a moderate error correction level still stands up to a good deal of abuse before succumbing.