{"id":104,"date":"2008-02-26T16:28:59","date_gmt":"2008-02-27T00:28:59","guid":{"rendered":"http:\/\/www.curlybrace.com\/words\/?p=104"},"modified":"2008-04-08T22:54:39","modified_gmt":"2008-04-09T06:54:39","slug":"lirc-imon-antec-fusion-black-ir-logitech-harmony-880","status":"publish","type":"post","link":"https:\/\/www.curlybrace.com\/words\/2008\/02\/lirc-imon-antec-fusion-black-ir-logitech-harmony-880\/","title":{"rendered":"Antec Fusion Black + Logitech Harmony 880 (via LIRC iMon)"},"content":{"rendered":"<blockquote><p><img src='http:\/\/www.curlybrace.com\/words\/wp-content\/uploads\/2008\/02\/harmony880_antecfusionblack.jpg' alt='Harmony 880 and Antec Fusion Black' \/><\/p><\/blockquote>\n<p>I have an <a href=\"http:\/\/www.antec.com\/us\/productDetails.php?ProdID=15739\">Antec Fusion Black 430 HTPC case<\/a>, which has a built-in LCD and IR receiver, and I want to control it using my <a href=\"http:\/\/www.logitech.com\/index.cfm\/remotes\/universal_remotes\/devices\/372&#038;cl=us,en\">Logitech Harmony 880 programmable remote<\/a>.<\/p>\n<p>Getting it to work was a major pain.<\/p>\n<h4>Overview<\/h4>\n<p>The lirc_imon module is used to communicate with the iMON PAD.  LIRC has to be configured and compiled to provide this.  The LIRC daemon then has to be properly configured so that it loads the correct driver, interacts with the right device, and sends the correct virtual keypresses to MythTV.<\/p>\n<h4>Step 1:  Verify Hardware Connection<\/h4>\n<p>The output of <code>lsusb<\/code> should contain a line similar to this:<\/p>\n<blockquote>\n<pre>Bus 001 Device 003: ID 15c2:ffdc SoundGraph Inc. iMON PAD Remote Controller<\/pre>\n<\/blockquote>\n<p>If something like this doesn&#8217;t appear in the output, then the USB connector from the front of the case is probably not connected properly.<\/p>\n<h4>Step 2:  Prepare for LIRC Compilation<\/h4>\n<p>The instructions for compiling LIRC leave out several necessary dependencies.  They will be listed here when I find my notes.<\/p>\n<h4>Step 3:  Compile LIRC iMon Support<\/h4>\n<p>Follow <a href=\"http:\/\/codeka.com\/forums\/viewtopic.php?f=3&#038;p=130\">these instructions<\/a> to download and compile LIRC for iMon support.<\/p>\n<h4>Step 4:  Configure LIRC for iMon<\/h4>\n<p>Copy an appropriate hardware.conf file to \/etc\/lirc\/hardware.conf.  Here is my hardware.conf:<\/p>\n<blockquote>\n<pre># \/etc\/lirc\/hardware.conf\r\n#\r\n#Chosen Remote Control\r\nREMOTE=\"harmony880\"\r\n\r\n#Don't start lircmd even if there seems to be a good config file\r\nSTART_LIRCMD=false\r\n\r\n#Try to load appropriate kernel modules\r\nLOAD_MODULES=true\r\n\r\n# Run \"lircd --driver=help\" for a list of supported drivers.\r\nDRIVER=\"\"\r\n# If DEVICE is set to \/dev\/lirc and devfs is in use \/dev\/lirc\/0 will be\r\n# automatically used instead\r\nDEVICE=\"\/dev\/lirc0\"\r\nMODULES=\"lirc_imon\"\r\n\r\n# Default configuration files for your hardware if any\r\n#LIRCD_CONF=\"hauppauge\/lircd.conf.hauppauge\"\r\nLIRCD_CONF=\"\/etc\/lirc\/lircd.conf\"\r\nLIRCMD_CONF=\"\/etc\/lirc\/lircmd.conf\"<\/pre>\n<\/blockquote>\n<h4>Step 5:  Configure LIRC for the Logitech Harmony 880<\/h4>\n<p>copy the correct lircd.conf file to \/etc\/lircd.conf.  Note that it does <b>not<\/b> go in \/etc\/lirc\/lircd.conf, since lircd seems to only look for \/etc\/lircd.conf.<\/p>\n<p>I started out with <a href=\"http:\/\/www.mythtv.org\/wiki\/index.php\/Harmony_880_Remote#Appendix_A_-_MythTV_.2Fetc.2Flircd.conf\">this lircd.conf file<\/a>, but it&#8217;s intended for a true Microsoft Media Center remote.  For whatever reason, entirely different button codes are sent with my Harmony 880 configured to control a &#8220;Microsoft Media PC&#8221;.  Using irrecord to capture button codes, I ended up with this file:<\/p>\n<blockquote>\n<pre># lircd.conf file for Harmony 880 (configured to control a\r\n# Microsoft Media Center PC) and the Antec Fusion's iMON PAD\r\n# IR remote controller.\r\n#\r\n# This file should be placed in \/etc\/lircd.conf\r\n#\r\n# - Jeff Fitzsimons 2\/25\/2008\r\n\r\nbegin remote\r\n\r\n  name harmony880\r\n  bits           8\r\n  eps            30\r\n  aeps          100\r\n\r\n  one           0   0\r\n  zero          0   0\r\n  pre_data_bits 24\r\n  pre_data      0x800F04\r\n  gap          204001\r\n  min_repeat\t1\r\n  toggle_bit_mask 0x8000\r\n\r\n     begin codes\r\n\r\n        #Power           0x00007bf3\r\n        #MyTV            0x00007bb9\r\n        #MyMusic         0x00007bb8\r\n        #MyPictures      0x00007bb6\r\n        #MyVideos        0x00007bb5\r\n        Record          0x17\r\n        Stop            0x19\r\n        Pause           0x18\r\n        Play            0x16\r\n        Rewind          0x15\r\n        Forward         0x14\r\n        #Replay          0x00007be4\r\n        #Skip            0x00007be5\r\n        #More            0x00007bf0\r\n        Back            0x0A\r\n        Left            0x20\r\n        Right           0x21\r\n        Up              0x1E\r\n        Down            0x1F\r\n        OK              0x22\r\n        VolUp           0x10\r\n        VolDown         0x11\r\n        ChanUp          0x12\r\n        ChanDown        0x13\r\n        #Home            0x00007bf2\r\n        Mute            0x0E\r\n        #RecordedTV      0x00007bb7\r\n        Guide           0x26\r\n        #LiveTV          0x00007bda\r\n        DVDMenu         0x24\r\n        One             0x01\r\n        Two             0x02\r\n        Three           0x03\r\n        Four            0x04\r\n        Five            0x05\r\n        Six             0x06\r\n        Seven           0x07\r\n        Eight           0x08\r\n        Nine            0x09\r\n        Zero            0x00\r\n        #Star            0x0A\r\n        #Hash            0x0B\r\n        Clear           0x0A\r\n        Enter           0x0B\r\n        #Red             0x00007ba4\r\n        #Green           0x00007ba3\r\n        #Yellow          0x00007ba2\r\n        #Blue            0x00007ba1\r\n        #Teletext        0x00007ba5\r\n      end codes\r\nend remote<\/pre>\n<\/blockquote>\n<h4>Step 6:  Configure LIRC for MythTV<\/h4>\n<p>Now that LIRC knows how to talk to the hardware (step 4), and what the button codes mean (step 5), you have to tell LIRC what virtual keypresses to generate in order to interact with MythTV.  This requires that an appropriate <b>lircrc<\/b> file be copied to ~\/.mythtv\/lircrc.  In my case, the user &#8216;mythtv&#8217; runs MythFrontend, so the file is \/home\/mythtv\/.mythtv\/lircrc.<\/p>\n<p>I used the <a href=\"http:\/\/www.mythtv.org\/wiki\/index.php\/Harmony_880_Remote#Appendix_B_-_MythTV_lircrc\">lircrc file<\/a> from <a href=\"http:\/\/www.mythtv.org\/wiki\/index.php\/Harmony_880_Remote\">MythTV.org&#8217;s Harmony 880 wiki page<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have an Antec Fusion Black 430 HTPC case, which has a built-in LCD and IR receiver, and I want to control it using my Logitech Harmony 880 programmable remote. Getting it to work was a major pain. Overview The &hellip; <a href=\"https:\/\/www.curlybrace.com\/words\/2008\/02\/lirc-imon-antec-fusion-black-ir-logitech-harmony-880\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[64,118,119,127,120,122,124,123,121,42,126,125],"class_list":["post-104","post","type-post","status-publish","format-standard","hentry","category-technology","tag-antec","tag-antec-fusion","tag-antec-fusion-black","tag-antec-versys","tag-harmony-880","tag-imon","tag-lirc","tag-lirc_imon","tag-logitech-harmony-880","tag-mythtv","tag-ubuntu","tag-universal-remote"],"_links":{"self":[{"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/posts\/104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/comments?post=104"}],"version-history":[{"count":0,"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/posts\/104\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/media?parent=104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/categories?post=104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.curlybrace.com\/words\/wp-json\/wp\/v2\/tags?post=104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}