KionelLAB WORKFLOWS

GUIDE · MEASUREMENT

How fast is file transfer by QR code?

Every tool that moves files from a screen to a camera publishes a speed. Almost all of those numbers come from the tool's own author, on the author's own devices, and some are calculated, not measured. This page describes a test anyone can repeat, lists what we have measured ourselves, and keeps the two kinds of number apart.

Written by Taha Bayar, a biologist working on laboratory data handover. Figures for other projects are taken from their public pages in October 2026.

The test

  1. The file. 1 MB of random bytes, so that compression cannot help: head -c 1048576 /dev/urandom > test.bin, or in PowerShell $b = New-Object byte[] 1048576; (New-Object Security.Cryptography.RNGCryptoServiceProvider).GetBytes($b); [IO.File]::WriteAllBytes((Join-Path $PWD "test.bin"), $b). Note its SHA-256.
  2. The screen. An ordinary office monitor at its usual brightness. Write down its size and resolution. A phone showing codes to another phone is a different, easier test; say which one you ran.
  3. The phone. Held in the hand, at the distance where the code fills most of the picture. Write down the model.
  4. The clock. Start when the first code appears, stop when the receiving side shows the complete file.
  5. The check. The run counts only if the SHA-256 of the received file equals the one you noted.
  6. Three runs. Report all three, not the best one.

The result is kilobytes per second of file delivered, not codes per second and not the capacity of one code times the frame rate.

What we have measured

Tool and modeDevicesFileResult
Kionel, live reading24-inch monitor to Redmi Note 13 Pro105 KB13 s and 16 s (about 7 KB/s)
Kionel, live readingPC monitor to an Android phone117 KB10 s to 24 s
Kionel, from a screen recordingsame117 KB7 s of recording, then decoding on the phone
Kionel, colour code, phone filming a monitor24-inch monitor to Redmi Note 13 Pro105 KBFailed: none of 429 images could be read

These are small files and few runs. They are here because they were measured, including the one that failed. The 1 MB test above has not been run on these devices yet.

What other projects report for themselves

ProjectReportedConditions given by the projectMeasured by us
libcimbarabout 100 KB/s (850 kbit/s)Colour code, monitor to phoneNot on a phone. Its decoder is what Kionel's colour mode uses, and that failed in the test above
Decimen Optical Transfer50 to 186 KB/sPhone to phone at close range; "a few KB/s" from a laptop at a distance, 20 to 25 KB/s after tuningNo
GlassBridge59 to 340 KiB/sThe project calls these channel budgets before loss, not phone resultsNo
AirgapLinkabout 28 KB/sCalculated; the project says no physical test has passed yetNo

The pattern is worth noticing: the high numbers are phone to phone, close up, where the code fills the camera's picture. From a desk monitor to a hand-held phone, the one project that says so reports a few kilobytes a second, which is where our own measurements are too.

Why the monitor case is slower

Send us a measurement

If you run the test with any tool, including ours, send us the tool and version, the screen, the phone, the three times and whether the SHA-256 matched. We will add it to this page with your name or without, as you prefer, and we will add results that are worse for Kionel as readily as better ones.

Speed is not what Kionel is for: the comparison with open-source tools says when a free tool is the better choice, and the speed calculator estimates a transfer before you start it.

Try it freeResearch