[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
Temar Offline
Senior Member
Posts: 265
Joined: Nov 2008
Reputation: 8
Post: #46
NismoC32 Wrote:I copied your lirc_imon conf files and wouldn't you know the knob button works
Well it looks like the knob is a bit sensitive I can't get under four recording in a row by just touching it in irw
Is there a setting for fixing this ?

Normally you could change this behaviour in the lircrc file, but XBMC doesn't use lircrc files for its configuration. So you have to live with this repeat level. You'll get used to it :-)

Quote:The only thing missing now is to get XBMC to bother with them.
Where does XBMC look for the Lircmap.xml file ?
I have it in /home/xbmc/.xbmc/userdata/
But doesn't work.

The path $HOME/.xbmc/userdata is correct. How does your Lircmap.xml file look like? You can't assign custom tags in this file but you have to map your buttons to the standard LIRC buttons provided by XBMC. I can't send you my Lircmap.xml file because I patched my XBMC to be able to use all my remote buttons. Therefore my Lircmap.xml file looks very different from a standard one.

If you can see your buttons with 'irw' you will be able to get XBMC to work.

Quote:Have I forgot to install somthing, do you need the xbmc-event packages ?
I have only installed xbmc package

Hmm, guess this should be enough, but I'm not sure. I compiled my own XBMC version with custom patches, so I don't use the standard packages.

Quote:What did you do to assign the different config files to right device so it is there when you reboot?

For Ubuntu 8.04 (Hardy Heron) you can adjust your /etc/lirc/hardware.conf file like this:
Code:
# /etc/lirc/hardware.conf                                                                                                                
#                                                                                                                                        
#Chosen Remote Control                                                                                                                  
REMOTE="iMon Soundgraph Dev 0"                                                                                                          
REMOTE_MODULES="lirc_dev lirc_imon"                                                                                                      
REMOTE_DRIVER="default"                                                                                                                  
REMOTE_DEVICE="/dev/lirc0"                                                                                                              
REMOTE_LIRCD_CONF="/etc/lirc/lircd.imon.0.conf"
REMOTE_LIRCD_ARGS=""

#Chosen IR Transmitter
TRANSMITTER="iMon Soundgraph Dev 1"
TRANSMITTER_MODULES="lirc_dev lirc_imon"
TRANSMITTER_DRIVER="default"
TRANSMITTER_DEVICE="/dev/lirc1"
TRANSMITTER_LIRCD_CONF="/etc/lirc/lircd.imon.1.conf"
TRANSMITTER_LIRCD_ARGS=""

#Enable lircd
START_LIRCD="true"

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD="false"

#Try to load appropriate kernel modules
LOAD_MODULES="false"

# Default configuration files for your hardware if any
LIRCMD_CONF=""

#Forcing noninteractive reconfiguration
#If lirc is to be reconfigured by an external application
#that doesn't have a debconf frontend available, the noninteractive
#frontend can be invoked and set to parse REMOTE and TRANSMITTER
#It will then populate all other variables without any user input
#If you would like to configure lirc via standard methods, be sure
#to leave this set to "false"
FORCE_NONINTERACTIVE_RECONFIGURATION="false"
START_LIRCMD=""

I'm not sure if I did any changes to /etc/init.d/lirc, too. If it doesn't work for you, I can provide my /etc/init.d/lirc file.

Quote:The other problem is that XBMC doesn't pick up on any buttons. (Any chance you can post your Lircmap.xml file?)
And neater does the display, but using the pearl

For the LCD you need to get the LCDd running. After starting LCDd it should print some status information on the LCD display. If you don't get this status information you lirc LCD driver may be the problem. I had many problems with this driver, too. Only the drivers from the CVS version seem to work properly, even though some people claim you could just use the 0.8.4 release. Another problem is the LCDd patch. There are different versions with different features. I can send you the patch I used if you need it.

Quote:PS: Are you sure your device is 045e:0039 ? My search on this number it comes up as Microsoft Intellimouse

Hahah, you are right :-) I was on the wrong machine when I checked it using 'lsusb'. I have a 15c2:0038, too.
(This post was last modified: 2009-01-25 01:57 by Temar.)
find quote
NismoC32 Offline
Junior Member
Posts: 39
Joined: Jan 2009
Reputation: 0
Post: #47
Where do I find a list of the standard LIRC buttons ?
Or does it exist a empty Lircmap.xml file
with all the button commands that are available where you add the missing keykode?
(This post was last modified: 2009-01-25 01:50 by NismoC32.)
find quote
Temar Offline
Senior Member
Posts: 265
Joined: Nov 2008
Reputation: 8
Post: #48
I updated my post while you were already answering, so check my post above, too.

NismoC32 Wrote:Where do I find a list of the standard LIRC buttons ?
Or does it exist a empty Lircmap.xml file
with all the button commands that are available where you add the missing keykode?

The standard Lircmap.xml file resides at <xbmc-install-path>/share/xbmc/Lircmap.xml. Here is a basic version you could use:

Code:
<lircmap>
        <remote device="mceusb">
                <pause>Pause</pause>
                <stop>Stop</stop>  
                <forward>Forward</forward>
                <reverse>Rewind</reverse>
                <left>Left</left>        
                <right>Right</right>      
                <up>Up</up>              
                <down>Down</down>        
                <select>OK</select>      
                <pageplus>ChanUp</pageplus>
                <pageminus>ChanDown</pageminus>
                <back>Back</back>              
                <menu>PreviousMenu</menu>      
                <title>Play</title>            
                <info>More</info>              
                <skipplus>Skip</skipplus>      
                <skipminus>Replay</skipminus>  
                <display>Teletext</display>    
                <start>Home</start>            
                <record>Record</record>        
                <volumeplus>VolUp</volumeplus>
                <volumeminus>VolDown</volumeminus>
                <mute>Mute</mute>                
                <power>Power</power>              
                <myvideo>Videos</myvideo>        
                <mymusic>Music</mymusic>          
                <mypictures>Pictures</mypictures>
                <mytv>TV</mytv>                  
                <one>One</one>                    
                <two>Two</two>                    
                <three>Three</three>              
                <four>Four</four>                
                <five>Five</five>                
                <six>Six</six>                    
                <seven>Seven</seven>              
                <eight>Eight</eight>              
                <nine>Nine</nine>                
                <zero>Zero</zero>                
                <mytv>Red</mytv>                  
                <mymusic>Green</mymusic>          
                <mypictures>Yellow</mypictures>  
                <myvideo>Blue</myvideo>          
        </remote>                                
</lircmap>

You have to adjust this file for your needings. For example

Code:
<remote device="mceusb">

has to be adjusted to:

Code:
<remote device="IMON_RM200">

if your remote is still named 'IMON_RM200' in the lirc config files.

Then you can map the buttons of your remote to the predefined XBMC lirc buttons. To map your navigation knob for example you have to adjust
Code:
<left>Left</left>        
<right>Right</right>      
<up>Up</up>              
<down>Down</down>
to
Code:
<left>KNOB_LEFT</left>        
<right>KNOB_RIGHT</right>      
<up>KNOB_UP</up>              
<down>KNOB_DOWN</down>

Just use any button from your lirc config files and map them to the XBMC lirc buttons.

UPDATE:
When you are finished copy this Lircmap.xml file to $HOME/.xbmc/userdata/
(This post was last modified: 2009-01-25 02:40 by Temar.)
find quote
NismoC32 Offline
Junior Member
Posts: 39
Joined: Jan 2009
Reputation: 0
Post: #49
Editing the hardware.conf file alone did not work.

I guess there some tweaking in the /init.d/lirc file is necessary too.

Editing the Lircmap.xml did not help eater despite irw reporting all buttons.
Does all buttons have to be configured for it to work I have only configured a few for testing.

PS: Have switched to Ubuntu 8.10 Interpid now.
(This post was last modified: 2009-01-25 02:57 by NismoC32.)
find quote
Temar Offline
Senior Member
Posts: 265
Joined: Nov 2008
Reputation: 8
Post: #50
NismoC32 Wrote:Editing the hardware.conf file did not work.

I guess there some tweaking in the /init.d/lirc file is necessary too.

Here is my /etc/init.d/lirc file. Remember that this is for Ubuntu 8.04. If you are using 8.10 you might need another startup file. However you can give it a try. Just make a backup of your old startup file.

http://nopaste.info/411a67ce60.html

Quote:Editing the Lircmap.xml did not help eater despite irw reporting all buttons.
Does all buttons have to be configured for it to work I have only configured a few for testing.

It is enough to configure a few buttons. However I updated my above post. If you use my lirc config files, the name of the remote is IMON_RM200 and not RM200. So check if the remote name matches the one configured in the lirc config files.
find quote
NismoC32 Offline
Junior Member
Posts: 39
Joined: Jan 2009
Reputation: 0
Post: #51
I noticed that but it still does not work :-(
find quote
Temar Offline
Senior Member
Posts: 265
Joined: Nov 2008
Reputation: 8
Post: #52
NismoC32 Wrote:I noticed that but it still does not work :-(

Hmm, strange but don't worry. If you can see the buttons with irw, then getting them to work in XBMC is only a matter of Lircmap.xml and Keymap.xml.

Check this post for a more in depth description:
http://forum.xbmc.org/showthread.php?tid=39183

UPDATE: By the way, did you restart xbmc after editing your Lircmap.xml file?
(This post was last modified: 2009-01-25 03:23 by Temar.)
find quote
NismoC32 Offline
Junior Member
Posts: 39
Joined: Jan 2009
Reputation: 0
Post: #53
Keymap.xml ConfusedConfusedConfused
Where do I find this file ?
Seems like a there are some files missing in the xbmc package - No Lircmap.xml enywhere no Keymap.xml enywhere.... wierd.

Ohhh the Lircmap.xml is supposed to have a capital "L" right, not lircmap.xml

Using you init.d lirc file did not work, generated a error during boot. :-(
(This post was last modified: 2009-01-25 03:25 by NismoC32.)
find quote
Temar Offline
Senior Member
Posts: 265
Joined: Nov 2008
Reputation: 8
Post: #54
NismoC32 Wrote:Keymap.xml ConfusedConfusedConfused
Where do I find this file ?

sudo dpkg -L xbmc | grep Keymap.xml

Your own version of this file should be copied to $HOME/.xbmc/userdata.

Quote:Ohhh the Lircmap.xml is supposed to have a capital "L" right, not lircmap.xml

Yeah, that is important as Linux is case sensitive. After editing the Lircmap or Keymap file you have to restart XBMC.
find quote
Temar Offline
Senior Member
Posts: 265
Joined: Nov 2008
Reputation: 8
Post: #55
Quote:Using you init.d lirc file did not work, generated a error during boot. :-(

The error is normal as udev starts lirc. When the system executes /etc/init.d/lirc you get an error because lirc is already running. Just check if both lirc daemons are running and if irw works - ignore the error. You can check if lirc is running using:

ps ax | grep lirc
find quote
NismoC32 Offline
Junior Member
Posts: 39
Joined: Jan 2009
Reputation: 0
Post: #56
This is sooo frustrating

Ran "sudo dpkg -L xbmc | grep Keymap.xml"
and nothing......

I guess the remote wont work without the Keymap.xml right
Could you post yours so I can adjust it to my setup ?
(This post was last modified: 2009-01-25 03:50 by NismoC32.)
find quote
Temar Offline
Senior Member
Posts: 265
Joined: Nov 2008
Reputation: 8
Post: #57
NismoC32 Wrote:This is sooo frustrating

Ran "sudo dpkg -L xbmc | grep Keymap.xml"
and nothing......

Hmm, I'm not into the official packages as I compiled my custom version of XBMC. Try running "sudo dpkg -L xbmc" only and you should get a list of all files installed by xbmc. If you don't get anything then the package xbmc might be a meta package.

However all this doesn't matter. To just get your remote working it should be enough to edit Lircmap.xml because most of the buttons are already predefined in Keymap.xml. With a valid Lircmap.xml file you should at least be able to use the navigation knob.

Always check if your remote still works with irw and always restart xbmc after you made changes to Lircmap.xml.

Quote:Could you post yours so I can adjust it to my setup ?

You can't use my Keymap.xml file as I patched my XBMC version to be able to use all buttons of my remote. I have a totally different Keymap.xml file. You can find the official standard Keymap.xml file here: https://xbmc.svn.sourceforge.net/svnroot...Keymap.xml
(This post was last modified: 2009-01-25 03:53 by Temar.)
find quote
NismoC32 Offline
Junior Member
Posts: 39
Joined: Jan 2009
Reputation: 0
Post: #58
I don't understand why it wont work !

The irw command picks every button I press and this is my Lircmap.xml under /home/xbmc/.xbmc/usersdata

Code:
<lircmap>
        <remote device="IMON_RM200">
                <pause>PAUSE</pause>
                <stop>STOP</stop>
                <forward>FAST_FWD</forward>
                <reverse>FAST_REW</reverse>
                <left>KNOB_LEFT</left>
                <right>KNOB_RIGHT</right>
                <up>KNOB_UP</up>
                <down>KNOB_DOWN</down>
                <select>SELECT</select>
                <pageplus>CHAN_UP</pageplus>
                <pageminus>CHAN_DOWN</pageminus>
                <back>BACKSPACE</back>
                <menu>MENU</menu>
                <title>PLAY</title>
                <info>More</info>
                <skipplus>SKIP_NEXT</skipplus>
                <skipminus>SKIP_PREV</skipminus>
                <display>Teletext</display>
                <start>Home</start>
                <record>Record</record>
                <volumeplus>VolUp</volumeplus>
                <volumeminus>VolDown</volumeminus>
                <mute>Mute</mute>
                <power>POWER</power>
                <myvideo>VIDEOS</myvideo>
                <mymusic>MUSIC</mymusic>
                <mypictures>PICTURES</mypictures>
                <mytv>TV</mytv>
                <one>1</one>
                <two>2</two>
                <three>3</three>
                <four>3</four>
                <five>5</five>
                <six>6</six>
                <seven>7</seven>
                <eight>8</eight>
                <nine>9</nine>
                <zero>0</zero>
                <mytv>Red</mytv>
                <mymusic>Green</mymusic>
                <mypictures>Yellow</mypictures>
                <myvideo>Blue</myvideo>
        </remote>
</lircmap>

And does not work.

I temperately solved the problem with having the devices loaded during boot by putting this in rc.local

Quote:/usr/local/sbin/lircd --driver=default --device=/dev/lirc0 --pidfile=/var/run/lirc0.pid --listen=8765 /etc/lirc_imon.0.conf
/usr/local/sbin/lircd --driver=default --device=/dev/lirc1 --pidfile=/var/run/lirc1.pid --connect localhost:8765 --output=/dev/lircd /etc/lirc_imon.1.conf

Running sudo dpkg -L xbmc gives me this:
Quote:xbmc@htpc:~$ sudo dpkg -L xbmc
[sudo] password for xbmc:
/.
/usr
/usr/share
/usr/share/applications
/usr/share/doc
/usr/share/doc/xbmc
/usr/share/doc/xbmc/copyright
/usr/share/doc/xbmc/keymapping.txt
/usr/share/doc/xbmc/copying.txt
/usr/share/doc/xbmc/LICENSE.GPL
/usr/share/doc/xbmc/README.Debian
/usr/share/doc/xbmc/keymapping-schematic.pdf
/usr/share/doc/xbmc/README.linux
/usr/share/doc/xbmc/changelog.Debian
/usr/share/pixmaps
/usr/bin
xbmc@htpc:~$
(This post was last modified: 2009-01-25 05:46 by NismoC32.)
find quote
NismoC32 Offline
Junior Member
Posts: 39
Joined: Jan 2009
Reputation: 0
Post: #59
I Finally got it working !

Had to use XBMCLive to get it to work.
I don't know why it won't work with the "ppa" download version.
find quote
Temar Offline
Senior Member
Posts: 265
Joined: Nov 2008
Reputation: 8
Post: #60
NismoC32 Wrote:I don't understand why it wont work !
The irw command picks every button I press and this is my Lircmap.xml under /home/xbmc/.xbmc/usersdata

The file looks good except that there are some commands twice in there (mypictures). This shouldn't matter but to be sure, just strip the file down to a minum:

Code:
<lircmap>
        <remote device="IMON_RM200">
                <pause>PAUSE</pause>
                <stop>STOP</stop>
                <forward>FAST_FWD</forward>
                <reverse>FAST_REW</reverse>
                <left>KNOB_LEFT</left>
                <right>KNOB_RIGHT</right>
                <up>KNOB_UP</up>
                <down>KNOB_DOWN</down>
                <select>SELECT</select>
                <pageplus>CHAN_UP</pageplus>
                <pageminus>CHAN_DOWN</pageminus>
                <back>BACKSPACE</back>
                <menu>MENU</menu>
        </remote>
</lircmap>


Quote:Running sudo dpkg -L xbmc gives me this:

Seems like the package xbmc only contains some basic files. The rest of XBMC is installed as dependencies. I downloaded the official packages and checked the contents. The Keymap file is included in the package "xbmc-common". So running "dpkg -L xbmc-common | grep Lircmap" should return the path "/usr/share/xbmc/system/Lircmap.xml". The Keymap file should be in there, too. You can try to replace these files with your versions if XBMC continues to ignore the files in "/home/xbmc/.xbmc/userdata/".

You should also check if the xbmc user has access to the lirc device. Check the permissions with "ls -l /dev/lircd". Another way to be sure that xbmc can access the lirc device is running "irw" as user "xbmc".
find quote
Post Reply