IgorPlug-USB and Windows 7 x64

Do you know IgorPlug? Back in the old days when computers had RS-232 ports, this was a nice and cheap solution to control the OS and other software with an arbitrary infrared remote control. However, today most PCs do not have these connectors anymore. Fortunately, there is IgorPlug-USB, an IR receiver for USB ports. It uses an 8-bit AVR microcontroller and implements all necessary USB commands in software, as this microcontroller does not support USB natively. In comparison with the RS-232 solution, device drivers are needed in order to communicate with the IgorPlug-USB. Currently, I am using Windows 10 x64, and unfortunately, the original driver that came with IgorPlug-USB does not work with the 64-bit edition of Windows. There are other drivers (this one for example), but they never worked reliably for me. So, I decided to write my own “driver” based on libusb. It is not really a driver, because all the kernel-related stuff is handled by libusb. Therefore, it is very easy to implement and as this comes with a valid digital signature, it can be used without disabling signature checks etc.

The “driver” is designed as a replacement for IgorUSB.dll, so it can be integrated into any software that supports the original driver, e.g., EventGhost (or, maybe, Girder, but I have never tested it). In order to use it, you have to perform the following steps:

  1. Download Windows binaries for libusb and install one of the recommended drivers as described in their wiki. I use the WinUSB driver, as it comes with Windows and can be installed directly from the device manager (choose Browse my computer/Let me pick from a list of device drivers/WinUsb device)
  2. Download the new IgorUSB.dll that is used by EventGhost to communicate with the device through libusb.
  3. Copy IgorUSB.dll to the installation folder of EventGhost.
  4. Run EventGhost and enjoy!

If you are interested, you can grab the source code and experiment with it. For now, only receiving of IR commands is supported, other functions like setting LEDs are not implemented.

Update 2014-05-24

Thanks to Serge, I could fix some bugs and make a new release that should improve compatiblity with the original IgorUSB.dll. I changed the links in this post to point to the new version. Unfortunately, the IR codes reported to EventGhost have changed, so old configuration files won’t work anymore. If you want the old buggy version, you can download it below.

Update 2016-10-12
Some people report that the DLL does not work on Windows 10. Unfortunately, libusb-win32 is no longer maintained and is lacking Windows 10 support. I switched to another library called libusb. This slightly changes the installation procedure, because it needs another filter driver. Uninstall the device in the device manager and follow the instructions above to install the new version.

Version History

Advertisements

Tags: , ,

46 Responses to “IgorPlug-USB and Windows 7 x64”

  1. Marius Vaida Says:

    Thank you very much. It worked nicely.

  2. derventilator Says:

    To clarify step 1): Run inf-wizard.exe
    Thanks, now I am using my IgorPlug + XBox-Remote again. Only the Volume-up/down Button on the Remote acts wired and sends different commands each Button-Press-Event.

  3. Peter Says:

    Hi, I have problem. I did this steps:
    1. Run inf-wizard.exe
    2. Selected IgorPlug-USB (AVR), saved inf file.
    3. In device manager updated driver with this inf file. Driver installed ok.
    4. Installed Evenghost and copy IgorUSB.dll to Evenghost folder.
    5. In eventghost add plugin IgorPlug and Eventghost give me error: “Driver not found”
    What is wrong pls?

    • 0xef Says:

      Maybe you do not have installed the VC++ 2010 Redistributable? You can download it here. Note that you need the x86 DLLs, as IgorUSB.dll is compiled for x86.

  4. michel Says:

    Hello,
    I didn’t reach yet the part of the usb connection I am still in the programming of the microtroller step. I have win7 and I made up the circuit as showed by Igor Ceskor but I used an lpt to usb connector since I don’t have a parallel port on my computer. After opening IgorplugUSBprgrammer.exe I get “Sorry program under xp requires driver” error. Is it not a driver for win7 that is required? from where can I download it ?
    Thank you in advance.

    • 0xef Says:

      Sorry, I don’t know where you can download the driver, I didn’t use IgorplugUSBprogrammer.exe to program the device. Maybe PonyProg works for you. However, regardless of whether you use the programmer of Igor or PonyProg, the USB to LPT converter could be a problem. According to the FAQ of PonyProg, some converters won’t work.

  5. delatdecatsini Says:

    Hello
    Is this solution work on window 8 64bit?

  6. Marc Geek Says:

    Am i allowed to Mirror your igorusb.dll ? (Of course with a link to this site)

  7. Peter Says:

    Hello,
    I’ve problems to get it running with Girder (V. 3.3.8). I ran \libUSB\inf-wizard.exe and copied the new IgorUSB.dll into \girder\plugins directory.

    When starting Girder (in XP compatible mode), it says “Old plugin found c:\….\girder\plugins\IgorUSB.dll you downloaded the incorrect version, please make sure that you get the Girder 3.2 compatible version of this plugin”

    In Device Manager everything seems to be ok.

    When using IgorPlug.dll (which works fine under Win XP Pro) instead of your IgorUSB.dll the message “unable to inicialise USB driver library” appears.

    Do you have any suggestions or another IgorUSB.dll?

    Am I right that I don’t need the files which are running under Windows XP IgorPlug.dll, IgorDrv.dll, IgorUSB.dll, IgorPlug.sys anymore?

    • name Says:

      You probably need an older version of Girder. Try to use the last free one.

      • Peter Says:

        The 3.3.8 is the last free Version – as far as I know.

      • Peter Says:

        Did you successfully tested it with an older Version?

      • name Says:

        AFAIK the last one is 3.2.9(b).

        And no, I did not test it yet, because I just discovered this stuff. 🙂 But I plan to in the near future. This was actually preventing me to upgrade my HTPC from XP.

        I mentioned the possibility of the wrong version because I encountered the same error with original plugin on XP and newer versions of Girder. I’m not sure if the breakpoint of plugin framework was exactly the change from free to commercial, but soon after it started to complain about old plugins.

      • Peter Says:

        When you tested it, please post your result.

        Thanks in advance.

    • name Says:

      So… I made it work with Windows 7 x64. 🙂
      In the start I encountered the same problem, however the reason is not in the Girder version, but in the concept of installation.
      You must still have old Girder plugin (IgorPlug.dll from the XP era) in the Girder’s plugin folder and put the provided “libusb interface” (i.e. IgorUSB.dll) in the Windows folder (in place of the same file from Windows XP drivers).
      And it works both with Girder 3.2.9b and 5.0.

      • Peter Says:

        Thank you very much for the information! I can not test it now, because I switched back to Windows XP. But maybe it helps me in the future.

    • name Says:

      You’re welcome.
      And of course… the biggest thanks to “0xef” that made it possible at all.

  8. Richi Says:

    Hi,

    everything works great, except the remote button events.
    Every button fires two or more events and the event names are different from the event names that i get when i use the original driver (on a x86 system).

    Btw i’m using Eventghost to map the events.

  9. speed windows me Says:

    I will immediately grab your rss because i are not able to to discover ones mail monthly subscription url or e-newsletter company. Carry out you might have almost any? Nicely make me aware to make sure that I might signed up. Many thanks.

  10. repair windows 7 Says:

    Hi there, I wabt to subscribe for thiks website to get latest updates, therefore where can i do it please help out.

  11. Reg Says:

    Hello my friend! I wish tto say that this article is
    amazing, great written and include approximately all important infos.
    I would like to peer more posts like this .

  12. Serge Says:

    Hello and thank you for doing great job.
    I found that your IgorDll.dll is not completely compatible with original one because exported function names are mangled and GetProcAddress does not work. I had to create .DEF file with proper names and set VC to use it to get proper working lib.

  13. Andreas Says:

    Hey there! Thanks for your nice work! I use it in my carpc with eventghost and it work (more or less). What i get are different (like 3) codes when i hit the same key on the remote controller. Is this behavior regarding to the issues Serge reported? I really would love to tryout a new version if this is gone. With EZMCUSB i get exactly one code for every key, but i cant get it to work on Win 8, except i switch off driver signing check for every boot.

    But i got no idea, how to compile yours on github.

  14. Andreas Says:

    Hello!

    Okay, i managed to compile the library on my own, with your Project on github. It works PERFECTLY. Now one code for one key.
    Thankyou so much. Is there a way to activate those leds too, or isnt it possible with libusb ?

    Thankyou in advance!
    Andreas

    • 0xef Says:

      Hi! I released the new binaries today, sorry for being that late… Controlling the LEDs is possible with libusb, it is just not implemented in the IgorUSB.dll currently.

  15. i2 Says:

    @ Update 2014-05-24
    I’ve updated IgorUSB.dll to v1.1 and an error appears in EventGhost Log:
    Error starting plugin: IgorPlug-USB
    Driver not found!
    With the previous .dll v1.0 everything works well (except problems when PC goes into stan-by).

    • 0xef Says:

      I compiled V1.1 with VS 2012, so you may need to install the redistributable package. If that doesn’t work, try upgrading libsub-win32 to at least V1.2.6.0.

      • i2 Says:

        Hi!
        After installation of the redistributable package everything seems to work perfectly.
        I use: libusb-win32 v1.2.6.0; EventGhost 0.4.1.r1640; Your IgorUSB.dll v1.1; Redistributable for VS 2012 (x86); Win8.1 x64.
        Thanks!

  16. Andreas Says:

    Hey, i2…

    I ran into the same as i compiled the source on my own. Visual Studio Express updated some libraries from v100 to v102. I compiled this one, changed the PC and i got the same error you got. The one and only solution i found so far is to install Visual Studio and let it upgrade the libs. Maybe 0xef got some more knowledge about this and how about to come across it. I wasnt able to watch that fast WHICH libs got updated….

    Regards,
    Andreas

    • 0xef Says:

      Which version of Visual Studio Express did you use to compile the code? I think you also have to install the VC++ redistributables. There is a package for each version of Visual Studio (2010, 2012, 2013, …), so you have to use the correct version.

  17. Andreas Says:

    I used Visual Studio 2013 to compile the dll.

  18. Christian Says:

    Hi, i also have the problem Eventghost gets different commands each time i am pressing the same button on remote. Compiled the dll myself results same failure. Any Suggestion?

  19. nicework Says:

    Any idea why it’s not working with Windows10 ?
    Eventghost says:
    Error starting plugin: IgorPlug-USB
    Driver not found!
    with 1.1 and installed VS 2012

    • 0xef Says:

      Thanks for reporting the issue! Unfortunately, it took me a while to come back to it, but I finally could reproduce the problems on Windows 10. libusb-win32 does not work on Windows 10, and as it is not maintained anymore, I had to switch to another library. Please try the new IgorUSB.dll, version 1.2. You have to uninstall the current libusb-win32 based filter driver and install a new one, see the blog post for instructions.

  20. Trash Says:

    I have the same Problem

    • 0xef Says:

      Hi, thanks for your feedback. libusb-win32 is not maintained anymore and does not work on Windows 10. I use a different library now, please try the new IgorUSB.dll, version 1.2. You have to uninstall the current libusb-win32 based filter driver and install a new one, see the blog post for instructions.

  21. Frank Says:

    I used your new v1.2 IgorUSB.dll with Windows 10 and tried to install any of the drivers Zadig offers. The IR-Adapter is properly recognized in the device manager with each (except with libusb-win32 of course). But I cannot get this to wor in EventGhost. I put your new dll in the main folder but EventGhost says: IgorPlug-USB: Driver not found! I use 0.4.1.r1722. Can you help me?

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


%d bloggers like this: