The sound of MAVLink

3689523735?profile=original

 

The video below shows an Arduino Nano connected to an AD9835 breakout board, filmed by an 808 #16 mini-camera. It's cropped to remove my chaotic desktop if anyone notices that the resolution doesn't match the default for the 808 #16 cam.

(You might want to lower your audio settings before playing)

Well that's nice and all, but what's that noise?

The AD9835 is a sine wave generator and its output has been connected to the camera (replacing its mic).
So the noise in the video represents digital data, sent using Audio frequency-shift keying (AFSK) modulation at a rate of 300 bits per second.

More specifically it uses Bell 202 AFSK tones, where 1200/2200 Hz represents a mark and a space respectively.

It does remind me of the sweet noise my old US Robotics 14,400 modem used to make, but what's the purpose of all this other than the nostalgia?

Well, the data on the audio channel corresponds to MAVLink messages, wrapped inside High-Level Data Link Control (HDLC) frames. Since I currently have no real MAVLink flight controller, it's just three different messages containing dummy data (HEARTBEAT, BATTERY_STATUS and VFR_HUD) repeating in the video.

The end goal of this project is an environment which allows me to overlay flight data on the video when viewing flight recordings back at home.

So what's next for me?

  • Populate the BATTERY_STATUS message with actual data from a FLVS-01 voltage sensor and test the current prototype in flight
  • Get some hardware which includes an altimeter and a magnetometer
    (to generate some more interesting MAVLink messages!)
  • Continue working on the OSD overlay for viewing videos

Ideas for the future:

  • Test if the data rate can be increased (1200 bps?)
  • Test if AFSK data can be reliably sent over standard FPV equipment (which I don't have)
  • Make some reusable UI components for the Mavelous project (an open source browser-based GCS)

Hardware links:
Arduino Nano
Breakout Board for AD9835 Signal Generator (retired as of a couple of weeks ago)
808 #16 Camera

Software links:

MAVLink protocol and messages
HDLC Framing
Mavelous

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • Yes, I've written code for decoding the signal.

    The first image in the post actually shows packets decoded from the video when I played it from YouTube. The decoder is a C# application which runs a local web-socket server, pushing these MAVLink messages to a browser-based viewer.

    I haven't really examined what kind of bit error rate I can expect. But at 300 baud and a physical connection to the camera it feels like it should be very robust.

    Using a A/V Tx/Rx link with some kind of A/V-recorder would probably be a totally different story however.

  • Developer

    Nice idea!

    Have you successfully decoded the signal? If so, what sort of bit error rate do you get?

    Cheers, Tridge

  • Developer

    Nice idea!

    Have you successfully decoded the signal? If so, what sort of bit error rate do you get?

    Cheers, Tridge

This reply was deleted.