[HN Gopher] Minimodem - general-purpose software audio FSK modem
       ___________________________________________________________________
        
       Minimodem - general-purpose software audio FSK modem
        
       Author : marcodiego
       Score  : 116 points
       Date   : 2022-04-02 15:21 UTC (7 hours ago)
        
 (HTM) web link (www.whence.com)
 (TXT) w3m dump (www.whence.com)
        
       | xchip wrote:
       | I am proud I contributed to this repo with a PR that substitutes
       | the FFT with a goertzel filter, it simplifies things a lot.
        
       | brian-armstrong wrote:
       | If we're posting audio modems, here's another one I've
       | contributed to, Quiet Modem. Haven't contributed to it much
       | lately but happy to answer questions about it.
       | 
       | https://github.com/quiet
        
       | [deleted]
        
       | JKCalhoun wrote:
       | I would so love to have a terminal+modem for my mobile phone.
        
       | ryeguy_24 wrote:
       | Funny that this is top of HN right. Spent a ton of time in this
       | repo lately trying to understand how modems work. Fascinating how
       | we can use waves to send data (audio or rf). So much of the world
       | relies on these modulation/demodulation approaches.
       | 
       | Also, it was only a few days ago I finally learned that modem is
       | short for MOdulator DEModulator. My mind was blown.
        
         | oaiey wrote:
         | The blessing of a recent birth that you stand on the shoulders
         | of giants :)
        
         | ttyprintk wrote:
         | You might be interested to know about the Morse keying
         | requirement for Ham radio licenses before the early 90s.
         | 
         | I think ham radio licenses lost popularity between then and
         | approx 2018. Demonstrating fluency with Morse was necessary for
         | a license long ago. Nowadays, there's a renewal of interest but
         | many new Ham operators can write a Morse codec faster than they
         | can learn fluency by hand. I think the requirement for
         | demonstrating Morse by hand in order to obtain a HF license
         | will be dropped if it isn't already.
        
           | Nux wrote:
           | Not required in UK afaik.
        
           | bittercynic wrote:
           | The Morse requirement has been dropped for all classes of
           | license (in the USA): http://arrl.org/learning-morse-code
        
             | ttyprintk wrote:
             | Thanks, I guess I'm living in the past
        
           | inamberclad wrote:
           | Hah, I had to learn the most basic understanding of Morse for
           | my private pilot certificate. When I finally got to the
           | checkride and had to fly off a VOR radial I asked the
           | examiner if he wanted me to identify the station (by the 3
           | letter Morse code broadcast) and he said nah.
        
           | madengr wrote:
        
           | nullc wrote:
           | > I think the requirement for demonstrating Morse by hand in
           | order to obtain a HF license will be dropped if it isn't
           | already
           | 
           | The Morse requirement was dropped by the FCC for all license
           | classes back in 2006.
           | 
           | But even with SDR making radio experimentation easier and
           | more rewarding than ever ham radio seems to be continuing its
           | slow decline and the average age of operations continues to
           | rise... and we continue to lose spectrum (e.g. we just lost
           | the 9cm band).
        
       | ggerganov wrote:
       | If you are interested in transmitting data over sound between
       | airgapped devices, make sure to also checkout ggwave [0]. I've
       | been working on this library on and off during the past year in
       | my free time. I focused on making a FSK protocol that is robust
       | in noisy environments at the cost of low bandwidth. Found some
       | fun applications in various hobby projects.
       | 
       | [0] https://github.com/ggerganov/ggwave
        
         | westurner wrote:
         | Could this be used to embed e.g. the sports "game clock" clock
         | time(s) in broadcast TV/audio/video streams; in order to
         | synchronize an air-gapped device next to the media signal
         | reproduction unit?
         | 
         | For example at a grille during the game.
         | 
         | FWIU, e.g. Chromecast have ultrasonic pairing.
        
           | ggerganov wrote:
           | Yes absolutely! (Edit: or maybe not :-) see sibling comment
           | for more info)
           | 
           | Actually, the "Waver" youtube video linked at the top of the
           | README has an embedded ultrasound transmission at around
           | 0:36. I can for example decode the message on my iPhone by
           | simply running the Waver app and playing the video on my PC.
           | 
           | Some people have already done some work for AV sync in the
           | issues of the project [0].
           | 
           | [0] https://github.com/ggerganov/ggwave/issues/46
        
           | throwaheyy wrote:
           | Digital broadcasting adds significant latency so it would be
           | in sync with the TV but still out of sync with the actual
           | game (and other broadcast receivers).
           | 
           | The same issue affects radio time signal (e.g.
           | https://en.wikipedia.org/wiki/Greenwich_Time_Signal, last
           | beep is the exact top of the hour), so some broadcasters will
           | no longer play them on internet streams/digital radio, rather
           | than be inaccurate.
        
         | marcodiego wrote:
         | Please, submit it to f-droid!
        
         | sydthrowaway wrote:
         | Is it possible to use ML to have greater bandwidth at lower
         | SNR?
        
           | ggerganov wrote:
           | Probably, but I suppose you would need lots of training data
           | in various surrounding conditions and hardware (mic,
           | speakers).
           | 
           | I wanted to experiment with using a mic-array in order to
           | improve the SNR. Got a 4 Mic ReSpeaker [0] some time ago, but
           | haven't played with it yet. My expectation is that capturing
           | the audio simultaneously with multiple mics should reduce the
           | noise and thus improve the robustness of the transmission
           | allowing to increase the bandwidth.
           | 
           | [0] https://respeaker.io/4_mic_array/
        
           | danuker wrote:
           | I'd imagine training data would be the limiting factor.
        
       | flyinghamster wrote:
       | If you're looking for a library to do FSK (or a variety of other
       | telephony-related protocols), SpanDSP is worth looking into as
       | well. I've used it to decode some radio-based telemetry that uses
       | Bell 202 for data transmission.
       | 
       | https://github.com/freeswitch/spandsp
        
       | squarefoot wrote:
       | > Minimodem can be used to transfer data between nearby computers
       | using an audio cable (or just via sound waves), or between remote
       | computers using radio, telephone, or another audio communications
       | medium.
       | 
       | It should be noted that any signal that can be modulated and
       | demodulated can be used to exchange information, so either
       | visible or IR light, ultra/infra sound etc. It's just a matter of
       | building the right hardware interface.
        
         | ryeguy_24 wrote:
         | Do the audio cables need to have crossed wiring? Microphone
         | wire of one connecting to the speaker wire of another?
        
           | squarefoot wrote:
           | Yes, but beware that directly connecting a speaker output to
           | a microphone input can be dangerous for the input port.
           | Computer headphones or small speakers outputs are generally
           | safe because of their low power, but anything that can
           | directly drive more powerful speakers can damage a microphone
           | or line input if directly connected without any attenuation
           | network in between.
        
           | ttyprintk wrote:
           | If we're talking analog, those cables usually have capacitors
           | to limit DC and a stereo-mixing resistor because of the
           | headphone impedance (KOhms) and microphone impedance (20-200
           | Ohms).
        
       | loloquwowndueo wrote:
       | Minimodem was originally created to be able to get debugging
       | information out of a computer with no network connectivity - if
       | audio is working, one can transmit kernel and network driver
       | debug dumps and decode them on another computer.
        
         | marcodiego wrote:
         | I think I remember an old patch that would replay the lines of
         | a kernel panic using morse code on the keyboard lights.
        
         | xphos wrote:
         | The ingenuity of computer hackers is literally on another plane
         | of existence some times. It's these kind of ideas which make me
         | proud to do computer science
        
       ___________________________________________________________________
       (page generated 2022-04-02 23:00 UTC)