KionelLAB WORKFLOWS

GUIDE · UPDATED 2026

How much data fits in a QR code, and how many a file needs

The largest QR code holds 2,953 bytes. A one-megabyte file is therefore a few hundred codes, not one. Below are the exact figures, and what decides how fast a screen can pass them to a camera.

Written by Taha Bayar, a biologist working on laboratory data handover. Kionel sends files as sequences of codes; the capacities come from the QR standard (ISO/IEC 18004), the rest from the code the app runs.

Bytes per code

A QR code's size is its version, from 1 to 40; each step adds four modules (the small squares) to each side. Each version has four error-correction levels, L, M, Q and H, and the higher ones spend more of the code on repair data. For arbitrary bytes at level L:

VersionModulesBytes at level L
1057 × 57271
1577 × 77520
2097 × 97858
25117 × 1171,273
27125 × 1251,465
30137 × 1371,732
35157 × 1572,306
40177 × 1772,953

At version 40, level M holds 2,331 bytes, Q 1,663 and H 1,273.

Why a screen uses level L

A printed code on a crate gets scratched and dirty, and level H lets a reader recover it with up to about 30% of it damaged. A code on a monitor is never torn; the risk is a missed or blurred image. So Kionel uses level L, the most data per image, and deals with missed images differently: a fountain code. The sender keeps producing fresh combinations of the file's pieces, and the receiver rebuilds the file from any set slightly larger than the file itself — whichever images it happened to catch. Nothing has to be sent again on request.

How many codes a file needs

Kionel puts a 20-byte header on every code (session, position, checksum), so a version-27 code carries 1,445 bytes of the file and a version-40 code 2,933. With 1 KB = 1,024 bytes:

File sizeVersion 27 codesVersion 40 codes
10 KB84
100 KB7135
1 MB726358
5 MB3,6291,788

These are minimums: the receiver has to catch that many different images. Allow about 10% more for the fountain code.

Compress first, then encrypt

Encrypted data looks random and does not compress, so the order matters. Kionel compresses the file before encrypting it and sends whichever version is smaller. Plain-text exports (CSV, TXT, XML) usually shrink a lot. JPEG, PNG, ZIP, XLSX and most PDFs are compressed already and barely change.

What limits the speed

Showing codes is easy. Reading them is the bottleneck.

Actual speed depends on the camera, the screen and the distance. Kionel shows its estimate for your file before you start, and for recording it tells the receiving device how long to film.

Start freeOffline PC to phone