Down the Rabbit Hole and Back Out Again: Serial Over Headphone Jack

[ttsiodras] tells an epic tale of getting a custom Debian kernel installed on an Asus MemoPAD (ME103K) tablet. Skipping to the end of the saga, he discovers what looks like serial data coming out on the headphone jack when the system boots, but the signal was so distorted that he couldn’t simply interpret it. The solution turns out to be attaching a level-converter chip.

waw6j_rotated_thumbnail

A level converter is a non-inverting amplifier, usually with a Schmitt trigger for immunity against noise. In this case, it acts like a “binarizer” — outputting a high voltage when the input rises above a threshold, and a low when it drops below. It’s the right part when you need to clean up a messy digital signal, and in this case works just fine because the capacitive distortion effects slow down both the leading and trailing edges of the signal, keeping the serial data’s timing intact.

That was the spoiler. If you want to read up on putting a custom Linux on an Android device, check out [ttsiodras]’s first post where he backs the machine up, and the second where he gets his custom kernel up and running. If you’re ever faced with an Android tablet that hasn’t been owned yet, or if you just have a DIY streak, this should help you get started.

Using the audio jack for serial is actually not uncommon, and discovering a serial terminal that listens at boot time is our favorite way to wedge a Linux OS into odd devices. So when you see a funny, distorted signal coming out at 115,200 baud, take a moment to clean its edges up and see what you’ve got.

14 thoughts on “Down the Rabbit Hole and Back Out Again: Serial Over Headphone Jack

  1. Nice work, know I’ll want to do this at some point. … lightbulb just went off in my head about some devices I noticed had a “glitch” of static when powering up and you’ve already got the phones on.

      1. There isn’t a “right” use for a 3.5mm jack, it’s just a connector, like DIN plugs, “RCA” phono plugs, D connectors, molexes, gotta be very sure of your context and application before you go just plugging something in like a n00b.

  2. Actually serial over audio is common for things like portable Ham radios, they connect and send data via the audio plug for frequency data and the like. So one way to program one – you plug the audio into the sound card on a PC.

  3. Jawbone UP activity tracker synchronizes with smartphone using 4-pole audio jack. It can be synced wih PC over USB for firmware updates using the same connector, which is also used for charging. Unfortunately mine isn’t, because flex PCB that connects button and LEDs to the rest of electronics simply broke, and I can’t solder some wires to bypass it, because it’s too small, and I don’t have microscope or even loupe…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s