{"id":18711,"date":"2017-02-02T10:00:01","date_gmt":"2017-02-02T18:00:01","guid":{"rendered":"https:\/\/blog.digilentinc.com\/?p=18711"},"modified":"2023-02-07T17:27:24","modified_gmt":"2023-02-08T01:27:24","slug":"labview-graphical-user-interface-for-lirc","status":"publish","type":"post","link":"https:\/\/digilent.com\/blog\/labview-graphical-user-interface-for-lirc\/","title":{"rendered":"LabVIEW Graphical User Interface for LIRC"},"content":{"rendered":"<p>LIRC is a package that allows you to decode and send infra-red signals to many (but not all) commonly used remote controls. LIRC can be used to turn a <a href=\"https:\/\/digilent.com\/shop\/labview-physical-computing-kit-for-raspberry-pi-2\/\">Raspberry Pi<\/a>\u00a0into a universal remote. I used <a href=\"https:\/\/digilent.com\/shop\/labview-home-bundle\/\">LabVIEW<\/a> to create a graphical user interface to simplify this process. Below is a tutorial with instructions for using each VI in my <a href=\"http:\/\/www.lirc.org\">LIRC<\/a> LabVIEW project.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-18545 aligncenter\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2016-12-12-at-10.58.31-AM.png\" alt=\"\" width=\"428\" height=\"277\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2016-12-12-at-10.58.31-AM.png 428w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2016-12-12-at-10.58.31-AM-214x140.png 214w\" sizes=\"auto, (max-width: 428px) 100vw, 428px\" \/><\/p>\n<h2 id=\"overview\" class=\"sectionedit2\">Overview<\/h2>\n<div class=\"level1\">\n<p>This guide will walk you through each of the 5 VIs used in my LIRC LabVIEW project.<\/p>\n<hr \/>\n<h1 id=\"prerequisites\" class=\"sectionedit3\">Tutorial<\/h1>\n<div class=\"level2\">\n<h3 id=\"create_a_new_microblazezynq_block_design\" class=\"sectionedit5\">Add VI<\/h3>\n<ul>\n<li><strong>Create New Remote file: <\/strong>Select this action if this is the first remote profile that you have created or if you want to start fresh. This option will overwrite the current remote profile.<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-18521 aligncenter\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/12\/Add.gif\" alt=\"\" width=\"420\" height=\"450\" \/><\/li>\n<li><strong>Add New Remote to file:\u00a0<\/strong>Select this action when you have an existing config file that you want to add to. This option will not overwrite your current remote profile. Instead, it will add a new remote to it.\n<ul>\n<li>Once you select one of these two options, you press start to move to the next step which is the same for each one. Paste the remote profile found in the LIRC\u00a0<a href=\"http:\/\/lirc.sourceforge.net\/remotes\/\">index of remotes<\/a>\u00a0into the control and press program.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div class=\"level3\">\n<div class=\"no\">\n<h3 id=\"create_a_new_microblazezynq_block_design\" class=\"sectionedit5\">Record VI<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-18689 aligncenter\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Recordp-1.png\" alt=\"\" width=\"360\" height=\"305\" \/><\/p>\n<ul>\n<li><strong>Create New Remote file:\u00a0<\/strong>Select this action if this is the first remote profile that you have created or if you want to start fresh. This option will overwrite the current remote profile.<img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-18562 aligncenter\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-04-at-11.42.29-AM.png\" alt=\"\" width=\"483\" height=\"306\" \/>\n<ul>\n<li><strong>Remote name Control:\u00a0<\/strong>Enter the name of the remote you are programming here, this name will be used to identify this remote profile in the future.<\/li>\n<li><strong>Program Button:<\/strong>\u00a0When this button is clicked the Raspberry Pi will begin recording IR values. After you press this button, point your remote at the IR receiver and press the button you wish to program once.<\/li>\n<li><strong>Retry indicator:\u00a0<\/strong>This indicator will become true if the recorded IR signal was invalid and you need to try again.<\/li>\n<li><strong>Remote info indicator:\u00a0<\/strong>This indicator will show the names of the buttons that you have programmed.<\/li>\n<li><strong>Done Button: <\/strong>This button will return you to the start menu, press it once you have finished recording all the buttons you want to for this remote. If the &#8220;Stop Program&#8221; button is pressed instead than the remote profile will not be recorded.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li><strong>Add New Remote to file:\u00a0<\/strong>Select this action when you have an existing config file that you want to add to. This option will not overwrite your current remote profile. Instead, it will add a new remote to it. Otherwise, it is the same as &#8220;Create New Remote file&#8221; and its user interface is the same.<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-18520 aligncenter\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/12\/Record.gif\" alt=\"\" width=\"420\" height=\"450\" \/><\/li>\n<\/ul>\n<ul>\n<li><strong>Edit Current Remotes:<\/strong>\u00a0Select this action when you want to modify one of your existing remote profiles<img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-18695 aligncenter\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Record_edit-2.gif\" alt=\"\" width=\"360\" height=\"385\" \/>\n<ul>\n<li><strong>Delete Remote:<\/strong> This option will allow you to delete one of the remote profiles you have created without having to delete the config file.<\/li>\n<li><strong>Delete Button:<\/strong> This option will allow you to delete a button from one of the remote profiles you have created.<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-18699 aligncenter\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-1.15.09-PM-600x256.png\" alt=\"\" width=\"600\" height=\"256\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-1.15.09-PM-600x256.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-1.15.09-PM.png 718w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/li>\n<li><strong>Edit Button:<\/strong> This option will allow you to edit one of the buttons that you have already programmed.<\/li>\n<li><strong>Add Button:<\/strong> This option will allow you to add buttons to existing remote profiles.<img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-18584 aligncenter\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-04-at-12.53.51-PM-600x255.png\" alt=\"\" width=\"600\" height=\"255\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-04-at-12.53.51-PM-600x255.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-04-at-12.53.51-PM.png 639w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"no\">\n<p>&nbsp;<\/p>\n<h3 id=\"create_a_new_microblazezynq_block_design\" class=\"sectionedit5\">Remote Replacement VI<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-18690 aligncenter\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Remote_Replacementp.png\" alt=\"\" width=\"449\" height=\"190\" \/><\/p>\n<ul>\n<li><b>Remote 1<\/b>: The first drop-down menu is where you will select the remote that you are trying to replace<img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-18523 aligncenter\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Replace_remote.gif\" alt=\"\" width=\"420\" height=\"450\" \/><\/li>\n<li><strong>Remote 2<\/strong>: The second drop-down menu is where you will select the remote you will use to replace Remote 1<\/li>\n<\/ul>\n<ul>\n<li><strong>Option Switch:<\/strong>\u00a0The switch at the bottom of the front panel can be changed to true if you want all of your programmed remotes to be able to replace this device.<\/li>\n<li><strong>Start Switch: <\/strong>This button should be pressed when you are done, it will end the VI.<\/li>\n<\/ul>\n<h3 id=\"create_a_new_microblazezynq_block_design\" class=\"sectionedit5\">Send VI<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-18691 aligncenter\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Sendp.png\" alt=\"\" width=\"429\" height=\"360\" \/><\/p>\n<ul>\n<li><strong>Remote:\u00a0<\/strong>In this drop-down menu you select which of the available remotes you would like to use<\/li>\n<li><strong>Buttons:\u00a0<\/strong>In this drop-down menu you select one of the buttons available for your chosen remote<\/li>\n<li><strong>Remote info:\u00a0<\/strong>This indicator will display\u00a0the names of a remote will be shown first with its buttons listed beneath it, each button will have a number in front of it.<\/li>\n<li><strong>Select:\u00a0<\/strong>Once you have selected the button you would like to send press this button.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-18517 aligncenter\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/12\/Send.gif\" alt=\"\" width=\"420\" height=\"450\" \/><\/p>\n<h3 id=\"create_a_new_microblazezynq_block_design\" class=\"sectionedit5\">Send Application<\/h3>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-18719 aligncenter\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-5.22.57-PM-600x500.png\" alt=\"\" width=\"600\" height=\"500\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-5.22.57-PM-600x500.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-5.22.57-PM-768x640.png 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-5.22.57-PM-1024x853.png 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-5.22.57-PM-800x666.png 800w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-5.22.57-PM.png 1268w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<ul>\n<li><strong>Remote indicator: <\/strong>Top string indicator, will populate with the names of all of the remotes you have programmed, each remote will have a number before it.<\/li>\n<li><strong>Remote Slider:\u00a0<\/strong>Use this slider to select the number corresponding to the remote you want to use.<\/li>\n<li><strong>Remote Call button: <\/strong>Press this button once you have selected a remote with the slider.<\/li>\n<li><strong>Button Indicator:\u00a0<\/strong>Bottom string indicator, will populate with the names of the available buttons for the remote you have chosen.<\/li>\n<li><strong>Button Slider:\u00a0<\/strong>Use this slider to select the number corresponding to the button you want to use.<\/li>\n<li><strong>Toggle switch:\u00a0<\/strong>To send a button command toggle the switch control and press the call button, make sure you toggle the bottom control each time before you send another command. A new command won&#8217;t send unless the switch control has changed since the last command was sent, this is to stop the remote from sending multiple the command multiple times.<\/li>\n<li><strong>Send Call button:\u00a0<\/strong>Press this button to send the command for the chosen button.<\/li>\n<\/ul>\n<div class=\"level1\">\n<div class=\"level2\">\n<div class=\"level3\">\n<div class=\"no\">\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-18009 aligncenter\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/11\/25656605754_bc67807bb8_o-600x545.png\" alt=\"\" width=\"600\" height=\"545\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/11\/25656605754_bc67807bb8_o-600x545.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/11\/25656605754_bc67807bb8_o-768x697.png 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/11\/25656605754_bc67807bb8_o-800x726.png 800w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/11\/25656605754_bc67807bb8_o.png 1000w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>Thank you for reading my blog post, make sure to check out my\u00a0<a href=\"http:\/\/www.instructables.com\/id\/Creating-a-Raspberry-Pi-Universal-Remote-With-LIRC\/\">Instructable<\/a>\u00a0where I give step by step instructions. If you are interested in making a project yourself but don&#8217;t have the right supplies, you can purchase the LabVIEW computing kit for the <a href=\"https:\/\/digilent.com\/shop\/raspberry-pi-2\/\">Raspberry Pi 2<\/a>. This kit includes a copy of\u00a0<a href=\"https:\/\/digilent.com\/shop\/labview-home-bundle\/\">LabVIEW 2014 home edition<\/a>\u00a0and everything you will need to run\u00a0<a href=\"https:\/\/www.labviewmakerhub.com\/doku.php?id=learn:tutorials:libraries:linx:3-0:beaglebone-black-setup\">LINX 3.0<\/a>\u00a0and start making projects. Please comment with any questions or comments you may have.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style6 like-18711 jlk' data-task='like' data-post_id='18711' data-nonce='8896bc70a6' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Like' \/><span class='lc-18711 lc'>0<\/span><\/a><\/div><div class='action-unlike'><a class='unlbg-style6 unlike-18711 jlk' data-task='unlike' data-post_id='18711' data-nonce='8896bc70a6' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Unlike' \/><span class='unlc-18711 unlc'>0<\/span><\/a><\/div><\/div> <div class='status-18711 status align-left'>Be the 1st to vote.<\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Add a graphical interface to LIRC applications with LabVIEW!<\/p>\n","protected":false},"author":42,"featured_media":18560,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4323],"tags":[],"ppma_author":[4493],"class_list":["post-18711","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software"],"jetpack_featured_media_url":"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-04-at-11.43.39-AM.png","jetpack_sharing_enabled":true,"authors":[{"term_id":4493,"user_id":42,"is_guest":0,"slug":"astanton","display_name":"Austin Stanton","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/0cc9db2caf6344c8f78ea46c21570f33a954c45596addf479125043e52431de0?s=96&d=mm&r=g","1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":"","9":"","10":""}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/18711","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/comments?post=18711"}],"version-history":[{"count":1,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/18711\/revisions"}],"predecessor-version":[{"id":29627,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/18711\/revisions\/29627"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media\/18560"}],"wp:attachment":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media?parent=18711"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/categories?post=18711"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/tags?post=18711"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=18711"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}