... Mek's creations and more

USB IR Remote with any remote conrol

This device enables you to control your PC via IR remote and I managed to build it without significant effort. There are just a few passives and a microcontroller Atmel ATmega8A. It is connected via USB and reports as a standard HID device to Windows. I used Girder on PC side, where button presses on the remote can be conveniently mapped to actions on the PC. Girder plugin (a DLL file) is included in the download. It works with nearly any remote which is a notable benefit compared to other solutions I found on the internet.

NOTE: Girder and the DLL file are not working anymore, see below.

OFFICIAL WEB PAGE - its content is also in the package you can download from me.

If you would like to build this device yourself, I recommend you download the package from me and not from the official web page, as there is also a compilable Atmel Studio 9 solution available in my package. It is located in folder "Solution", and I left comments "// by MEK" on places I had to modify to make it compile (the original sources were full of errors). I have set MCU type ATmega8A and clock frequency 12 MHz. I used AVR Dragon for flashing it.

I would add a few important notes that are not stated in the official documentation but I find them important as I had to learn them myself (outdated information is stricken out - just for your reference or if you want to use this on an old operating system):

Atmel Studio 9:

  • Fuses: Low 0xFF, High 0xC9 (pick fastest Ext. Crystal/Oscillator)
  • check CKOPT (needed because of frequency 12 MHz)


  • USB cable: red: 5V, black: GND, green: D+, white: D-
  • ZD1 is supposed to be 3V6 but I used 4V7. It works even without ZD1 but only in USB 2.0 ports
  • ZD2 is supposed to be 3V6, but I used 3V3 and it works - but without ZD2 device failure is reported by Windows
  • IR receiver may be TSOP1736 or any equivalent


  • For debugging you can use Demo_Source\Releases\DLL_Demo_Console.exe after launch, choose any of the two modes and then open Settings. A window should be opened where received IR codes can be viewed (it's the blue window in the official documentation screenshots)
  • DLL file can be used as a plugin for Girder, EventGhost, DVBViewer, and most notably in a custom application (a demo in multiple programming languages is included - cool!) - but sadly, DLL sources are not available
  • Use MekIR - a program made by me. It replaces Girder and runs on modern operating systems.


  • Copy the DLL file into Plugins folder under Girder folder (beware, not under Hardware, neither under Software, but directly under Plugins) and rename it to, for example, usbir.dll - original file name is probably too long and then Girder can't find it
  • Volume Change influences only Girder's volume under modern OSs, which is unusable. You have to run Girder under compatibility mode for XP SP3, then Volume Change influences global volume as it should
  • Girder for download - the last free version is 3.2.9 - DLL plugin works without problems in it

NOTE: The Girder plugin now throws error "Ungultige Zeigeroperation" after latest Windows 10 1809 update. I wrote my own application to replace Girder. It's called MekIR and you can find it in the downloaded zip.

Look at the video how it works:

I use the solution with the MekIR program very often and it works for me very well for many years already.

Comments (6)

:} lol :D =) :o) :B 8-D :P :-)) :-< ;) :-/ :( :.( O.o ;o) :-* 8-| :-| 8)
Mek   2nd February 2019 2:50 pm
Maybe... but I didn't dig into source code of the AVR very much to support this... I thought it was already supported (but never actually used it). I might look into it sometime in the future when I have time :)
bladem2003   2nd February 2019 2:03 pm
you could not solve it like this?

if ircode = 0x1234 then
while ircode = 0
send key
Mek   2nd February 2019 1:54 pm
I don't know why, but that didn't work for me. When I kept the button pressed, the code that was received from the device, always had flags = 0 (meaning there was no repetition). So there was no way to get the information about the button being pressed and not yet released.
bladem2003   2nd February 2019 1:44 pm
It is possible that when pressing a button on the remote control, the command is sent until you release the button?

that is helpful if you scroll with it. You do not have to press and release the button several times
Mek   2nd February 2019 1:12 pm
I wasn't using the power-on function so I didn't program it (I also disabled it in the IR receiver module I built).
bladem2003   2nd February 2019 1:10 pm
how can you program the PowerOn function with MekIR?