bardecoder
bardecoder copied to clipboard
Decoding Chrome's caBLE QR codes fails about 20% of the time
Using the "quick" example from README.md, about 20% of screenshots of caBLE QR codes generated by Chrome are unreadable.
Chrome's QR codes have some custom styling (both the dot shapes and a logo in the centre) which I thought might be tripping things up.
In an attempt to troubleshoot this, I've manually cropped these QR codes and re-added a consistent (and larger) quiet zone than what Chrome normally displays.
I was able to scan all of the QR codes here with zxing on an Android device, using a camera pointed at my computer screen.
Steps to make more QR codes like this
You can use a Webauthn test site (eg: https://webauthn.firstyear.id.au) to create a credential, then if prompted, cancel using your operating system's WebAuthn flow, and then in Chrome's Create a passkey dialogue, select A different device.
I was using Chrome 111.
Working
FIDO:/28610405510676647281070952366261726468317865193044066837836877593561582746595936604481167558217365384446054484679630488005646830745084131487105106391936201798171307406596245

3 more working QR codes
FIDO:/32789644912885927349070657034280551697729803677908804599719938185478372447582777215121687468303513343343910335693453009006216672296743753605314686799129801798171307406596245

FIDO:/44234461446406311537642528901884036143320885501466951325869590614380012386195643142985551008282111991445165938202659595007328699933478466532654444589952201798171307406596245

Not working
Error decoding QR Code: Mode 0101 not yet implemented.

Full debug log
2023-03-30T05:09:13.013790Z DEBUG bardecoder::detect::linescan: Candidate QR Locators [
QRFinderPosition {
location: Point {
x: 78.0,
y: 79.0,
},
module_size: 9.714285714285714,
last_module_size: 0.0,
},
QRFinderPosition {
location: Point {
x: 369.5,
y: 79.0,
},
module_size: 9.821428571428571,
last_module_size: 0.0,
},
QRFinderPosition {
location: Point {
x: 78.0,
y: 371.0,
},
module_size: 9.75,
last_module_size: 0.0,
},
]
2023-03-30T05:09:13.014281Z TRACE bardecoder::detect::linescan: DIFF 1 0.01090909090909096
2023-03-30T05:09:13.014373Z TRACE bardecoder::detect::linescan: DIFF 2 0.003663003663003741
2023-03-30T05:09:13.014457Z TRACE bardecoder::detect::linescan: LEN A 291.5 LEN B 292
2023-03-30T05:09:13.014540Z TRACE bardecoder::detect::linescan: DIFF 0.0017123287671232876
2023-03-30T05:09:13.014620Z TRACE bardecoder::detect::linescan: PERPENDICULAR -1
2023-03-30T05:09:13.014709Z TRACE bardecoder::detect::linescan: DIST 37
2023-03-30T05:09:13.014791Z TRACE bardecoder::detect::linescan: DIFF 1 0.003663003663003741
2023-03-30T05:09:13.014879Z TRACE bardecoder::detect::linescan: DIFF 1 0.007272727272727247
2023-03-30T05:09:13.015005Z DEBUG bardecoder::extract::qr: LEFT X 335 RIGHT X 345
2023-03-30T05:09:13.015103Z DEBUG bardecoder::extract::qr: TOP Y 336 BOTTOM Y 346
2023-03-30T05:09:13.015193Z DEBUG bardecoder::extract::qr: ORIG EST Point { x: 340.35, y: 341.8 }, NEW EST Point { x: 340.0, y: 341.0 }
2023-03-30T05:09:13.015309Z DEBUG bardecoder::extract::qr: DELTA Delta { dx: -0.35000000000002274, dy: -0.8000000000000114 }
2023-03-30T05:09:13.015414Z DEBUG bardecoder::extract::qr: PERSPECTIVE Perspective { dx: Delta { dx: 9.716666666666667, dy: 0.0 }, ddx: Delta { dx: -0.0004801097393690298, dy: -0.0010973936899862982 }, dy: Delta { dx: 0.0, dy: 9.733333333333333 }, ddy: Delta { dx: 0.0, dy: 0.0 } }
2023-03-30T05:09:13.015754Z DEBUG bardecoder::extract::qr: START Point { x: 78.0, y: 49.800000000000004 }
2023-03-30T05:09:13.016062Z DEBUG bardecoder::decode::qr::format: MASK 010
2023-03-30T05:09:13.016276Z TRACE bardecoder::decode::qr::blocks: PUSHING 00100000 TO BLOCK 0
2023-03-30T05:09:13.016373Z TRACE bardecoder::decode::qr::blocks: PUSHING 00101111 TO BLOCK 1
2023-03-30T05:09:13.016468Z TRACE bardecoder::decode::qr::blocks: PUSHING 00110010 TO BLOCK 0
2023-03-30T05:09:13.016553Z TRACE bardecoder::decode::qr::blocks: PUSHING 11011110 TO BLOCK 1
2023-03-30T05:09:13.016635Z TRACE bardecoder::decode::qr::blocks: PUSHING 10110101 TO BLOCK 0
2023-03-30T05:09:13.016717Z TRACE bardecoder::decode::qr::blocks: PUSHING 00100000 TO BLOCK 1
2023-03-30T05:09:13.016799Z TRACE bardecoder::decode::qr::blocks: PUSHING 01001100 TO BLOCK 0
2023-03-30T05:09:13.016884Z TRACE bardecoder::decode::qr::blocks: PUSHING 00111010 TO BLOCK 1
2023-03-30T05:09:13.016964Z TRACE bardecoder::decode::qr::blocks: PUSHING 00111111 TO BLOCK 0
2023-03-30T05:09:13.017045Z TRACE bardecoder::decode::qr::blocks: PUSHING 11111010 TO BLOCK 1
2023-03-30T05:09:13.017127Z TRACE bardecoder::decode::qr::blocks: PUSHING 10011100 TO BLOCK 0
2023-03-30T05:09:13.017208Z TRACE bardecoder::decode::qr::blocks: PUSHING 01011100 TO BLOCK 1
2023-03-30T05:09:13.017290Z TRACE bardecoder::decode::qr::blocks: PUSHING 01001010 TO BLOCK 0
2023-03-30T05:09:13.017371Z TRACE bardecoder::decode::qr::blocks: PUSHING 10010111 TO BLOCK 1
2023-03-30T05:09:13.017452Z TRACE bardecoder::decode::qr::blocks: PUSHING 11010111 TO BLOCK 0
2023-03-30T05:09:13.017533Z TRACE bardecoder::decode::qr::blocks: PUSHING 00111110 TO BLOCK 1
2023-03-30T05:09:13.017613Z TRACE bardecoder::decode::qr::blocks: PUSHING 00111110 TO BLOCK 0
2023-03-30T05:09:13.017694Z TRACE bardecoder::decode::qr::blocks: PUSHING 10111010 TO BLOCK 1
2023-03-30T05:09:13.017781Z TRACE bardecoder::decode::qr::blocks: PUSHING 10100011 TO BLOCK 0
2023-03-30T05:09:13.017875Z TRACE bardecoder::decode::qr::blocks: PUSHING 00001001 TO BLOCK 1
2023-03-30T05:09:13.017960Z TRACE bardecoder::decode::qr::blocks: PUSHING 00101101 TO BLOCK 0
2023-03-30T05:09:13.018041Z TRACE bardecoder::decode::qr::blocks: PUSHING 00110000 TO BLOCK 1
2023-03-30T05:09:13.018122Z TRACE bardecoder::decode::qr::blocks: PUSHING 10111110 TO BLOCK 0
2023-03-30T05:09:13.018202Z TRACE bardecoder::decode::qr::blocks: PUSHING 10010111 TO BLOCK 1
2023-03-30T05:09:13.018289Z TRACE bardecoder::decode::qr::blocks: PUSHING 00001001 TO BLOCK 0
2023-03-30T05:09:13.018371Z TRACE bardecoder::decode::qr::blocks: PUSHING 00101111 TO BLOCK 1
2023-03-30T05:09:13.018451Z TRACE bardecoder::decode::qr::blocks: PUSHING 00111001 TO BLOCK 0
2023-03-30T05:09:13.018531Z TRACE bardecoder::decode::qr::blocks: PUSHING 00010010 TO BLOCK 1
2023-03-30T05:09:13.018613Z TRACE bardecoder::decode::qr::blocks: PUSHING 11010110 TO BLOCK 0
2023-03-30T05:09:13.018692Z TRACE bardecoder::decode::qr::blocks: PUSHING 00100000 TO BLOCK 1
2023-03-30T05:09:13.018772Z TRACE bardecoder::decode::qr::blocks: PUSHING 00010101 TO BLOCK 0
2023-03-30T05:09:13.018852Z TRACE bardecoder::decode::qr::blocks: PUSHING 11111110 TO BLOCK 1
2023-03-30T05:09:13.018932Z TRACE bardecoder::decode::qr::blocks: PUSHING 11011111 TO BLOCK 0
2023-03-30T05:09:13.019014Z TRACE bardecoder::decode::qr::blocks: PUSHING 00000001 TO BLOCK 1
2023-03-30T05:09:13.019096Z TRACE bardecoder::decode::qr::blocks: PUSHING 10000101 TO BLOCK 0
2023-03-30T05:09:13.019176Z TRACE bardecoder::decode::qr::blocks: PUSHING 00110001 TO BLOCK 1
2023-03-30T05:09:13.019263Z TRACE bardecoder::decode::qr::blocks: PUSHING 01001101 TO BLOCK 0
2023-03-30T05:09:13.019343Z TRACE bardecoder::decode::qr::blocks: PUSHING 11110110 TO BLOCK 1
2023-03-30T05:09:13.019423Z TRACE bardecoder::decode::qr::blocks: PUSHING 01001011 TO BLOCK 0
2023-03-30T05:09:13.019502Z TRACE bardecoder::decode::qr::blocks: PUSHING 00111100 TO BLOCK 1
2023-03-30T05:09:13.019581Z TRACE bardecoder::decode::qr::blocks: PUSHING 10110001 TO BLOCK 0
2023-03-30T05:09:13.019660Z TRACE bardecoder::decode::qr::blocks: PUSHING 00011100 TO BLOCK 1
2023-03-30T05:09:13.019741Z TRACE bardecoder::decode::qr::blocks: PUSHING 01011111 TO BLOCK 0
2023-03-30T05:09:13.019822Z TRACE bardecoder::decode::qr::blocks: PUSHING 11110111 TO BLOCK 1
2023-03-30T05:09:13.019901Z TRACE bardecoder::decode::qr::blocks: PUSHING 10100101 TO BLOCK 0
2023-03-30T05:09:13.019981Z TRACE bardecoder::decode::qr::blocks: PUSHING 00111100 TO BLOCK 1
2023-03-30T05:09:13.020061Z TRACE bardecoder::decode::qr::blocks: PUSHING 01000001 TO BLOCK 0
2023-03-30T05:09:13.020141Z TRACE bardecoder::decode::qr::blocks: PUSHING 00010100 TO BLOCK 1
2023-03-30T05:09:13.020225Z TRACE bardecoder::decode::qr::blocks: PUSHING 01010100 TO BLOCK 0
2023-03-30T05:09:13.020307Z TRACE bardecoder::decode::qr::blocks: PUSHING 10000110 TO BLOCK 1
2023-03-30T05:09:13.020388Z TRACE bardecoder::decode::qr::blocks: PUSHING 01000001 TO BLOCK 0
2023-03-30T05:09:13.020468Z TRACE bardecoder::decode::qr::blocks: PUSHING 01100011 TO BLOCK 1
2023-03-30T05:09:13.020548Z TRACE bardecoder::decode::qr::blocks: PUSHING 11000001 TO BLOCK 0
2023-03-30T05:09:13.020628Z TRACE bardecoder::decode::qr::blocks: PUSHING 10000100 TO BLOCK 1
2023-03-30T05:09:13.020707Z TRACE bardecoder::decode::qr::blocks: PUSHING 00011000 TO BLOCK 0
2023-03-30T05:09:13.020786Z TRACE bardecoder::decode::qr::blocks: PUSHING 10101010 TO BLOCK 1
2023-03-30T05:09:13.020866Z TRACE bardecoder::decode::qr::blocks: PUSHING 10000000 TO BLOCK 0
2023-03-30T05:09:13.020945Z TRACE bardecoder::decode::qr::blocks: PUSHING 00101001 TO BLOCK 1
2023-03-30T05:09:13.021024Z TRACE bardecoder::decode::qr::blocks: PUSHING 00111011 TO BLOCK 0
2023-03-30T05:09:13.021103Z TRACE bardecoder::decode::qr::blocks: PUSHING 00011111 TO BLOCK 1
2023-03-30T05:09:13.021184Z TRACE bardecoder::decode::qr::blocks: PUSHING 01100011 TO BLOCK 0
2023-03-30T05:09:13.021266Z TRACE bardecoder::decode::qr::blocks: PUSHING 01010110 TO BLOCK 1
2023-03-30T05:09:13.021346Z TRACE bardecoder::decode::qr::blocks: PUSHING 01111101 TO BLOCK 0
2023-03-30T05:09:13.021425Z TRACE bardecoder::decode::qr::blocks: PUSHING 11001001 TO BLOCK 1
2023-03-30T05:09:13.021505Z TRACE bardecoder::decode::qr::blocks: PUSHING 00000010 TO BLOCK 0
2023-03-30T05:09:13.021586Z TRACE bardecoder::decode::qr::blocks: PUSHING 11000010 TO BLOCK 1
2023-03-30T05:09:13.021666Z TRACE bardecoder::decode::qr::blocks: PUSHING 10000000 TO BLOCK 0
2023-03-30T05:09:13.021745Z TRACE bardecoder::decode::qr::blocks: PUSHING 10000100 TO BLOCK 1
2023-03-30T05:09:13.021825Z TRACE bardecoder::decode::qr::blocks: PUSHING 11011010 TO BLOCK 0
2023-03-30T05:09:13.021905Z TRACE bardecoder::decode::qr::blocks: PUSHING 00011111 TO BLOCK 1
2023-03-30T05:09:13.021984Z TRACE bardecoder::decode::qr::blocks: PUSHING 11101001 TO BLOCK 0
2023-03-30T05:09:13.022063Z TRACE bardecoder::decode::qr::blocks: PUSHING 00001001 TO BLOCK 1
2023-03-30T05:09:13.022143Z TRACE bardecoder::decode::qr::blocks: PUSHING 10011101 TO BLOCK 0
2023-03-30T05:09:13.022227Z TRACE bardecoder::decode::qr::blocks: PUSHING 01001010 TO BLOCK 1
2023-03-30T05:09:13.022308Z TRACE bardecoder::decode::qr::blocks: PUSHING 11001010 TO BLOCK 0
2023-03-30T05:09:13.022386Z TRACE bardecoder::decode::qr::blocks: PUSHING 11010000 TO BLOCK 1
2023-03-30T05:09:13.022465Z TRACE bardecoder::decode::qr::blocks: PUSHING 11010100 TO BLOCK 0
2023-03-30T05:09:13.022547Z TRACE bardecoder::decode::qr::blocks: PUSHING 11101100 TO BLOCK 1
2023-03-30T05:09:13.022642Z TRACE bardecoder::decode::qr::blocks: PUSHING 11001000 TO BLOCK 0
2023-03-30T05:09:13.022741Z TRACE bardecoder::decode::qr::blocks: PUSHING 00010001 TO BLOCK 1
2023-03-30T05:09:13.022836Z TRACE bardecoder::decode::qr::blocks: PUSHING 11110010 TO BLOCK 0
2023-03-30T05:09:13.022928Z TRACE bardecoder::decode::qr::blocks: PUSHING 11101100 TO BLOCK 1
2023-03-30T05:09:13.023020Z TRACE bardecoder::decode::qr::blocks: PUSHING 10101101 TO BLOCK 0
2023-03-30T05:09:13.023131Z TRACE bardecoder::decode::qr::blocks: PUSHING 01001011 TO BLOCK 1
2023-03-30T05:09:13.023236Z TRACE bardecoder::decode::qr::blocks: PUSHING 10101011 TO BLOCK 0
2023-03-30T05:09:13.023327Z TRACE bardecoder::decode::qr::blocks: PUSHING 11101100 TO BLOCK 1
2023-03-30T05:09:13.023412Z TRACE bardecoder::decode::qr::blocks: PUSHING 01100111 TO BLOCK 0
2023-03-30T05:09:13.023496Z TRACE bardecoder::decode::qr::blocks: PUSHING 11111010 TO BLOCK 1
2023-03-30T05:09:13.023578Z TRACE bardecoder::decode::qr::blocks: PUSHING 00101101 TO BLOCK 0
2023-03-30T05:09:13.023659Z TRACE bardecoder::decode::qr::blocks: PUSHING 00001010 TO BLOCK 1
2023-03-30T05:09:13.023739Z TRACE bardecoder::decode::qr::blocks: PUSHING 00100000 TO BLOCK 0
2023-03-30T05:09:13.023819Z TRACE bardecoder::decode::qr::blocks: PUSHING 00000000 TO BLOCK 1
2023-03-30T05:09:13.023899Z TRACE bardecoder::decode::qr::blocks: PUSHING 00000000 TO BLOCK 0
2023-03-30T05:09:13.023990Z TRACE bardecoder::decode::qr::blocks: PUSHING 00000111 TO BLOCK 1
2023-03-30T05:09:13.024071Z TRACE bardecoder::decode::qr::blocks: PUSHING 00110010 TO BLOCK 0
2023-03-30T05:09:13.024151Z TRACE bardecoder::decode::qr::blocks: PUSHING 11011010 TO BLOCK 1
2023-03-30T05:09:13.024234Z TRACE bardecoder::decode::qr::blocks: PUSHING 11010000 TO BLOCK 0
2023-03-30T05:09:13.024313Z TRACE bardecoder::decode::qr::blocks: PUSHING 10011100 TO BLOCK 1
2023-03-30T05:09:13.024393Z TRACE bardecoder::decode::qr::blocks: PUSHING 11010110 TO BLOCK 0
2023-03-30T05:09:13.024472Z TRACE bardecoder::decode::qr::blocks: PUSHING 00100110 TO BLOCK 1
2023-03-30T05:09:13.024551Z TRACE bardecoder::decode::qr::blocks: PUSHING 10110010 TO BLOCK 0
2023-03-30T05:09:13.024631Z TRACE bardecoder::decode::qr::blocks: PUSHING 11100101 TO BLOCK 1
2023-03-30T05:09:13.024711Z TRACE bardecoder::decode::qr::blocks: PUSHING 01000100 TO BLOCK 0
2023-03-30T05:09:13.024790Z TRACE bardecoder::decode::qr::blocks: PUSHING 10110011 TO BLOCK 1
2023-03-30T05:09:13.024870Z TRACE bardecoder::decode::qr::blocks: PUSHING 11110101 TO BLOCK 0
2023-03-30T05:09:13.024968Z TRACE bardecoder::decode::qr::blocks: PUSHING 01010001 TO BLOCK 1
2023-03-30T05:09:13.025054Z TRACE bardecoder::decode::qr::blocks: PUSHING 11100010 TO BLOCK 0
2023-03-30T05:09:13.025135Z TRACE bardecoder::decode::qr::blocks: PUSHING 01101111 TO BLOCK 1
2023-03-30T05:09:13.025215Z TRACE bardecoder::decode::qr::blocks: PUSHING 01100001 TO BLOCK 0
2023-03-30T05:09:13.025298Z TRACE bardecoder::decode::qr::blocks: PUSHING 11001010 TO BLOCK 1
2023-03-30T05:09:13.025378Z TRACE bardecoder::decode::qr::blocks: PUSHING 10101010 TO BLOCK 0
2023-03-30T05:09:13.025480Z TRACE bardecoder::decode::qr::blocks: PUSHING 11100001 TO BLOCK 1
2023-03-30T05:09:13.025564Z TRACE bardecoder::decode::qr::blocks: PUSHING 10111100 TO BLOCK 0
2023-03-30T05:09:13.025644Z TRACE bardecoder::decode::qr::blocks: PUSHING 01111010 TO BLOCK 1
2023-03-30T05:09:13.025725Z TRACE bardecoder::decode::qr::blocks: PUSHING 11100011 TO BLOCK 0
2023-03-30T05:09:13.025806Z TRACE bardecoder::decode::qr::blocks: PUSHING 10000001 TO BLOCK 1
2023-03-30T05:09:13.025885Z TRACE bardecoder::decode::qr::blocks: PUSHING 00000110 TO BLOCK 0
2023-03-30T05:09:13.025964Z TRACE bardecoder::decode::qr::blocks: PUSHING 01101000 TO BLOCK 1
2023-03-30T05:09:13.026044Z TRACE bardecoder::decode::qr::blocks: PUSHING 01000011 TO BLOCK 0
2023-03-30T05:09:13.026124Z TRACE bardecoder::decode::qr::blocks: PUSHING 11001111 TO BLOCK 1
2023-03-30T05:09:13.026215Z TRACE bardecoder::decode::qr::blocks: PUSHING 00011111 TO BLOCK 0
2023-03-30T05:09:13.026351Z TRACE bardecoder::decode::qr::blocks: PUSHING 01001100 TO BLOCK 1
2023-03-30T05:09:13.026443Z TRACE bardecoder::decode::qr::blocks: PUSHING 00010100 TO BLOCK 0
2023-03-30T05:09:13.026529Z TRACE bardecoder::decode::qr::blocks: PUSHING 00101000 TO BLOCK 1
2023-03-30T05:09:13.026620Z TRACE bardecoder::decode::qr::blocks: PUSHING 00100111 TO BLOCK 0
2023-03-30T05:09:13.026714Z TRACE bardecoder::decode::qr::blocks: PUSHING 01101110 TO BLOCK 1
2023-03-30T05:09:13.026803Z TRACE bardecoder::decode::qr::blocks: PUSHING 10110111 TO BLOCK 0
2023-03-30T05:09:13.026888Z TRACE bardecoder::decode::qr::blocks: PUSHING 00111000 TO BLOCK 1
2023-03-30T05:09:13.026970Z TRACE bardecoder::decode::qr::blocks: PUSHING 00111110 TO BLOCK 0
2023-03-30T05:09:13.027060Z TRACE bardecoder::decode::qr::blocks: PUSHING 10111110 TO BLOCK 1
2023-03-30T05:09:13.027145Z TRACE bardecoder::decode::qr::blocks: PUSHING 11001000 TO BLOCK 0
2023-03-30T05:09:13.027232Z TRACE bardecoder::decode::qr::blocks: PUSHING 00110101 TO BLOCK 1
2023-03-30T05:09:13.027315Z TRACE bardecoder::decode::qr::blocks: PUSHING 01011101 TO BLOCK 0
2023-03-30T05:09:13.027399Z TRACE bardecoder::decode::qr::blocks: PUSHING 10110110 TO BLOCK 1
2023-03-30T05:09:13.027501Z DEBUG bardecoder::decode::qr::blocks: BLOCK 0, CODEWORDS 67
2023-03-30T05:09:13.027582Z DEBUG bardecoder::decode::qr::blocks: BLOCK 1, CODEWORDS 67
2023-03-30T05:09:13.027915Z DEBUG bardecoder::decode::qr::correct: LOC GF8(180) 20
2023-03-30T05:09:13.028007Z DEBUG bardecoder::decode::qr::correct: LOC GF8(117) 21
2023-03-30T05:09:13.028091Z DEBUG bardecoder::decode::qr::correct: LOC GF8(143) 24
2023-03-30T05:09:13.028172Z DEBUG bardecoder::decode::qr::correct: LOC GF8(3) 25
2023-03-30T05:09:13.028273Z DEBUG bardecoder::decode::qr::correct: LOC GF8(48) 29
2023-03-30T05:09:13.028359Z DEBUG bardecoder::decode::qr::correct: LOC GF8(39) 33
2023-03-30T05:09:13.028444Z DEBUG bardecoder::decode::qr::correct: LOC GF8(78) 34
2023-03-30T05:09:13.028528Z DEBUG bardecoder::decode::qr::correct: LOC GF8(148) 38
2023-03-30T05:09:13.028609Z DEBUG bardecoder::decode::qr::correct: LOC GF8(53) 39
2023-03-30T05:09:13.028773Z DEBUG bardecoder::decode::qr::correct: LOC GF8(119) 43
2023-03-30T05:09:13.028875Z DEBUG bardecoder::decode::qr::correct: LOCS [20, 21, 24, 25, 29, 33, 34, 38, 39, 42, 43]
2023-03-30T05:09:13.029070Z DEBUG bardecoder::decode::qr::correct: FIXING LOCATION 46 FROM 00000000 TO 11000101
2023-03-30T05:09:13.029151Z DEBUG bardecoder::decode::qr::correct: FIXING LOCATION 45 FROM 00100000 TO 00100001
2023-03-30T05:09:13.029235Z DEBUG bardecoder::decode::qr::correct: FIXING LOCATION 42 FROM 10101011 TO 11000101
2023-03-30T05:09:13.029314Z DEBUG bardecoder::decode::qr::correct: FIXING LOCATION 41 FROM 10101101 TO 11101010
2023-03-30T05:09:13.029395Z DEBUG bardecoder::decode::qr::correct: FIXING LOCATION 37 FROM 11001010 TO 11010110
2023-03-30T05:09:13.029474Z DEBUG bardecoder::decode::qr::correct: FIXING LOCATION 33 FROM 10000000 TO 00001000
2023-03-30T05:09:13.029554Z DEBUG bardecoder::decode::qr::correct: FIXING LOCATION 32 FROM 00000010 TO 00010001
2023-03-30T05:09:13.029634Z DEBUG bardecoder::decode::qr::correct: FIXING LOCATION 28 FROM 10000000 TO 10100110
2023-03-30T05:09:13.029712Z DEBUG bardecoder::decode::qr::correct: FIXING LOCATION 27 FROM 00011000 TO 00011001
2023-03-30T05:09:13.029792Z DEBUG bardecoder::decode::qr::correct: FIXING LOCATION 24 FROM 01010100 TO 01110110
2023-03-30T05:09:13.029872Z DEBUG bardecoder::decode::qr::correct: FIXING LOCATION 23 FROM 01000001 TO 01101001
2023-03-30T05:09:13.030169Z DEBUG bardecoder::decode::qr::correct: LOC GF8(3) 25
2023-03-30T05:09:13.030282Z DEBUG bardecoder::decode::qr::correct: LOCS [25]
2023-03-30T05:09:13.030366Z DEBUG bardecoder::decode::qr::correct: FIXING LOCATION 41 FROM 01001011 TO 11111000
2023-03-30T05:09:13.030476Z DEBUG bardecoder::decode::qr::decoder: TOTAL LENGTH 86
2023-03-30T05:09:13.030578Z DEBUG bardecoder::decode::qr::data: ALPHANUMERIC "FIDO:/"
2023-03-30T05:09:13.030698Z DEBUG bardecoder::decode::qr::data: NUMERIC "46367518299259047008750433933170950634637426301761757139797706621893447743720097168433199012894366315125092858815118829006351319986777524724032840890068065798171377806596241"
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error decoding QR Code: Mode 0101 not yet implemented.', examples/quick.rs:10:31
From the looks of the debug log and the debug images it has found the URL, but may be tripping on something else?

