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
- 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. - 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.
- The phone. Held in the hand, at the distance where the code fills most of the picture. Write down the model.
- The clock. Start when the first code appears, stop when the receiving side shows the complete file.
- The check. The run counts only if the SHA-256 of the received file equals the one you noted.
- 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 mode | Devices | File | Result |
|---|---|---|---|
| Kionel, live reading | 24-inch monitor to Redmi Note 13 Pro | 105 KB | 13 s and 16 s (about 7 KB/s) |
| Kionel, live reading | PC monitor to an Android phone | 117 KB | 10 s to 24 s |
| Kionel, from a screen recording | same | 117 KB | 7 s of recording, then decoding on the phone |
| Kionel, colour code, phone filming a monitor | 24-inch monitor to Redmi Note 13 Pro | 105 KB | Failed: 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
| Project | Reported | Conditions given by the project | Measured by us |
|---|---|---|---|
| libcimbar | about 100 KB/s (850 kbit/s) | Colour code, monitor to phone | Not on a phone. Its decoder is what Kionel's colour mode uses, and that failed in the test above |
| Decimen Optical Transfer | 50 to 186 KB/s | Phone to phone at close range; "a few KB/s" from a laptop at a distance, 20 to 25 KB/s after tuning | No |
| GlassBridge | 59 to 340 KiB/s | The project calls these channel budgets before loss, not phone results | No |
| AirgapLink | about 28 KB/s | Calculated; the project says no physical test has passed yet | No |
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
- The code is smaller in the picture. A phone held at arm's length from a monitor sees each square of the code as only a few camera pixels.
- Two codes in one picture. A camera taking 30 pictures a second of a screen that changes 30 times a second catches many pictures halfway between two codes.
- The phone has to decode while it films. Reading a dense code took the phone we measured about 0.15 seconds, so a single decoder tries only a few pictures each second. Kionel now decodes several pictures at once.
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.