Playing music with computer-emitted interference

RFI-Sony-7600GSWLing Post reader, Chris Smolinski, writes:

Here’s my Mac Book Pro (2010 model) playing Mary Had A Little Lamb over the radio, by modulating the RFI (Radio Frequency Interference) produced by it and other computers. As picked up on a Sony 7600G receiver. I found the best reception was on the long wave band, although I could continue to hear it well above the AM (medium wave) band, past 1700 kHz. The signal was pretty much everywhere, no matter where I tuned, in 1 kHz steps.

Picking up radio emissions from computers is one method that can be used to spy on them.

I used the source code available here: https://github.com/fulldecent/system-bus-radio

If you want to see some radio related software I’ve written, please visit http://www.blackcatsystems.com

Click here to view on YouTube.

That is fascinating, Chris. While I was well aware that computers and mobile devices (of all stripes) produce RFI, I had no idea that it could be used for spying. I love how you’ve manipulated this interference to play a tune! What a creative hack!

Spread the radio love

4 thoughts on “Playing music with computer-emitted interference

  1. John Fallows

    In the early days of PC’s (1970’s) this technique was used to create sound effects for computer games. Just put your AM radio next to the S-100 bus computer and turn up the volume. This was way before sound cards!

    Reply
  2. rcxb

    It’s much easier than that. Tune your AM/SW radio to an empty spot on the dial at about 600kHz (YMMV), set it right next to your monitor (CRT or LCD both work) then play this YouTube video full-screen:

    http://youtu.be/DlVM9xqGKx8?t=24s

    No luck playing that video on my smart phone.

    If you want to install the software on your computer, you can roughly choose the frequency used, and it will also play ANY MP3 music you choose.

    See: http://hackaday.com/2005/12/25/tempest-for-eliza/

    But this is a Unix/Linux program, so Windows users are mostly out of luck… It might be possible to install Cygwin, including the X11 server, compilers, etc., and get it working, but those not familiar with Unix would have quite the steep learning curve to get that all working.

    Reply
  3. Edward

    Good demonstration! computers are natural QRM generators. That is why I am reserved about SDR and like to hear reports about performance and where they have internally generate spurious signals. Some of the pre-SDR digital radios with phase locked loops generate copious amounts of internal QRM.

    Reply
  4. DL4NO

    This is a nice example of a triple approach in the time, frequency and logical domains:

    * A computer uses quite irregular (i.e. non-repetitive) pulses which translates to wide-band, semi “white” noise.

    * The program modulates this noise with something repetitive.

    Traditionally radio amateurs mostly thought in the “frequency domain” with therms like frequency, spectrum, bandwidth and so on.

    The time domain was available for most of us only for quite slow activities. My first scope had a bandwidth of up to 10 MHz which ment anything above 1 MHz was more or less “smoothed out”. For example you cannot measure the RF voltages in a SW transmitter with such an instrument.

    But even in the audio range we sometimes revert to the frequency domain with terms like harmonic distortion.

    The “logic domain” is relatively new. A long time ago, when I built my computers from scratch, I also combined the logic and time domains when I wrote an infinite loop to find an error in the circuitry.

    In some symbolized assembler code:

    loop: store
    read
    jump to loop

    The “store” command creates a “write strobe” signal that can be used to trigger the scope.

    The “read” command tries to access a memory cell that was not reachable.

    This way I could troubleshoot the circuitry with the scope.

    But do not try this simple approach on any modern processor chip: Even the 8086 used lots of tricks to speed up like “out-of-sequence” memory accesses when it read the next command in sequence while the last command was still being executed.

    Today such a simple program would result in no external activity at all as everything would happen within the cache memory of the processor chip.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.