HN.zip

Decimen Optical Transfer: fountain-coded QR file transfer

44 points by ksec - 35 comments
smalltorch [3 hidden]5 mins ago
Naturally the first thing to test should be how far of a link can you create with LOS.

Radio's get intercepted, this is a cheap laser link.

legulere [3 hidden]5 mins ago
The actual article explaining the use for fountain codes in this use case: https://divan.dev/posts/fountaincodes/
myself248 [3 hidden]5 mins ago
Oooooooooooo.

I bet that's how satellite radios get their firmware updates and stuff.

Actually I bet it's how they get almost everything aside from the audio streams themselves. Metadata. Channel art. Subscription info. Traffic data. Weather maps. Receiver firmware... The satellite is a textbook-perfect fountain, and the receiver may tune in at any time during the stream, and may miss any random number of packets, but fairly quickly it has what it needs.

I believe the various categories of metadata are sent at different rates according to how promptly a newly-awakened receiver should be able to update itself, so what's actually on the air is an interleaved collection of fountain streams, yeah? Hmm.

inigyou [3 hidden]5 mins ago
I bet they don't, because they didn't know about it or didn't think of it.

I know GPS is a slow repeating stream (the ephemeris repeats every 30 seconds and the almanac every 12.5 minutes) but that probably came before fountain codes.

smalltorch [3 hidden]5 mins ago
> The receiver can start receiving blocks from any point, receive blocks in any order, with any erasure probability – fountain codes will work as soon as you received K+ different blocks.

Thats just cool.

elric [3 hidden]5 mins ago
Neat, finally an easy way of transferring files between devices that doesn't rely on online services -- no clue why we didn't solve that ages ago.

Adding encryption shouldn't be hard, as long as you can communicate the keys out of band.

Could probably achieve the same result using audio instead of video, but maybe that would be too annoying?

Diti [3 hidden]5 mins ago
This is a vibe-coded project. The concept already exists in the training data. It was solved fifteen years ago, with the Magic Wormhole protocol. https://magic-wormhole.readthedocs.io
pjc50 [3 hidden]5 mins ago
> between devices that doesn't rely on online services -- no clue why we didn't solve that ages ago

Airdrop is a thing, but remember that Android phones are controlled by the online services company that wants you to use online services.

inigyou [3 hidden]5 mins ago
Actually it's the opposite - Airdrop is controlled by the vendor lock-in company that wants you to only buy its hardware.
throwaway260626 [3 hidden]5 mins ago
Bluetooth is a thing too and I think it is even faster than this qr code video transfer method. Of course still slower than Airdrop.
bigiain [3 hidden]5 mins ago
I had a Timex Data Watch over 30 years ago.

https://en.wikipedia.org/wiki/Timex_Datalink

It'd transfer phone numbers and calendar entries to the watch by blinking the screen of your computer. Kinda a 1 pixel version of this.

(I wonder where that ended up? From memory I threw it in a drawer when I finished the Windows 95 project I'd been working on, and switched to Mac. There was no Mac software to talk to it.)

atoav [3 hidden]5 mins ago
I have seen digital audio gear that solved firmware transfer like that. You basically go to a website on your phone and it flickers the screen and you hold it in front of a photosensitive bit of the device that needs to be updated for 20 seconds and done.

If your firmware is small enough to fit that model, it isn't a bad variant. Beats downloading a file, transferring it to a USB drive, sticking that in,...

_joel [3 hidden]5 mins ago
If only they had a clean digital way of getting data into the system.
inigyou [3 hidden]5 mins ago
Listen, you do not want your firmware to be updated by playing a FLAC file.
_joel [3 hidden]5 mins ago
FLAC? That shows some degree of advanced technology that I would assume the original device in question does not have.
inigyou [3 hidden]5 mins ago
It's "digital audio gear". It receives uncompressed PCM, which could come from your computer playing a FLAC.
_joel [3 hidden]5 mins ago
right, so a very specific case of playing FLAC via an external device, not on the system itself. Ok, that makes more sense. Still don't get what the issue is. Put the device in the correct mode and play from whatever digital input or playback (CD, DAT etc) the system already has.
inigyou [3 hidden]5 mins ago
Okay, if there's a button you have to hold to enable firmware update then it's more sensible.

Probably still wouldn't want to use digital audio input though. Although it's a perfect digital stream, it's been processed in analog-like ways before it gets to the device - such as filtering and volume changes. So you'd still want to use a modem protocol over it.

sunrunner [3 hidden]5 mins ago
Especially if it's a recording of Rhythm Nation.
krautsauer [3 hidden]5 mins ago
That'd be a few 100 bytes at best… what firmware fits into that?
account42 [3 hidden]5 mins ago
100 bytes in 20 seconds would only be 40 bps. Surely you can do better than that even using only one bit symbols (off/on).
utopiah [3 hidden]5 mins ago
Indeed encryption should not be hard yet which situation do you have in mind where simply pulling away the emitting phone would not be enough? AFAIK the normal scenario is two persons in the same physical space so I am not sure what encryption would add.
elric [3 hidden]5 mins ago
Other cameras could presumably be snooping on the data transfer.
inigyou [3 hidden]5 mins ago
They could, you're right.

Usability is important though. If you have to type in a bunch of hex digits before sending, it won't be used.

krautsauer [3 hidden]5 mins ago
Have a look at minimodem. In short: yes, but it's slow and annoying.
bschwindHN [3 hidden]5 mins ago
Encryption is a toilet paper roll.
kooi [3 hidden]5 mins ago
As someone who has implemented acoustic modems (underwater comms)... yes, yes very annoying. It's like a demonic dolphin.

Bringing it into the ultra sonic band would help.

inigyou [3 hidden]5 mins ago
Fun fact about underwater acoustic data transfer and sonar: the extreme volumes used (130dB+) kill fish in the area.
XorNot [3 hidden]5 mins ago
Fish also substantially limit the range, so no one comes out happy.
ErroneousBosh [3 hidden]5 mins ago
You can do PSK31 across a room with just audio, but it is a kind of annoying noise after a while.

It's interesting that you learn to recognise patterns in the burbling tones after a while. "CQ CQ CQ" is very distinctive and after a while you can hear your own callsign in it. I guess it's not that different to very fast Morse.

myself248 [3 hidden]5 mins ago
Or SSTV! I recall a demo years ago where someone had SSTV running between a speaker at the focus of a small dish, across to the room to another small dish with a microphone...
felooboolooomba [3 hidden]5 mins ago
Is there a way to negotiate ongoing FPS? I was sending at 60 but only receiving at 40. When I changed TX to 30 the speed went though the roof! I better call a builder.

Otherwise ridiculously cool project. May author's pillow always be cool on both sides.

thisisauserid [3 hidden]5 mins ago
I visual reminder that perfect compression is indistinguishable from random noise.
inigyou [3 hidden]5 mins ago
It is. Though there's almost always some uncompressed header so you know how to decompress it.
kooi [3 hidden]5 mins ago
Fountain codes are so lit