wiki:HackingIRDongle

Hacking IR Dongle

Hacking IR Dongle Audio Jack version

The Audio Jack IR Dongle is produced by UPRtek, and they have published their official Android App and iOS App

They use their own chip to process the audio wave. There's no way to figure out what's inside.

However, we only need to follow the same rules of the IR remote version, with minor change, and it should work.

Each command consists of 31 bits (including the leading 2 special period bits), the structure is explained in detail on our instructables

There are only 2 differences in the Audio Jack version:

  • The remote version use {HIGH=0.715ms, LOW=0.759ms} to be "1", { HIGH =0.377ms, LOW=0.422ms} to be "0", but the Audio version use { HIGH=0.55ms, LOW=1.01ms} to be "1", {HIGH = 0.25ms, LOW=0.56ms} to be "0".
  • The remote version use 38kHz as carrier, the Audio version use 21kHz as carrier.

Remember there should be some space between two commands, from 30ms to 80ms.

Hack Android app i-helicopter with Audacity

This is just a guide.

  • Download i-helicopter from play store.
  • Use a dual head audio cable to connect audio jack of android device to line-in/microphone in laptop, run the app, turn volume up to highest, and move the throttle to a middle point.
  • Start recording with Audacity. The left channel is the IR code without carrier, the right channel is IR code with carrier.

IR code in audio/wave format is pretty easy to understand

  • small volume

  • middle volume

  • MAX Volume

You can tell from the pictures, that the signal is originally a sine wave. With volume going up, the signal gets cut off and then becomes a square wave, which is the IR Code we want to send out. (that's why we need to turn the volume up to max to use the IR dongle).

The red part is the two starting bit. The yellow part is the 29 bit control code (not fully displayed in picture).

There are only two different period in the sine wave, as marked in the first picture(yellow on top). The bigger one has a period of 1.6ms, the small one has a period of 0.8ms ,give or take. These two period corresponding to the two different bit in the instructables (7 and 4).

Notice the green part in picture Small_volume.png. The starting bit is different. These two starting bit have two period for the upper part and lower part of sine wave. The upper part corresponding to "HIGH" in square wave, the lower part corresponding to "LOW" in square wave.

The protocol is exactly the same with the remote version, just substitute "1" and "0" with 1.6ms period sine wave and 0.8ms period sine wave.

compare 1st time record and 2nd time record

Bottom is 1st time, top is second time.

use octave to generate audio command

Top:44100Hz(when use osc to watch the output of this, it looks like Bottom part in this picture). Bottom:960000Hz (which is not possible for soundcard to generate).

1 Download Octave download GNU octave here

2 Download Octave Code from git.

3 Follow instruction in read.me file.

Last modified 6 years ago Last modified on 12/25/12 12:14:10