[LINUX] HOW-TO configure Soundgraph iMON VFD/IR Receiver (used by many HTPC chassis)

  Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
flamirande Offline
Junior Member
Posts: 3
Joined: Dec 2011
Reputation: 0
Post: #271
Hi garz,

I have just purchased an Antec Fusion Black case and managed to get the remote for the IR/LCD (product 15c2:0038) working with LIRC 0.9.0. I am working on Archlinux, but I think I can adapt it to Ubuntu. The LCD still isn't working; see my next post for details. The procedure is adapted from the Archlinux wiki.

The trick is that we now need to configure LIRC to use the devinput layer. To do so, first find your product by running the command
You should get something like
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 003: ID 15c2:0038 SoundGraph Inc. GD01 MX VFD Display/IR Receiver
Bus 003 Device 003: ID 045e:008a Microsoft Corp. Wireless Keyboard and Mouse
Find the line similar to Bus 001 Device 003: ID 15c2:0038 SoundGraph Inc. GD01 MX VFD Display/IR Receiver and note the product code, 15c2:0038 in this case.

We now need to find which event your IR receiver is associated with. Run
ls -l /dev/input/by-id/
which should give you something like
lrwxrwxrwx 1 root root 9 20 déc 15:04 usb-15c2_0038-event-if00 -> ../event6
lrwxrwxrwx 1 root root 9 20 déc 15:04 usb-15c2_0038-event-mouse -> ../event5
lrwxrwxrwx 1 root root 9 20 déc 15:04 usb-15c2_0038-mouse -> ../mouse1
lrwxrwxrwx 1 root root 9 20 déc 15:04 usb-Microsoft_Microsoft_Wireless_Optical_Desktop_1.00-event-kbd -> ../event0
lrwxrwxrwx 1 root root 9 20 déc 15:04 usb-Microsoft_Microsoft_Wireless_Optical_Desktop_1.00-event-mouse -> ../event1
lrwxrwxrwx 1 root root 9 20 déc 15:04 usb-Microsoft_Microsoft_Wireless_Optical_Desktop_1.00-if01-event-mouse -> ../event1
lrwxrwxrwx 1 root root 9 20 déc 15:04 usb-Microsoft_Microsoft_Wireless_Optical_Desktop_1.00-if01-mouse -> ../mouse0
lrwxrwxrwx 1 root root 9 20 déc 15:04 usb-Microsoft_Microsoft_Wireless_Optical_Desktop_1.00-mouse -> ../mouse0
There should be several lines with the product code you noted earlier. Note the event numbers associated with them. In my case, the one that ultimately worked was the event associated with usb-15c2_0038-event-if00 (/event6), but it might be different if you have a different device.

You finally need to configure LIRC to work with this event. The way to do this in Ubuntu differs from Arch, therefore, there might be little mistakes. Let me know and I'll try to corect them. Run
sudo dpkg-reconfigure lirc
and select the devinput entry in the first dialog, and the event you noted earlier in the next screen. Restart the lirc daemon with
sudo /etc/init.d/lircd restart
and see if it worked by running the command
Press a few keys on your remote (make sure to hold them for a few seconds, it doesn't seem to be very responsive) and you should see something like
00000000800100e2 00 KEY_MEDIA devinput
00000000800100cf 00 KEY_PLAY devinput
000000008001019c 00 KEY_PREVIOUS devinput
0000000080010197 00 KEY_NEXT devinput
appear. If so, congratulations, LIRC is now configured. If not, retry the dpkg-reconfigure command with a different event associated with the same product code.

Now, to have it work correctly with XBMC, you need to do a few more things. Please see this thread: http://forum.xbmc.org/showthread.php?tid=45972 for more information.
find quote
mmascosta Offline
Junior Member
Posts: 16
Joined: Oct 2012
Reputation: 0
Post: #272
Hi everyone!

I just purchased a Nox Live 2 case wich comes with this iMON and LCD and receiver, and would like to put them to work with the latest XBMCbuntu available.

Does anyone have any idea what changed since then or any tutorial to make it work??

(This post was last modified: 2012-10-09 00:11 by mmascosta.)
find quote
mmascosta Offline
Junior Member
Posts: 16
Joined: Oct 2012
Reputation: 0
Post: #273
(2009-11-10 20:40)pucko Wrote:  Hello

There seems to be a bug in the lirc-imon kernel module distributed with karmic.

To get lirc and lcdproc to work on karmic I had to create a file:
and add the following line to it:

options lirc_imon display_type=1

Now everything works as it should. Before the fix I got lots of:
lirc_imon: lcd_write: invalid payload size: 32 (expecting 8)

Do a reload of the lirc_imon module after the edit
rmmod lirc_imon
modprobe lirc_imon


I'm having the problem described in this post (lots of "lirc_imon: lcd_write: invalid payload size: 32 (expecting 8)").

I tried the above but when I do rmmod lirc_imon, I get the message ERROR: Module lirc_imon does not exist in /proc/modules .

Can anyone guide me here?

Thanks in advance!!
find quote
mmascosta Offline
Junior Member
Posts: 16
Joined: Oct 2012
Reputation: 0
Post: #274
Ok, I managed to do the trick (in my system, is not lirc_imon, is just imon). The messages stopped. But the LCD keeps showing nothing. Any ideas?
find quote
DaMizZa Offline
Senior Member
Posts: 108
Joined: Dec 2010
Reputation: 2
Location: Saskatchewan, Canada
Post: #275
(I know this is an old post, but in the event that anyone should have problems, here is the method I've always used without issue to get it all working perfectly since Dharma on XBMC Live and now with Frodo on XBMCbuntu):
  • Start by installing LIRC just to be safe, as the iMon LCD and IR Receiver seem to be tied together somehow:
sudo apt-get purge lirc
sudo apt-get install lirc
  • Once LIRC is finished installing, you should be prompted to choose a remote if you'd like to preload a configuration. Select Soundgraph iMon Antec Veris (I have an Antec Fusion Black case, assuming if you have the iMon LCD this is quite likely the one you'll want as well). If you accidentally pick the wrong one, you can go back by using the sudo dpkg-reconfigure lirc command.
  • Create /etc/modprobe.d/lirc.conf and add the following line:
options lirc_imon debug=1 nomouse=1 display_type=2 pad_thresh=5
  • Install LCDProc with the following:
sudo apt-get purge lcdproc
sudo apt-get install lcdproc
  • Once it's finished installing, edit the /etc/LCDd.conf file to look like the following to get the drivers working properly:

DriverPath = /usr/lib/lcdproc/
Driver = imonlcd
Bind =
Port = 13666
ReportLevel = 2
ReportToSysLog = no
User = nobody
Foreground = no
#Message displayed before XBMC Starts, but after LCDProc starts
Hello = ". Powered By ."
Hello = ". XBMC ."
#Message displayed if "OnExit" is set to "0" below.
Goodbye = ". Thanks For ."
Goodbye = ". Using XBMC! ."
#Time (in seconds) to display a screen.
WaitTime = 3
#"Yes" = Flash LCDProc Server Screen, "No" = Only show XBMC Info
ServerScreen = no
#"Open" = Client Controlled, "On" = Always On, "Off" = Always Off
Backlight = open
#"Open" = Client Controlled, "On" = Always On, "Off" = Always Off
Heartbeat = open
#Title Scrolling Speed. Valid values are "1" - "10"
TitleSpeed = 10

#"0" = VFD Display, "1" = iMon LCD Display
Protocol = 1
#"0" = GoodBye message Displayed, "1" = Show Clock, "2" = Blank Device
OnExit = 1
#Path of the Output Device
Device = /dev/lcd0
#Screen contrast. Valid Values: "0" - "1000"
Contrast = 100
#LCD Screen Size (In Pixels)
Size = 96 x 16
#"On" = Backlight Turned On, "Off" = Backlight Always Off
Backlight = on
#"0" = 2 Disc Segments Spin, "1" = Their Complement Spins
DiscMode = 1

  • Set LCDProc to auto-load on boot up by editing the /etc/rc.local file, adding the following line at the end:

/etc/init.d/imon start
  • Edit the ~/.xbmc/userdata/guisettings.xml file and edit (or add if it's not already there, which it should be) the following line under the <videoscreen> section... Alternatively, I believe there is an option within XBMC to enable the LCD screen. I've just done it this way for so long that I just keep doing it this way out of habit..

  • Next you will need to edit your ~/.xbmc/userdata/LCD.xml file to customize what you'd like to have it display on your LCD. You can find more information on available tags you can use and so on here:
    XBMC Wiki - LCD.xml. Here is an example of one that I'm currently using (Note that the iMon LCD only has 2 lines, and can only have so many characters before it starts to scroll along the line. When it scrolls, it's pretty much unreadable, so I've gone through great lengths to ensure there is enough space for anything that may be displayed to avoid it from scrolling):
    <line>$INFO[Window(Weather).Property(Current.FeelsLike)]~C   $INFO[System.Time]</line>
    <line>$INFO[Window(Weather).Property(Current.WindSpeed)]Km/h   $INFO[Player.Volume]</line>
    <line>$INFO[Player.TimeRemaining]  -  $INFO[Window(Weather).Property(Current.FeelsLike)]~C</line>
    <line>$INFO[Player.Volume]  -  $INFO[System.Time]</line>
    <line>$INFO[Player.TimeRemaining]  -  $INFO[Window(Weather).Property(Current.FeelsLike)]~C</line>
    <line>$INFO[Player.Volume]  -  $INFO[System.Time]</line>
    <line>$INFO[Window(Weather).Property(Current.FeelsLike)]~C   $INFO[System.Time]</line>
    <line>$INFO[Window(Weather).Property(Current.WindSpeed)]Km/h   $INFO[Player.Volume]</line>
    <line>$INFO[Window(Weather).Property(Current.FeelsLike)]~C   $INFO[System.Time]</line>
    <line>$INFO[Window(Weather).Property(Current.WindSpeed)]Km/h   $INFO[Player.Volume]</line>
*Note: Some characters on the LCD show up really weird. For example the tilde (~) in my config above actually shows up as a ° which works perfectly for the temperature command, so you can get a little creative with it I suppose...

You should have your LCD working wonderfully at this point. If you really want to squeeze everything you can out of your LCD, check out this thread by Phantasm4489 to get those little icons working as well. Hopefully this helps some of you guys out. I remember when I first tried to get that little LCD working, I spent over a month of trial and error before finally piecing it all together haha

XBMCbuntu {Frodo} - Ubuntu 12.04 (Main):
Intel Q6600 [2.4GHz Quad Core], 4GB DDR3, nVidia GT-210, Antec Fusion Case (iMon LCD), PS3 BD Remote

XBMC Live {Frodo} - Ubuntu 10.04 (Bedroom): Intel Atom D510 [1.66GHz Dual Core], ION Graphics, 2GB DDR2, PS3 BD Remote
find quote
Technicolour Offline
Junior Member
Posts: 3
Joined: Mar 2009
Reputation: 0
Post: #276
I have a Antec Fusion V2 (Black) case and I want to get it working with my Harmony Remote.

I have installed lirc and selected

Soundgraph iMon Antec Veris

When I add the options to /etc/modprobe.d/lirc.conf

options lirc_imon debug=1 nomouse=1 display_type=2 pad_thresh=5

I and running

rmmod lirc_imon
modprobe lirc_imon

I get the following

FATAL: Error inserting lirc_imon (/lib/modules/3.5.0-30-generic/kernel/drivers/staging/media/lirc/lirc_imon.ko): Invalid argument

Removing the options removes the error however I get nothing in irw (I'm not entirely sure what I'm supposed to get, but I think I should get ir events?)

Any help would be greatly appreciated.
find quote
iainmacleod Offline
Senior Member
Posts: 194
Joined: Feb 2006
Reputation: 0
Location: Pittsburgh area (Scotland previously)
Post: #277
Quite honestly, I would suggest you install openelec. I had no configuration changes needed, it just worked.

XBMC on RPi, and Zotac box (Openelec flavor)
NAS4Free with 8TB of storage.
find quote
hardmen Offline
Junior Member
Posts: 8
Joined: Dec 2012
Reputation: 0
Post: #278
Who knows what the problem c MCE remote decided to openelec?
ir-keytables not switch protocol rc-6, to get to work lcdproc and MCE remote control does not work together.
find quote
mark_b Offline
Junior Member
Posts: 1
Joined: Nov 2013
Reputation: 0
Post: #279
Beginner here.

I followed the steps in this thread and have now got the LCD working beautifully with XBMC, thank you very much to everyone involved.

Since the computer I'm using this on is a multi-use machine, I prefer to have the LCDd service stopped when not using XBMC so that it displays the big clock. Then I have to manually start it again in the terminal [sudo /etc/init.d/LCDd start] so that XBMC can use it.

Is there any way I can link the above process to the XBMC process so that LCDd starts and stops automatically with XBMC? I realise that it is complicated by using root to start and stop the service whereas XBMC is run as a user but I would be very grateful if someone could please point me in the right direction.
find quote
Post Reply