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

news-heli2

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.

An atmega328-based radioteletype XY scope display

[Jack] tipped us about a Crossed Bananas Display (CBD) he just designed. A CBD is a tuning aid for frequency-shift keyed (FSK) modes and is basically an oscilloscope in X-Y mode. At one time, radioteletype operators used binary FSK to transmit text over radio waves. In this scheme, the “1” is called the mark frequency and the “0” is called the space frequency. If both frequencies were perfectly tuned (correct phase) the resulting display would look like the one shown above, explaining the origin of the “crossed banana” name.

The build is based on an ATmega328 and a 1.8″ ST7735R display which has a 128×160 resolution. The MC33204PG operational amplifier is used in conjunction with a potentiometer to scale the input in the microcontroller ADC’s range. Another potentiometer sets the refresh rate of the graph. The whole project is enclosed in a painted cast-aluminium bud box and all the sources for this project can be found here.

Rebuilding the electronics in a remote control car

Inspired by the many autonomous rovers such as Curiosity and the self-driving Google car, [Rohit] decided to build his own by taking an off-the-shelf remote control car and adding his own electronics. Unfortunately, he couldn’t find the datasheet for the chip used to receive radio signals and drive the motors, so he ended up building his own electronics and putting them in the car.

[Rohit]’s car – the Thunder Rumbler RC Car – is driven by applying power to two motors. This is an easy system to control, as only two channels are needed to make the car go forward, left, right, or backwards. To drive these two motors, [Rohit] found an SN754410 quadruple half-H bridge driver chip lying in his box of assorted electronic components. Thanks to a helpful instructable, this chip was easily controlled with an Arduino.

That left the problem of sending a wireless signal to the Arduino. [Rohit] accomplished this by relying on an Android phone to provide the remote control.

[Rohit] whipped up a small program running on his desktop that allows him to send ‘L’, ‘R’, ‘U’, or ‘D’ to the Android phone to dictate if the car should go left, right, forward, or reverse. The Android phone receives these commands via the Internet and sends an audio signal through the headphone port. This audio signal is connected to two analog pins of the Arduino. With a little bit of software and a bit of reading up on frequency shift keying, [Rohit] was able to make his car move in any direction.

Even though [Rohit] realized his goal of controlling a remote control car on his own terms, the build is far from done. He plans on adding some ultrasonic sensors and using the Android’s camera for object detection.