Blueberry’s tech team have created a completely new way to share data between devices – and solved a major customer challenge in the process - using rapidly changing QR codes to send megabytes of data in the blink of an eye!
They used the device camera to read QR codes that switch every 0.5 seconds to send megabytes of data, even in extreme environments like airports or the Saudi Arabian desert, where Bluetooth and Wi-Fi are too unreliable.
Here’s the Backstory:
A customer came to us with a huge problem—they needed to share big files between tablets in specialised environments where there was no internet.
Multiple developers tried to solve it – they used local Wi-Fi, they used Bluetooth. But they kept running into technical difficulties: Bluetooth reliability is patchy at the best of times, and the tablets being used were often at the budget end, running old versions of Android. New Android has features for direct device connectivity – old Android doesn’t.
Eventually the team came up with a completely new approach. Instead of forcing unreliable connections, we flipped the script. The sending tablet converts the data into a sequence of huge QR codes – each one holding 256 bytes. The receiving tablet captures the QR codes with its camera and turns them back into data, and boom - files transferred.
With reasonable cameras we’re talking 30 kB per minute - meaning even a 10 MB file can usually be compressed down from 10 MB to 40 kB and sent in around 6 minutes (which includes the time taken for compression and generating the QR codes). Of course, it also depends on what's being sent: a 10 MB text file can be heavily compressed by the algorithm and sent inside of a minute, whereas a video file would take longer due to the constraints of lossless compression.
The real beauty of this approach is that it’s low-tech and just works.
How It Works
QR codes typically hold around 32 bytes of data, which is just enough for something small, like sharing a website link or a username. Sure, you can push it up to its maximum size of 3 kB, but good luck getting that to scan (you’d need a high-resolution camera and a surface large enough to grab all the data!).
We found the sweet spot—256 bytes per QR code. It’s big enough to pack in way more data but still scans quickly and easily. Each chunk is turned into its own QR code and blasted out in rapid-fire sequence from the sending device.
The receiving device captures every QR code one by one. Once it’s got them all, it pieces the data back together, decompresses it, and checks for accuracy with a built-in checksum. It’s like assembling a puzzle - only way faster!
The final output can be saved as a file or used right away.
Got a Similar Challenge?
We see a ton of potential uses for this tech - basically, anywhere Wi-Fi and Bluetooth can't be trusted. If you need to move data between devices securely and reliably without relying on unstable connections - get in touch!