Soundgraph IMON Remote/VFD Driver for FreeBSD

This is my Silverstone LC-16M PC with Soundgraph IMON Remote/VFD running on FreeBSD

Current Status


Current version is 0.1

You can download files from here

Driver Installation


  1. FreeBSD :-)
  2. Kernel sources (usually in /usr/src/sys)
  3. Ports collection (see FreeBSD handsbook)


First copy and extract the archive:

   > cp imon-0.1.tgz /root/
   > tar -xvf imon-0.1.tgz
   > mv imon-0.1 imon
then compile and install:
   > cd /root/imon/
   > make install
To load driver at startup, add the following to /boot/loader.conf:
   > vi /boot/loader.conf
     add line: imon_load="YES"
Now you should be able to load the device driver:
   > kldload imon
if you now connect Soundgraph IMON USB device to your system, you should see something like this:
imon0: <vendor 0x15c2 product 0xffdc, class 0/0, rev 1.10/0.00, addr 2> on uhub1
Your can also use two simple perl scripts and to test if the driver really works:
   > /root/imon/
     The "Powered by FreeBSD!" text will be shown on the VFD display
   > /root/imon/
     If driver is compiled with IMON_DEBUG flag, this script allows you
     to see what data the driver is receiving when you press buttons on
     your IMON remote control


First you should apply patch to LCDProc:

   > cd /usr/ports/sysutils/lcdproc
   > cp /root/imon/lcdproc-Makefile.patch ./
   > patch < lcdproc-Makefile.patch
then, compile and install
(note: you don't have to select "Enable USB support" option)
   > make install

LCDProc Configuration

   > cd /usr/local/etc
   > cp LCDd.conf.sample LCDd.conf
   > vi LCDd.conf
     change Driver=curses => Driver=imon
then, assuming that imon device is connected and imon driver has been loaded, you can do:
   > vi /etc/rc.conf
     add LCDd_enable="YES"
   > /usr/local/etc/rc.d/LCDd start
this will start LCDd daemon, and you should see text "LCDProc Server" on your IMON Display.
You can also start default LCDProc client - lcdproc, that shows some system information:
   > cd /usr/local/etc     
   > cp lcdproc.conf.sample lcdproc.conf
   > vi /etc/rc.conf
     add lcdproc_enable="YES"
   > /usr/local/etc/rc.d/lcdproc start


First you should apply patches to LIRC:

   > cd /root/imon/lirc
   > cp patch-port-Makefile /usr/ports/comms/lirc/
   > cp patch-configure /usr/ports/comms/lirc/files/
   > cp /usr/ports/comms/lirc/files/
   > cd /usr/ports/comms/lirc
   > patch < patch-port-Makefile
Then, compile and install:
   > make install

LIRC Configuration

You might want to check LIRC documentation to see which config file you actually need; for my Silverstone case I needed the following config:
   > cp /usr/ports/comms/lirc/work/lirc-0.8.0/remotes/imon/lircd.conf.imon-pad

Start Up

   > cp /root/imon/lirc/ /usr/local/etc/rc.d/
   > chmod u+x /usr/local/etc/rc.d/
   > /usr/local/etc/rc.d/
Note: if you get an error:
   > lird: could not delete /var/run/lirc
   > Operation not permitted
delete this directory (as root):
   > rmdir /var/run/lirc
   > /usr/local/etc/rc.d/
To test if the LIRC daemon actually works and correctly receives and decodes data from your IMON remote, use irw tool:
   > irw /var/run/lirc

If you still have questions, please send them to the LIRC mailing list (, or contact me directly at aopopov at yahoo dot com

Copyright (c) 2008 Alexander Popov
Last modified on 3 of June 2008