Pea-Whistle Steganography

Do you see the patterns everywhere around you? No? Look closer. Still no? Look again. OK, maybe there’s nothing there.

[Oona Räisänen] hears signals and then takes them apart. And even when there’s nothing there, she’s thinking “what if they were?” Case in point: could one hypothetically transmit coded information in the trilling of a referee’s whistle at the start of a soccer match?

acme-spektriTo you, the rapid pitch changes made by the little ball that’s inside a ref’s whistle sounds like “trilling” or “warbling” or something. To [Oona], it sounds like frequency-shift key (FSK) modulation. Could you make a non-random trilling, then, that would sound like a normal whistle?

Her perl script says yes. It takes the data you want to send, encodes it up as 100 baud FSK, smoothes it out, adds some noise and additional harmonics, and wraps it up in an audio file. There’s even a couple of sync bytes at the front, and then a byte for packet size. Standard pea-whistle protocol (PWP), naturally. If you listen really closely to the samples, you can tell which contains data, but it’s a really good match. Cool!

[Oona] has graced our pages before, naturally. From this beautiful infographic tracing out a dial-up modem handshake to her work reversing her local bus stop information signs or decoding this strange sound emitted by a news helicopter, She’s full of curiosity and good ideas — a hacker’s hacker. Her talk on the bus stop work is inspirational.. She’s one of our secret heroes!

See Who’s Calling with Caller Pi-D

One of the hardest things in life is watching your parents grow old. As their senses fail, the simplest things become difficult or even impossible for them to do.

[kjepper]’s mom is slowly losing her sight. As a result, it’s hard for her to see things like the readout on the caller ID. Sure, there are plenty of units and phones she could get that have text-to-speech capabilities, but the audio on those things is usually pretty garbled. And yes, a smartphone can natively display a picture of the person calling, but [kjepper]’s mom isn’t technologically savvy and doesn’t need everything else that comes with a smartphone. What she needs is a really simple interface which makes it clear who’s calling.

Initially, [kjepper] tried to capture the caller ID data using only a USB modem. But for whatever reason, it didn’t work until he added an FSKDTMF converter between the modem and the Pi. He wrote some Node.js in order to communicate with the Pi and send the information to the screen, which can display up to four calls at once.  To make a mom-friendly interface, he stripped an old optical mouse down to the scroll wheel and encased it in wood. Mom can spin the wheel to wake the system up from standby, and click it to mark the calls as read. Now whenever Aunt Judy calls the landline, it’s immediately obvious that it’s her and not some telemarketer.

[via r/DIY]

Direct Digital Synthesis (DDS) Explained by [Bil Herd]

One of the acronyms you may hear thrown around is DDS which stands for Direct Digital Synthesis. DDS can be as simple as taking a digital value — a collection of ones and zeroes — and processing it through a Digital to Analog Converter (DAC) circuit. For example, if the digital source is the output of a counter that counts up to a maximum value and resets then the output of the DAC would be a ramp (analog signal) that increases in voltage until it resets back to its starting voltage.

This concept can be very useful for creating signals for use in a project or as a poor-man’s version of a signal or function generator. With this in mind I set out here to demonstrate some basic waveforms using programmable logic for flexibility, and a small collection of resistors to act as a cheap DAC. In the end I will also demonstrate an off-the-shelf and inexpensive DDS chip that can be used with any of the popular micro-controller boards available that support SPI serial communication.

All of the topics covered in the video are also discussed further after the break.

Continue reading “Direct Digital Synthesis (DDS) Explained by [Bil Herd]”

Retrotechtacular: How to Teletypewriter

This week, you’re going to learn the ins and outs of the AN/GRC-46 thanks to this army training film from 1963. What is the AN/GRC-46, you ask? Why it’s a complete mobile-tactical sheltered radio-teletypewriter rig capable of CW, voice, and teletype transmission.

The film covers the components that make up the AN/GRC-46, their functions, the capabilities of the system, and proper operation procedures. There’s a lot going on in the tiny 1400lb. steel shelter, so each piece will be introduced from the ground up.

You’ll become familiar with the voltage distribution system and the AN/GRC-46’s included accessories. This introduction will be followed by a short course in RF signal transmission and the Frequency-Shift Keying (FSK) that is performed by the modulator. The ranges of both the transmitter and receiver are discussed, along with the capabilities mentioned before: CW operation using the keyer, voice operation, teletype operation, and reperforation of teletype tape.

Finally, you’ll observe a seasoned operator make contact and send a teletype message with movements so careful and deliberate that they border on mesmerizing. When he’s not sending messages or taking long walks on the beach, he can usually be found cleaning and/or lubricating the transmitter filter.

Continue reading “Retrotechtacular: How to Teletypewriter”

Open Source Power Line Communication

Power Line Communication Filtering


Since we all have wires running throughout our houses to provide mains power, there’s a number of devices that piggyback on mains lines for communication. For his thesis project, [Haris Andrianakis] developed his own power line communication system.

The basic principle of the system is to inject a signal onto the power lines at a much higher frequency than the 50 or 60 Hz of the AC power itself. Using both active and passive filters, the signal can be separated from the AC power and decoded. This system uses frequency-shift keying to encode data. This part is done by a ST7540 modem that’s designed for power line applications. The modem is controlled over SPI by an ATmega168 microcontroller.

[Haris]’ write up goes into detail about some of the challenges he faced, and how to protect the device from the high voltages present. The final result is a remote display for a weigh scale, which communicates over the power line. Schematics, PCB layout, and software are all available.

Decoding News Helicopter Signals on YouTube


A serendipitous YouTube video recommendation led [Oona] to a raw copy of a news helicopter car chase video. While watching the video she noticed an odd sound playing from her left speaker. That was all it took to put [Oona] on the hunt. Decoding mystery signals is a bit of an obsession for her. We last saw [Oona] decoding radio signals for bus stop displays. She isolated the left audio channel and sent it through baudline software, which helped her determine it was a binary frequency shift keyed (BFSK) signal. A bit more work with SoX, and she had a 1200 baud bit stream.

Opening up the decoded file in a hex editor revealed the data. Packets were 47 bytes each. Most of the data packets was static. However, thee groups of bytes continuously changed. [Oona] decoded these numbers as latitude and longitude, and plotted the resulting data on Google Earth. Plotting her data against the position of the car in the video revealed a match. [Oona] had a complete track of the news helicopter as it followed the car. The telemetry data is in 7-bit Bell 202 ASCII, and is most likely part of an Interruptible Foldback (IFB) system used by the helicopter news crew and the studio producers. Click past the break for the YouTube video that started this all.

Continue reading “Decoding News Helicopter Signals on YouTube”

Sniffing Data from Radio-Controlled Bus Stop Displays

A few weeks ago in Finland [Oona] discovered a radio data stream centered around 76KHz in a FM broadcast and she recently managed to decode it. This 16,000bps stream uses level-controlled minimum-shift keying (L-MSK) which detection can be quite tricky to implement. She therefore decoded the stream by treating the received signal as non-coherent binary FSK, which as a side effect increased the bit error probability. [Oona] then understood that the stream she was getting was the data broadcast by Helsinky buses to the nearby bus stop timetable displays. She even got lucky when she observed a display stuck in the middle of its bootup sequence, displaying a version string. This revealed that the system is called IBus and made by the Swedish company Axentia. However their website didn’t provide the specs for their proprietary protocol. After many hours of sniffing and coding, [Oona] successfully implemented the five layer protocol stack in Perl and can now read the arrival times of the nearby buses from her apartment.