Jumping Jack Flash weblog

World’s cheapest remote control replicator: just 1$ !

Posted in hardware, Infrarossi by jumpjack on 20 maggio 2008

===>> New updated post

DOWNLOAD Windows software

You won’t need anymore complex circuits & complex software to sample commands from your remote control and to replicate them; all you need is just two standard IR led, which you can afford for about 0.50 $ each, or maybe you can extract from a couple of old remotes.

This method was tested with a VIA AC’97 audio card; please report if you have any success with different cards.

What you need:

– 1 spare headphone cable (0$ if you already have it, 10$ if you need a new one)

– 2 IR led (0$ if you have a couple of old remote controls, 1$ if you need to buy them)

– audio recorder software, e.g. Audacity, opensource and multiplatform (Windows/Linux)

What to do:

1) Build the receiver

2) Sample the remote control

3) Edit the resulting waveforms

4) Build the emitter

5) “Replay” the waveforms:

a – Plug the emitter into HEADPHONE output of your audio card

b – Position the two leds just in front of your device

c – Press PLAY in Audacity: your device should react to the command you previously sampled.

NOTES:

1 – For unknown reason, playing the resulting signal in Audacity works fine to control my device; but if I save the signal into a WAV file and reload it in Audacity, playing it results in… nothing! Any explanation for this?!? FIXED: it was due to wrong carrier frequency of rebuilt signal, which must be HALF of the needed carrier frequency! (19 KHz for 38 KHz, 18 KHz for 36 KHz…)

2 – You can’t save the signal in OGG or MP3 format, because this format distort the original signal

Please report results of your experiments! Good or bad, please just report and share!😉

References and credits at bottom of this page:
http://www.planetmobile.it/jumpjack/LedRem/
Available patents (not mine):
Infrared generator from audio signal source
IR receiver using IR transmitting diode


 

Buy a ready-made device:

http://www.irdroid.com/blog/

36 Risposte

Subscribe to comments with RSS.

  1. […] 4) Add an IR led to your recipe, and you obtain an SMS-controlled remote-control. […]

  2. […] look at this post to know how to: – build an IR receiver for the PC – sample a remote control – (create a WAV file […]

  3. Menu Inicio said, on 13 luglio 2008 at 3:28

    I’ve tried this and it worked great.
    I have one question:
    Can I save this as a WAV file or something so I can use an iPod for example to reproduce de signal?

    PS:Sorry for my english

  4. jumpjack said, on 14 luglio 2008 at 19:00

    Sure you can use the WAV files on your IPOD: my idea actually started from a similar project… to turn IPOD into remote!
    But please tell me if yout Ipod accepts these files, or if they must be in a different format.
    (number of channels, sample rate, bits per sample, bytes per sample).

  5. s5vi said, on 28 luglio 2008 at 7:23

    I tried it and finally works correctly.
    Some remarks:
    1. I must invert recorded signal.
    2. Transmitter cannot work without a simple amplifier.
    These issues due to my soundcard (Via on my mobo)
    Recording with Ir led is US patented:
    http://www.patentstorm.us/patents/6701091/description.html

  6. jumpjack said, on 28 luglio 2008 at 7:43

    S5vi, thanks for your feedback.
    Point 1) is a known issue, that’s way I updated my RAW2LIRC program in such a way it can “flip” the signal if required. Anyway, you can invert the sampling led to avoid this.
    Point 2) is quite strange; I have a VIA AC’97 …

    About patents: I knew using IR to play sounds was patented, not that recording IR through audio was too; anyway, anybody can use any patented technology as long as he does not sell it. That’s why patents are freely available online:
    http://www.freepatentsonline.com/6931231.html

    I should have added to credits, indeed…
    I will, together with your link.

  7. Ben Hoskins said, on 16 aprile 2009 at 19:47

    Hi, I’ve a really dumb question, but I’m more software than hardware…

    I’ve looked on ebay for “IR LED” to gve this a blast, and I’ve got various specs like below:
    Size: 5mm
    Forward Voltage (V) : 1.5~1.6
    Forward Current (mA): 60mA Continuous, 120mA peak for 10% Pulse Width
    wavelength (nm):850
    View Angle: 15-30 degree.

    Does any of this, like the wavelength, or forward current, matter?
    Will this mean that the range of the built remote will be affected?

    fyi, my ‘big idea’ is to write a universal remote program to run on my kohjinsha UMPC, where you can associate buttons with sound files, and opensource it so I can:
    1) Replace the 5 remotes I have
    2) Add support into the mediacentre i’ve written

    Cheers!

    • jumpjack said, on 16 aprile 2009 at 20:30

      I have no I idea, I bought my leds in a store, just asking for “IR LEDs”.
      Don’t you have an old remote no more working/used to get the LED from?😉

  8. Ben Hoskins said, on 16 aprile 2009 at 20:47

    Hey,
    Nope no spare remotes…
    If anything, I keep on losing remotes, which is why a computer based remote is a good idea🙂 (I hopefully won’t lose my PC any time soon!)

    I’ll give it a try with the ebay bought LED’s (if anything I’ll only lose £1)

    Cheers!

    p.s. the instructions have been very useful: i read the ‘How-To Turn your iPod in to a Universal Infrared Remote Control’ on engadget, then was looking to buy the Griffin IR device, which looks like isn’t manufactured any more.
    This article has made it possible!

  9. […] read a really cool (read geeky) article here where this dude made a universal remote control for $1 from a set of headphones and 3 IR […]

  10. iwan said, on 7 agosto 2009 at 20:14

    i’ve try this, and its working fine.
    i tried few more condition, with one or two LED and not used the ground cable, its still can working fine.

    the question is how to export WAV audio file for playing in my PSP.
    the AUDIO format only working in sample bit rate 96000Hz, thats can’t be save as MP3.
    WAV with 96000hz bitrate can played on windows media player, but can’t recognize on my PSP

    sory my english not good

    • jumpjack said, on 7 agosto 2009 at 21:45

      MP£ wouldn’t work anyway, as it is a lossy compressione method which cuts just the needed frequency!
      you should figure out if any WAV player is available for PSP, as WAV is the only uncompressed audio format, as far as I know; any compressd format wouldn’t do the trick.
      THese FAQ appear to suggest that PSP does suport WAV format:
      http://psp-download-center.com/faq.php

      You could try this player:
      http://forums.qj.net/psp-development-forum/103679-release-wav-player-psp.html

      I think also lower frequency than 96000 Hz should work (try more typical 44100 Hz for example).

      Please let me know if you do succeed in using PSP as a remote!
      And, in case it works, some pictures would be cool!

  11. sharik said, on 12 giugno 2010 at 13:06

    hi,

    i was very excited to find your guide !

    i tried it to turn the TV ON/OFF, followed every step in your guide.
    i used audacity.
    recording was successful
    converted “by hand” according to your instructions
    when i play it (from the computer) using the emitter (2 leds with polarity reversed to one another), it does show the LED’s blinking bright in my camera, but when i bring it infront of the TV and play it does not turn on/off the tv…… i put it 1 meter away, and then closer and closer and closer to 5 Centimeters away, just didnt want to work.

    i looked on 2 bursts consecutive burst sequences, and they looked the same so i converted only one of the bursts sequance.

    i tried using a Sin wave, and a Square wave, just didnt work…

    what am i doing wrong?
    Can i show you my Audacity project files (that has all the recording and the conversion) ? if so where can i post it ?

    thanks

    • jumpjack said, on 13 giugno 2010 at 17:13

      please just send me your wav files (both original and hand-made), not the audacity project (it’s too large).
      I guess you inverted the input led, anyway I have to take a look to your sampled signal.
      please send to jumpjack at libero dot it .

  12. maurits said, on 22 ottobre 2010 at 16:27

    it won´t work

    1. record with audacity
    2. use RAWtoLIRC
    3. use LIRCtoledrem
    4. start comand
    5. play

  13. […] 錄製紅外線控制訊號的方式也很簡單,只需要使用一個紅外線LED。詳見老外"jumpjack"的"World’s cheapest remote control replicator: just 1$ !" 這篇文章(我也許會將它翻譯成中文)。 […]

  14. […] It’s actually a “sound wave to infrared signal converter“. Before using it to control the NEX-5, you’ll have to “record” the IR signal and convert it into a sound wave. For more information about the IR recording process, please read this blog: “World’s cheapest remote control replicator: just 1$ !’ by jumpjack“. […]

  15. […] but it’s pretty easy to capture IR signals as audio and later convert them back into IR. See this tutorial if you want to learn more about how this works and how to build […]

  16. Anonimo said, on 11 novembre 2012 at 22:00

    Thx for this tutorial, it works after some problem solved. I used the program of jumpjack for reconstitution of the IR signal
    1. record with audacity
    2. use RAWtoLIRC
    3. use LIRCtoledrem
    4. start comand

    And when i play the IR signal on my pc it works with windows player but not with winamp😮
    Anyway gj guys ant thanks ^^

  17. […] World’s cheapest remote control replicator: just 1$ !Turn your phone into an universal remote control […]

  18. Infrarot - Android-Hilfe.de said, on 8 gennaio 2013 at 11:14

    […] […]

  19. blackwizzy said, on 27 agosto 2015 at 5:56

    HI, i know it must be a old topic but, i tried your tutoriel, but i could’nt make it work. I was able to get the signal, and modified it to get the original signal on Audacity. But when i try to play the result wav track, nothing happen. Please can you give me some advice on it?

    • jumpjack said, on 27 agosto 2015 at 10:15

      Please send me a screenshot of both sampled signal and modified signal. jumpjack at libero dot it

      • blackwizzy said, on 30 agosto 2015 at 19:27

        HI i send you a message on your email describing my problem, thank you.

        • jumpjack said, on 2 settembre 2015 at 7:31

          I didn’t receive anything yet (orit got lost in spam,please use a proper subject)

  20. Antonio said, on 27 gennaio 2016 at 23:28

    Hi, I managed to record the waveform and convert it by the ir-converter utility. Now, I need to re-use it in order to control an air conditioner, by using an Arduino card.
    Now, how can I convert the .wav to a string/hexadecimal sequence to send to the conditioner?
    thank you
    Antonio

    • jumpjack said, on 28 gennaio 2016 at 13:38

      Years ago I wrote some programs using RapidQ language (a VBA-like free compiler). From RAW2LIRC source:

      https://code.google.com/archive/p/ledrem/source/default/source

      function ExamineWav(CommandName as string) as integer
          dim wav as qfilestream
          dim FormatStart as long
          dim DataStart as long
          dim c as long
          dim i as long
          dim WavHeader as string
          wav.open( CommandName & ".wav",fmOpenRead)
          WavHeader = wav.readbinstr(wav.size)  
      
          FormatStart = instr(WavHeader,"fmt")-1 ‘ Offset: 13; length: 4 (including trailing null)
      
          wav.seek(FormatStart+10,0) ‘ Offset: 23; length: 2
          WavChannels=wav.readnum(2)
          AppendLog( "chan=" & str$(WavChannels))
      
          wav.seek(FormatStart+12,0) ‘ Offset: 25; length: 4 -  Samples per second (frequency, Hz,  typically 44100 or 48000)
          WavFreq = wav.readnum(4)
          AppendLog(  "freq= " & str$(WavFreq))
      
          wav.seek(FormatStart+16,0) ‘ Offset: 29; Bytes per second (if only 1 channel)
          WavBytesSec=wav.readnum(4)
          AppendLog(  "bytes= " & str$(WavBytesSec))
      
          wav.seek(FormatStart+20,0) ‘ Offset: 33; length=2;  Bytes per sample (if 1 channel) – Note: bug in my original source pointed to offset 23
          WavBytesSample=wav.readnum(2)
          AppendLog(  "Bytes/sample= " & str$(WavBytesSample))
      
          DATALEN = ASCII2DEC(mid$(WavHeader,FormatStart+20,2),2)
      
           wav.seek(FormatStart+22,0) ‘ Offset: 35; length:2; bits per sample
          WavBitsSample=wav.readnum(2)
          AppendLog(  "bits= " & str$(WavBitsSample))
      
          DataStart = instr(WavHeader,"data")-1
          AppendLog(  "Datastart=" & str$(datastart))
      
          wav.seek(DataStart+4,0)
          DataSize =  hex$(wav.readnum(4))
      
           print "Lunghezza Data Chunk = 0x" & DataSize
      
          c = 0
          for i = 45 to DataSize step 2
              c = c + 1
                 rawdata(c)=(sign)*wav.Readnum(2)
          next
         wav.close
          ExamineWav = 0
      end function
      
      

      This source reads a WAV file and its properties; data are stored in array rawdata(). Properties are stored in:

      WavHeader, WavChannels, FormatStart, WavFreq, WavBytesSec, WavBytesSample, WavBitsSample, DataStart, DataSize

      Then, this function converts data into “graphic binary” format to draw it on screen:

          For i = 1 To DataSize/2
      
              binary(i) = 0
      
              If RawData(i) > Max/10 then ' Max - (Max * tolerance / 100) Then
      
                  binary(i) = One     
      
              End If
      
          Next
      

      Then you must write an Arduino sketch which plays a 38KHz tone while binary(i) is=1 and plays nothing when binary(i)=0.

      How many milliseconds an element of the array lasts can be calculated from WavFreq value (samples/second): each element of the rawdata() array contains a 2-bytes value read from WAV file, i.e. a 16bit sample, and it must be “played” for 1/WavFreq seconds

  21. Joshua said, on 14 giugno 2016 at 4:27

    Hi Jack!
    Greetings. I recently bumped into your blog while searching for diy IR blaster tutorials and I must say, you got a great website🙂 I have built both the transmitter and the transmitter+receiver combo by following some tutorials around the web and I was able to capture the IR signal through the receiver connected to the microphone jack. For sampling purposes, I used audacity. But the problem is, as per your statement, I am getting square waves but with some sine waves too! I read elsewhere that if I am getting anything other than square waves, there must be a problem with the hardware setup. Since the sampled signal didn’t work on the IR device, I am a bit worried. I have attached photos and screenshots for you to take a look. I know it’s been years since this post was made, but could you please take a look at my issue. Thanks🙂

    For transmitter,
    Connected LED1 anode to LED2 cathode and vice versa

    For transmitter cum receiver
    Connected anodes of both the LEDs to the ground and the two anodes to left and right channel.

    P.S – Don’t be scared by my soldering skills!

    • jumpjack said, on 14 giugno 2016 at 9:33

      Your sample is very weird; I thank it looks “squared” just because it is saturated, which means your receiver is too sensitive or too close to source. It also lacks the initial “calibration signal”,which should be high for 10-20 times the typical duration of a “high” or “low” segment. Also, the final progressive attenuation of the signal is something I’ve never seen before in such samples…

      Eventually, I never heard of an IR transmitter+receiver in one single device, where did you find this schematic?!?

      Actually I think you have an issue in the RECEIVER: you must use just one single LED for sampling your remote:

      You’ll get sometihg similar to this:

      Did you see this post?
      https://jumpjack.wordpress.com/2008/05/22/remote-control-2/

  22. Joshua said, on 14 giugno 2016 at 21:31

    Honestly, I expected a day or two to get a response, but wow! Thanks for the super fast response. II used the tutorial found on this webpage (https://wiki.samygo.tv/index.php5/Build_your_own_IR_transmitter) to build the receiver earlier. What I claimed to be transmitter cum receiver is apparently known as transceiver. The audacity screenshot I posted earlier was actually the result of recording IR using the transceiver I had built. I did see your post here (https://jumpjack.wordpress.com/2008/05/22/remote-control-2/) but continued with my previously built transceiver as it was supposed to send and receive IR signals. Or at least that’s what I thought! But today, as per your suggestion, I built a receiver with single LED (cathode connected to ground and anode to the other terminal of the jack). But when I try to record the IR signal after plugging the jack, nothing is getting recorded (except for the surrounding noise). My assumption is that the receiver is not being recognized by the computer and the built in microphone is getting selected when using audacity. I am out of ideas right now. Could you please suggest a way to get around this hiccup? I have posted another image with the newly assembled receiver. Thanks.

    • jumpjack said, on 14 giugno 2016 at 21:42

      Does the input port work with a real microphone?
      Once you get the microphone input properly recorded, just swap the microphone with the IR receiver and see what happens.
      And don’t forget to record in stereo: the receiver records only on ONE channel!

      • Joshua said, on 15 giugno 2016 at 4:34

        Your suggestion was absolutely spot on! The problem was with the port. My laptop has the combo port and after looking here (https://www.asus.com/support/faq/1001623) I understood that I needed a 4 conductor jack. But luckily, I had one of these lying around the house (). So, I plugged in the single LED IR receiver to the microphone port and now, it can capture the IR signal. But still, the waves are not in square shape and there are waves in both the channels. Could this be an indicator of an improperly built receiver or other such factors? If so, could you kindly suggest a way around this issue?

        Latest signal capture

        • jumpjack said, on 15 giugno 2016 at 7:22

          Ok, you’re almost there.
          You just need to swap the wires of the LED.
          You could already use the sample you got to rebuild your signal, but doing what I said above will get you into the standard situation described in my posts, so it will be easier.

          Probably your PC recognized that a single “device” is wired to the jack, so it “splitted” the signal to the two channels, anyway we don’t care, we just need one channel.
          Now zoom out horizontally but zoom in vertically, so that the vertical signal -1/+1 fills the screen and that multiple “bursts” are visible at the same time on the screen. You’l see something like this, but flipped vertically:

          Your signal is not in square shape because at your zoom level you actually see the signal carrier at 38000Hz: when the carrier is on, the signal is interpreted as “1”, when it is off the signal is interpreted as “0”.
          In your signal I see “1” from 8.5003 to 8.5047, then “0” from 8.5047 to 8.5093, then “1” from 8.5093 to 8.5100, and so on…

          p.s.
          use standard IMG HTML tag to add inline image to your posts


Puoi inserire un commento qui sotto; diventerà visibile dopo la moderazione dell'amministratore

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: