<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://hifi-remote.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Barf</id>
	<title>JP1 Remotes Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://hifi-remote.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Barf"/>
	<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php/Special:Contributions/Barf"/>
	<updated>2026-04-26T11:54:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2695</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2695"/>
		<updated>2022-05-15T10:05:13Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;Girr&amp;quot; export from IrScrutinizer to a file,&lt;br /&gt;
* Open the above created file in RemoteMaster. Perform desired fixes.&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
The previous version of this article described a faily &amp;quot;dumb&amp;quot; method of exporting a Girr file from IrScrutinizer to a stripped-down RemoteMaster rmdu file, using a effectively empty, dummy executor called &amp;quot;ImportOnly&amp;quot;. This is imported in RemoteMaster, after which the user has to chose the executor manually. &lt;br /&gt;
The previous version can be access through the Wiki history function, or directly [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;amp;oldid=880 here].&lt;br /&gt;
&lt;br /&gt;
Since then, amazing work has been done in RemoteMaster on importing foreign IR signals, or more exactly, mapping the foreign protocols on the JP1&#039;s executors. Accordingly, Girr files can be imported directly, which makes the importing procedure almost automatic.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
= Solution =&lt;br /&gt;
&lt;br /&gt;
The [http://www.harctoolbox.org/Girr.html Girr format for IR signals] is an open and very versatile format for collections of IR signals. These can be parametrized, or in raw format. It is an XML based format. It is the native format of [http://www.hifi-remote.com/wiki/index.php/IrScrutinizer_Guide IrScrutinizer].&lt;br /&gt;
&lt;br /&gt;
First, acquire or generate a suitable Girr file. IrScrutinizer can generate such files, either by (using a suitable hardware receiver) &amp;quot;learning&amp;quot; an available physical remote, or by importing/converting from other format. (See the example below).&lt;br /&gt;
&lt;br /&gt;
This file is then imported into RMDU, by &amp;quot;Open&amp;quot;-ing them. (See pictures in the next section). If the Girr file contains more than one remote, RM inquires the user to select one of them. In rare cases, the user is requested to select between several possible alternative executors.  Although the import almost always succeeds, in rare cases it may fail, so the import should be checked for plausibility. Assign the keys to functions, and make other desired fixes. The thus created device update can now be used as any other update.&lt;br /&gt;
&lt;br /&gt;
Importing remotes is still a quite complicated process. Limitations (for example by &amp;quot;uncommon&amp;quot; protocols, or if signals from several substantially different protocols are present), and in rare cases even bugs, may show up. In this case, please report in the forum.&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls published set of IR commands].&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) We have downloaded the Excel file and saved it as a csv (comma separated values) file. Here we show the import from that csv file:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2022-16-25.png]]&lt;br /&gt;
&lt;br /&gt;
We now assume that this command set has been imported as parametrized in IrScrutinizer, see the screenshot below.&lt;br /&gt;
Every row of the table denotes a command, has a (unique) name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-54-01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported, by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;Girr&amp;quot; as the Export format, checking &amp;quot;Parameters&amp;quot; and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a girr file.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-15-25.png]]&lt;br /&gt;
&lt;br /&gt;
After starting RMDU, the just-created simple girr file is imported through File -&amp;gt; Open.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
Next screenshot shows RMDU after the import:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-32-52.png]]&lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-33-56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select setup code and the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Remarks =&lt;br /&gt;
&lt;br /&gt;
== Import ict files from IrScope ==&lt;br /&gt;
&lt;br /&gt;
RMDU can also import (&amp;quot;open&amp;quot;) ict files from the program [http://www.hifi-remote.com/wiki/index.php/IR_Scope_and_IR_Widget_User%27s_Guide IrScope].&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2694</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2694"/>
		<updated>2022-05-15T10:00:36Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;Girr&amp;quot; export from IrScrutinizer to a file,&lt;br /&gt;
* Open the above created file in RemoteMaster. Perform desired fixes.&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
The previous version of this article described a faily &amp;quot;dumb&amp;quot; method of exporting a Girr file from IrScrutinizer to a stripped-down RemoteMaster rmdu file, using a effectively empty, dummy executor called &amp;quot;ImportOnly&amp;quot;. This is imported in RemoteMaster, after which the user has to chose the executor manually. &lt;br /&gt;
The previous version can be access through the Wiki history function, or directly [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;amp;oldid=880 here].&lt;br /&gt;
&lt;br /&gt;
Since then, amazing work has been done in RemoteMaster on importing foreign IR signals, or more exactly, mapping the foreign protocols on the JP1&#039;s executors. Accordingly, Girr files can be imported directly, which makes the importing procedure almost automatic.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
= Solution =&lt;br /&gt;
&lt;br /&gt;
The [http://www.harctoolbox.org/Girr.html Girr format for IR signals] is an open and very versatile format for collections of IR signals. These can be parametrized, or in raw format. It is an XML based format. It is the native format of [http://www.hifi-remote.com/wiki/index.php/IrScrutinizer_Guide IrScrutinizer].&lt;br /&gt;
&lt;br /&gt;
First, acquire or generate a suitable Girr file. IrScrutinizer can generate such files, either by (using a suitable hardware receiver) &amp;quot;learning&amp;quot; an available physical remote, or by importing/converting from other format. (See the example below).&lt;br /&gt;
&lt;br /&gt;
This file is then imported into RMDU, by &amp;quot;Open&amp;quot;-ing them. (See pictures in the next section). If the Girr file contains more than one remote, RM inquires the user to select one of them. In rare cases, the user is requested to select between several possible alternative executors.  Although the import almost always succeeds, in rare cases it may fail, so the import should be checked for plausibility. Assign the keys to functions, and make other desired fixes. The thus created device update can now be used as any other update.&lt;br /&gt;
&lt;br /&gt;
Importing remotes is still a quite complicated process. Limitations (for example by &amp;quot;uncommon&amp;quot; protocols, or if signals from several substantially different protocols are present), and in rare cases even bugs, may show up. In this case, please report in the forum.&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls published set of IR commands].&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) Here we show the import from a csv file:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2022-16-25.png]]&lt;br /&gt;
&lt;br /&gt;
We now assume that this command set has been imported in IrScrutinizer, see the screenshot below.&lt;br /&gt;
Note that every row denotes a command, has a name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-54-01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported,&lt;br /&gt;
&lt;br /&gt;
This is exported by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;Girr&amp;quot; as the Export format, checking &amp;quot;Parameters&amp;quot; and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a girr file.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-15-25.png]]&lt;br /&gt;
&lt;br /&gt;
After starting RMDU, the just-created simple girr file is imported through File -&amp;gt; Open.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
Next screenshot shows RMDU after the import:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-32-52.png]]&lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-33-56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select setup code and the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Remarks =&lt;br /&gt;
&lt;br /&gt;
== Import ict files from IrScope ==&lt;br /&gt;
&lt;br /&gt;
RMDU can also import (&amp;quot;open&amp;quot;) ict files from the program [http://www.hifi-remote.com/wiki/index.php/IR_Scope_and_IR_Widget_User%27s_Guide IrScope].&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2693</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2693"/>
		<updated>2022-05-15T09:47:42Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Importing Foreign IR Remotes in RemoteMaster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;Girr&amp;quot; export from IrScrutinizer to a file,&lt;br /&gt;
* Open the above created file in RemoteMaster. Perform desired fixes.&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
The previous version of this article described a faily &amp;quot;dumb&amp;quot; method of exporting a Girr file from IrScrutinizer to a stripped-down RemoteMaster rmdu file, using a effectively empty, dummy executor called &amp;quot;ImportOnly&amp;quot;. This is imported in RemoteMaster, after which the user has to chose the executor manually. &lt;br /&gt;
The previous version can be access through the Wiki history function, or directly [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;amp;oldid=880 here].&lt;br /&gt;
&lt;br /&gt;
Since then, amazing work has been done in RemoteMaster on importing foreign IR signals, or more exactly, mapping the foreign protocols on the JP1&#039;s executors. Accordingly, Girr files can be imported directly, which makes the importing procedure almost automatic.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
= Solution =&lt;br /&gt;
&lt;br /&gt;
The [http://www.harctoolbox.org/Girr.html Girr format for IR signals] is an open and very versatile format for collections of IR signals. These can be parametrized, or in raw format. It is an XML based format.&lt;br /&gt;
&lt;br /&gt;
First, acquire or generate a suitable Girr file. [IrScrutinizer_Guide IrScrutinizer] can generate such files, either by (using a suitable hardware receiver) &amp;quot;learning&amp;quot; an available physical remote, or by importing/converting from other format. (See the example below).&lt;br /&gt;
&lt;br /&gt;
This file is then imported into RMDU, by &amp;quot;Open&amp;quot;-ing them. (See pictures in the next section). If the Girr file contains more than one remote, the useer is required to select one of them. In rare cases, the user is requested to select between several possible alternative executors.  Although the import almost always succeeds, in rare cases it may fail. The import should be checked for plausibility. Assign the keys to functions, and make other desired fixes. The thus created device update can now be used as any other update.&lt;br /&gt;
&lt;br /&gt;
Importing remotes is still a quite complicated process. Limitations (for example by &amp;quot;uncommon&amp;quot; protocols, or if signals from several substantially different protocols are present), and in rare cases even bugs, may show up. In this case, please report in the forum.&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls published set of IR commands].&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) Here we show the import from a csv file:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2022-16-25.png]]&lt;br /&gt;
&lt;br /&gt;
We now assume that this command set has been imported in IrScrutinizer, see the screenshot below.&lt;br /&gt;
Note that every row denotes a command, has a name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-54-01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported,&lt;br /&gt;
&lt;br /&gt;
This is exported by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;Girr&amp;quot; as the Export format, checking &amp;quot;Parameters&amp;quot; and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a girr file.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-15-25.png]]&lt;br /&gt;
&lt;br /&gt;
After starting RMDU, the just-created simple girr file is imported through File -&amp;gt; Open.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
Next screenshot shows RMDU after the import:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-32-52.png]]&lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-33-56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select setup code and the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Remarks =&lt;br /&gt;
&lt;br /&gt;
== Import ict files from IrScope ==&lt;br /&gt;
&lt;br /&gt;
RMDU can also import (&amp;quot;open&amp;quot;) ict files from the program [http://www.hifi-remote.com/wiki/index.php/IR_Scope_and_IR_Widget_User%27s_Guide IrScope].&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2692</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2692"/>
		<updated>2022-05-14T20:43:32Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Ultra-short version */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Importing Foreign IR Remotes in RemoteMaster =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This guide will take the reader through a method for importing foreign (i.e. non-JP1) IR remotes into RemoteMaster.&#039;&#039;&lt;br /&gt;
&#039;&#039;The procedure requires some knowledge by the user, who have to make some manual decisions. The guide is not aimed at beginning users. Some prior knowledge about RemoteMaster and IrScrutinizer is assumed. Also, importing raw or unknown codes are not covered.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;Girr&amp;quot; export from IrScrutinizer to a file,&lt;br /&gt;
* Open the above created file in RemoteMaster. Perform desired fixes.&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
The previous version of this article described a faily &amp;quot;dumb&amp;quot; method of exporting a Girr file from IrScrutinizer to a stripped-down RemoteMaster rmdu file, using a effectively empty, dummy executor called &amp;quot;ImportOnly&amp;quot;. This is imported in RemoteMaster, after which the user has to chose the executor manually. &lt;br /&gt;
The previous version can be access through the Wiki history function, or directly [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;amp;oldid=880 here].&lt;br /&gt;
&lt;br /&gt;
Since then, amazing work has been done in RemoteMaster on importing foreign IR signals, or more exactly, mapping the foreign protocols on the JP1&#039;s executors. Accordingly, Girr files can be imported directly, which makes the importing procedure almost automatic.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
= Solution =&lt;br /&gt;
&lt;br /&gt;
The [http://www.harctoolbox.org/Girr.html Girr format for IR signals] is an open and very versatile format for collections of IR signals. These can be parametrized, or in raw format. It is an XML based format.&lt;br /&gt;
&lt;br /&gt;
First, acquire or generate a suitable Girr file. [IrScrutinizer_Guide IrScrutinizer] can generate such files, either by (using a suitable hardware receiver) &amp;quot;learning&amp;quot; an available physical remote, or by importing/converting from other format. (See the example below).&lt;br /&gt;
&lt;br /&gt;
This file is then imported into RMDU, by &amp;quot;Open&amp;quot;-ing them. (See pictures in the next section). If the Girr file contains more than one remote, the useer is required to select one of them. In rare cases, the user is requested to select between several possible alternative executors.  Although the import almost always succeeds, in rare cases it may fail. The import should be checked for plausibility. Assign the keys to functions, and make other desired fixes. The thus created device update can now be used as any other update.&lt;br /&gt;
&lt;br /&gt;
Importing remotes is still a quite complicated process. Limitations (for example by &amp;quot;uncommon&amp;quot; protocols, or if signals from several substantially different protocols are present), and in rare cases even bugs, may show up. In this case, please report in the forum.&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls published set of IR commands].&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) Here we show the import from a csv file:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2022-16-25.png]]&lt;br /&gt;
&lt;br /&gt;
We now assume that this command set has been imported in IrScrutinizer, see the screenshot below.&lt;br /&gt;
Note that every row denotes a command, has a name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-54-01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported,&lt;br /&gt;
&lt;br /&gt;
This is exported by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;Girr&amp;quot; as the Export format, checking &amp;quot;Parameters&amp;quot; and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a girr file.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-15-25.png]]&lt;br /&gt;
&lt;br /&gt;
After starting RMDU, the just-created simple girr file is imported through File -&amp;gt; Open.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
Next screenshot shows RMDU after the import:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-32-52.png]]&lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-33-56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select setup code and the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Remarks =&lt;br /&gt;
&lt;br /&gt;
== Import ict files from IrScope ==&lt;br /&gt;
&lt;br /&gt;
RMDU can also import (&amp;quot;open&amp;quot;) ict files from the program [http://www.hifi-remote.com/wiki/index.php/IR_Scope_and_IR_Widget_User%27s_Guide IrScope].&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2691</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2691"/>
		<updated>2022-05-14T20:40:00Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Support and help */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Importing Foreign IR Remotes in RemoteMaster =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This guide will take the reader through a method for importing foreign (i.e. non-JP1) IR remotes into RemoteMaster.&#039;&#039;&lt;br /&gt;
&#039;&#039;The procedure requires some knowledge by the user, who have to make some manual decisions. The guide is not aimed at beginning users. Some prior knowledge about RemoteMaster and IrScrutinizer is assumed. Also, importing raw or unknown codes are not covered.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;RemoteMaster&amp;quot; export from IrScrutinizer 1.3 (or later) to a temporary file,&lt;br /&gt;
* Open the above created file in RemoteMaster. Select a usable executor manually. Perform other desired fixes.&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
The previous version of this article described a faily &amp;quot;dumb&amp;quot; method of exporting a Girr file from IrScrutinizer to a stripped-down RemoteMaster rmdu file, using a effectively empty, dummy executor called &amp;quot;ImportOnly&amp;quot;. This is imported in RemoteMaster, after which the user has to chose the executor manually. &lt;br /&gt;
The previous version can be access through the Wiki history function, or directly [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;amp;oldid=880 here].&lt;br /&gt;
&lt;br /&gt;
Since then, amazing work has been done in RemoteMaster on importing foreign IR signals, or more exactly, mapping the foreign protocols on the JP1&#039;s executors. Accordingly, Girr files can be imported directly, which makes the importing procedure almost automatic.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
= Solution =&lt;br /&gt;
&lt;br /&gt;
The [http://www.harctoolbox.org/Girr.html Girr format for IR signals] is an open and very versatile format for collections of IR signals. These can be parametrized, or in raw format. It is an XML based format.&lt;br /&gt;
&lt;br /&gt;
First, acquire or generate a suitable Girr file. [IrScrutinizer_Guide IrScrutinizer] can generate such files, either by (using a suitable hardware receiver) &amp;quot;learning&amp;quot; an available physical remote, or by importing/converting from other format. (See the example below).&lt;br /&gt;
&lt;br /&gt;
This file is then imported into RMDU, by &amp;quot;Open&amp;quot;-ing them. (See pictures in the next section). If the Girr file contains more than one remote, the useer is required to select one of them. In rare cases, the user is requested to select between several possible alternative executors.  Although the import almost always succeeds, in rare cases it may fail. The import should be checked for plausibility. Assign the keys to functions, and make other desired fixes. The thus created device update can now be used as any other update.&lt;br /&gt;
&lt;br /&gt;
Importing remotes is still a quite complicated process. Limitations (for example by &amp;quot;uncommon&amp;quot; protocols, or if signals from several substantially different protocols are present), and in rare cases even bugs, may show up. In this case, please report in the forum.&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls published set of IR commands].&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) Here we show the import from a csv file:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2022-16-25.png]]&lt;br /&gt;
&lt;br /&gt;
We now assume that this command set has been imported in IrScrutinizer, see the screenshot below.&lt;br /&gt;
Note that every row denotes a command, has a name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-54-01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported,&lt;br /&gt;
&lt;br /&gt;
This is exported by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;Girr&amp;quot; as the Export format, checking &amp;quot;Parameters&amp;quot; and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a girr file.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-15-25.png]]&lt;br /&gt;
&lt;br /&gt;
After starting RMDU, the just-created simple girr file is imported through File -&amp;gt; Open.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
Next screenshot shows RMDU after the import:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-32-52.png]]&lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-33-56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select setup code and the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Remarks =&lt;br /&gt;
&lt;br /&gt;
== Import ict files from IrScope ==&lt;br /&gt;
&lt;br /&gt;
RMDU can also import (&amp;quot;open&amp;quot;) ict files from the program [http://www.hifi-remote.com/wiki/index.php/IR_Scope_and_IR_Widget_User%27s_Guide IrScope].&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2690</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2690"/>
		<updated>2022-05-14T20:26:29Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Importing Foreign IR Remotes in RemoteMaster =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This guide will take the reader through a method for importing foreign (i.e. non-JP1) IR remotes into RemoteMaster.&#039;&#039;&lt;br /&gt;
&#039;&#039;The procedure requires some knowledge by the user, who have to make some manual decisions. The guide is not aimed at beginning users. Some prior knowledge about RemoteMaster and IrScrutinizer is assumed. Also, importing raw or unknown codes are not covered.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;RemoteMaster&amp;quot; export from IrScrutinizer 1.3 (or later) to a temporary file,&lt;br /&gt;
* Open the above created file in RemoteMaster. Select a usable executor manually. Perform other desired fixes.&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
The previous version of this article described a faily &amp;quot;dumb&amp;quot; method of exporting a Girr file from IrScrutinizer to a stripped-down RemoteMaster rmdu file, using a effectively empty, dummy executor called &amp;quot;ImportOnly&amp;quot;. This is imported in RemoteMaster, after which the user has to chose the executor manually. &lt;br /&gt;
The previous version can be access through the Wiki history function, or directly [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;amp;oldid=880 here].&lt;br /&gt;
&lt;br /&gt;
Since then, amazing work has been done in RemoteMaster on importing foreign IR signals, or more exactly, mapping the foreign protocols on the JP1&#039;s executors. Accordingly, Girr files can be imported directly, which makes the importing procedure almost automatic.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
= Solution =&lt;br /&gt;
&lt;br /&gt;
The [http://www.harctoolbox.org/Girr.html Girr format for IR signals] is an open and very versatile format for collections of IR signals. These can be parametrized, or in raw format. It is an XML based format.&lt;br /&gt;
&lt;br /&gt;
First, acquire or generate a suitable Girr file. [IrScrutinizer_Guide IrScrutinizer] can generate such files, either by (using a suitable hardware receiver) &amp;quot;learning&amp;quot; an available physical remote, or by importing/converting from other format. (See the example below).&lt;br /&gt;
&lt;br /&gt;
This file is then imported into RMDU, by &amp;quot;Open&amp;quot;-ing them. (See pictures in the next section). If the Girr file contains more than one remote, the useer is required to select one of them. In rare cases, the user is requested to select between several possible alternative executors.  Although the import almost always succeeds, in rare cases it may fail. The import should be checked for plausibility. Assign the keys to functions, and make other desired fixes. The thus created device update can now be used as any other update.&lt;br /&gt;
&lt;br /&gt;
Importing remotes is still a quite complicated process. Limitations (for example by &amp;quot;uncommon&amp;quot; protocols, or if signals from several substantially different protocols are present), and in rare cases even bugs, may show up. In this case, please report in the forum.&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls published set of IR commands].&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) Here we show the import from a csv file:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2022-16-25.png]]&lt;br /&gt;
&lt;br /&gt;
We now assume that this command set has been imported in IrScrutinizer, see the screenshot below.&lt;br /&gt;
Note that every row denotes a command, has a name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-54-01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported,&lt;br /&gt;
&lt;br /&gt;
This is exported by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;Girr&amp;quot; as the Export format, checking &amp;quot;Parameters&amp;quot; and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a girr file.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-15-25.png]]&lt;br /&gt;
&lt;br /&gt;
After starting RMDU, the just-created simple girr file is imported through File -&amp;gt; Open.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
Next screenshot shows RMDU after the import:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-32-52.png]]&lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-33-56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select setup code and the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Screenshot_from_2022-05-14_21-15-25.png&amp;diff=2982</id>
		<title>File:Screenshot from 2022-05-14 21-15-25.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Screenshot_from_2022-05-14_21-15-25.png&amp;diff=2982"/>
		<updated>2022-05-14T20:25:43Z</updated>

		<summary type="html">&lt;p&gt;Barf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2689</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2689"/>
		<updated>2022-05-14T20:22:19Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Importing Foreign IR Remotes in RemoteMaster =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This guide will take the reader through a method for importing foreign (i.e. non-JP1) IR remotes into RemoteMaster.&#039;&#039;&lt;br /&gt;
&#039;&#039;The procedure requires some knowledge by the user, who have to make some manual decisions. The guide is not aimed at beginning users. Some prior knowledge about RemoteMaster and IrScrutinizer is assumed. Also, importing raw or unknown codes are not covered.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;RemoteMaster&amp;quot; export from IrScrutinizer 1.3 (or later) to a temporary file,&lt;br /&gt;
* Open the above created file in RemoteMaster. Select a usable executor manually. Perform other desired fixes.&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
The previous version of this article described a faily &amp;quot;dumb&amp;quot; method of exporting a Girr file from IrScrutinizer to a stripped-down RemoteMaster rmdu file, using a effectively empty, dummy executor called &amp;quot;ImportOnly&amp;quot;. This is imported in RemoteMaster, after which the user has to chose the executor manually. &lt;br /&gt;
The previous version can be access through the Wiki history function, or directly [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;amp;oldid=880 here].&lt;br /&gt;
&lt;br /&gt;
Since then, amazing work has been done in RemoteMaster on importing foreign IR signals, or more exactly, mapping the foreign protocols on the JP1&#039;s executors. Accordingly, Girr files can be imported directly, which makes the importing procedure almost automatic.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
= Solution =&lt;br /&gt;
&lt;br /&gt;
The [http://www.harctoolbox.org/Girr.html Girr format for IR signals] is an open and very versatile format for collections of IR signals. These can be parametrized, or in raw format. It is an XML based format.&lt;br /&gt;
&lt;br /&gt;
First, acquire or generate a suitable Girr file. [IrScrutinizer_Guide IrScrutinizer] can generate such files, either by (using a suitable hardware receiver) &amp;quot;learning&amp;quot; an available physical remote, or by importing/converting from other format. (See the example below).&lt;br /&gt;
&lt;br /&gt;
This file is then imported into RMDU, by &amp;quot;Open&amp;quot;-ing them. (See pictures in the next section). If the Girr file contains more than one remote, the useer is required to select one of them. In rare cases, the user is requested to select between several possible alternative executors.  Although the import almost always succeeds, in rare cases it may fail. The import should be checked for plausibility. Assign the keys to functions, and make other desired fixes. The thus created device update can now be used as any other update.&lt;br /&gt;
&lt;br /&gt;
Importing remotes is still a quite complicated process. Limitations (for example by &amp;quot;uncommon&amp;quot; protocols, or if signals from several substantially different protocols are present), and in rare cases even bugs, may show up. In this case, please report in the forum.&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls published set of IR commands].&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) Here we show the import from a csv file:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2022-16-25.png]]&lt;br /&gt;
&lt;br /&gt;
We now assume that this command set has been imported in IrScrutinizer, see the screenshot below.&lt;br /&gt;
Note that every row denotes a command, has a name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-54-01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported,&lt;br /&gt;
&lt;br /&gt;
This is exported by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;Girr&amp;quot; as the Export format, checking &amp;quot;Parameters&amp;quot; and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a girr file.&lt;br /&gt;
&lt;br /&gt;
After starting RMDU, the just-created simple girr file is imported through File -&amp;gt; Open.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
Next screenshot shows RMDU after the import:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-32-52.png]]&lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-33-56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select setup code and the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2688</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2688"/>
		<updated>2022-05-14T20:21:51Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Preparation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Importing Foreign IR Remotes in RemoteMaster =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This guide will take the reader through a method for importing foreign (i.e. non-JP1) IR remotes into RemoteMaster.&#039;&#039;&lt;br /&gt;
&#039;&#039;The procedure requires some knowledge by the user, who have to make some manual decisions. The guide is not aimed at beginning users. Some prior knowledge about RemoteMaster and IrScrutinizer is assumed. Also, importing raw or unknown codes are not covered.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;RemoteMaster&amp;quot; export from IrScrutinizer 1.3 (or later) to a temporary file,&lt;br /&gt;
* Open the above created file in RemoteMaster. Select a usable executor manually. Perform other desired fixes.&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
The previous version of this article described a faily &amp;quot;dumb&amp;quot; method of exporting a Girr file from IrScrutinizer to a stripped-down RemoteMaster rmdu file, using a effectively empty, dummy executor called &amp;quot;ImportOnly&amp;quot;. This is imported in RemoteMaster, after which the user has to chose the executor manually. &lt;br /&gt;
The previous version can be access through the Wiki history function, or directly [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;amp;oldid=880 here].&lt;br /&gt;
&lt;br /&gt;
Since then, amazing work has been done in RemoteMaster on importing foreign IR signals, or more exactly, mapping the foreign protocols on the JP1&#039;s executors. Accordingly, Girr files can be imported directly, which makes the importing procedure almost automatic.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
= Solution =&lt;br /&gt;
&lt;br /&gt;
The [http://www.harctoolbox.org/Girr.html Girr format for IR signals] is an open and very versatile format for collections of IR signals. These can be parametrized, or in raw format. It is an XML based format.&lt;br /&gt;
&lt;br /&gt;
First, acquire or generate a suitable Girr file. [IrScrutinizer_Guide IrScrutinizer] can generate such files, either by (using a suitable hardware receiver) &amp;quot;learning&amp;quot; an available physical remote, or by importing/converting from other format. (See the example below).&lt;br /&gt;
&lt;br /&gt;
This file is then imported into RMDU, by &amp;quot;Open&amp;quot;-ing them. (See pictures in the next section). If the Girr file contains more than one remote, the useer is required to select one of them. In rare cases, the user is requested to select between several possible alternative executors.  Although the import almost always succeeds, in rare cases it may fail. The import should be checked for plausibility. Assign the keys to functions, and make other desired fixes. The thus created device update can now be used as any other update.&lt;br /&gt;
&lt;br /&gt;
== Remark ==&lt;br /&gt;
&lt;br /&gt;
Importing remotes is still a quite complicated process. Limitations (for example by &amp;quot;uncommon&amp;quot; protocols, or if signals from several substantially different protocols are present), and in rare cases even bugs, may show up. In this case, please report in the forum.&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls published set of IR commands].&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) Here we show the import from a csv file:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2022-16-25.png]]&lt;br /&gt;
&lt;br /&gt;
We now assume that this command set has been imported in IrScrutinizer, see the screenshot below.&lt;br /&gt;
Note that every row denotes a command, has a name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-54-01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported,&lt;br /&gt;
&lt;br /&gt;
This is exported by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;Girr&amp;quot; as the Export format, checking &amp;quot;Parameters&amp;quot; and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a girr file.&lt;br /&gt;
&lt;br /&gt;
After starting RMDU, the just-created simple girr file is imported through File -&amp;gt; Open.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
Next screenshot shows RMDU after the import:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-32-52.png]]&lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-33-56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select setup code and the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2687</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2687"/>
		<updated>2022-05-14T20:20:39Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Importing Foreign IR Remotes in RemoteMaster =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This guide will take the reader through a method for importing foreign (i.e. non-JP1) IR remotes into RemoteMaster.&#039;&#039;&lt;br /&gt;
&#039;&#039;The procedure requires some knowledge by the user, who have to make some manual decisions. The guide is not aimed at beginning users. Some prior knowledge about RemoteMaster and IrScrutinizer is assumed. Also, importing raw or unknown codes are not covered.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;RemoteMaster&amp;quot; export from IrScrutinizer 1.3 (or later) to a temporary file,&lt;br /&gt;
* Open the above created file in RemoteMaster. Select a usable executor manually. Perform other desired fixes.&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
The previous version of this article described a faily &amp;quot;dumb&amp;quot; method of exporting a Girr file from IrScrutinizer to a stripped-down RemoteMaster rmdu file, using a effectively empty, dummy executor called &amp;quot;ImportOnly&amp;quot;. This is imported in RemoteMaster, after which the user has to chose the executor manually. &lt;br /&gt;
The previous version can be access through the Wiki history function, or directly [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;amp;oldid=880 here].&lt;br /&gt;
&lt;br /&gt;
Since then, amazing work has been done in RemoteMaster on importing foreign IR signals, or more exactly, mapping the foreign protocols on the JP1&#039;s executors. Accordingly, Girr files can be imported directly, which makes the importing procedure almost automatic.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
= Preparation =&lt;br /&gt;
Two things needs to be done once-and-for all to RM. These need not be repeated.&lt;br /&gt;
&lt;br /&gt;
== Extending &#039;&#039;&#039;protocols.ini&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
RemoteMaster&#039;s data base &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;, located in&lt;br /&gt;
the base directory of RM, already contains &#039;&#039;&#039;ImportOnly&#039;&#039;&#039; since version 2.04 build 9. If using an earlier version,&lt;br /&gt;
add the following lines&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# Add this to the end of protocols.ini of Remotemaster in order&lt;br /&gt;
# to import IrScrutinizer rmdu exports.&lt;br /&gt;
[ImportOnly]&lt;br /&gt;
PID=99 99&lt;br /&gt;
DevParms=Device:8=0,Sub Device:8=0&lt;br /&gt;
DeviceTranslator=Translator()&lt;br /&gt;
CmdParms=OBC:16=0&lt;br /&gt;
DefaultCmd=00&lt;br /&gt;
CmdTranslator=Translator()&lt;br /&gt;
Notes=This is a trival dummy executor (protocol), intended to import third-party incomplete device updates, allowing the user to manually fix it up. It will preserve Device, Sub Device, and OBC.\n\nThe user must select a usable protocol instead of this one. First please check Options -&amp;gt; &amp;quot;Allow preserve Control&amp;quot;, and then select &amp;quot;Preserve: OBC and function parameters&amp;quot; on the &amp;quot;Setup&amp;quot; pane.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Selecting &#039;&#039;&#039;Allow preserve control&#039;&#039;&#039; ==&lt;br /&gt;
The RM parameter &#039;&#039;&#039;Allow preserve control&#039;&#039;&#039; has to be selected; see figure&lt;br /&gt;
[[Image:rm_select_allow_preserve.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Solution =&lt;br /&gt;
&lt;br /&gt;
The [http://www.harctoolbox.org/Girr.html Girr format for IR signals] is an open and very versatile format for collections of IR signals. These can be parametrized, or in raw format. It is an XML based format.&lt;br /&gt;
&lt;br /&gt;
First, acquire or generate a suitable Girr file. [IrScrutinizer_Guide IrScrutinizer] can generate such files, either by (using a suitable hardware receiver) &amp;quot;learning&amp;quot; an available physical remote, or by importing/converting from other format. (See the example below).&lt;br /&gt;
&lt;br /&gt;
This file is then imported into RMDU, by &amp;quot;Open&amp;quot;-ing them. (See pictures in the next section). If the Girr file contains more than one remote, the useer is required to select one of them. In rare cases, the user is requested to select between several possible alternative executors.  Although the import almost always succeeds, in rare cases it may fail. The import should be checked for plausibility. Assign the keys to functions, and make other desired fixes. The thus created device update can now be used as any other update.&lt;br /&gt;
&lt;br /&gt;
== Remark ==&lt;br /&gt;
&lt;br /&gt;
Importing remotes is still a quite complicated process. Limitations (for example by &amp;quot;uncommon&amp;quot; protocols, or if signals from several substantially different protocols are present), and in rare cases even bugs, may show up. In this case, please report in the forum.&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls published set of IR commands].&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) Here we show the import from a csv file:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2022-16-25.png]]&lt;br /&gt;
&lt;br /&gt;
We now assume that this command set has been imported in IrScrutinizer, see the screenshot below.&lt;br /&gt;
Note that every row denotes a command, has a name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-54-01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported,&lt;br /&gt;
&lt;br /&gt;
This is exported by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;Girr&amp;quot; as the Export format, checking &amp;quot;Parameters&amp;quot; and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a girr file.&lt;br /&gt;
&lt;br /&gt;
After starting RMDU, the just-created simple girr file is imported through File -&amp;gt; Open.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
Next screenshot shows RMDU after the import:&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-32-52.png]]&lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:Screenshot%20from%202022-05-14%2021-33-56.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select setup code and the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Screenshot_from_2022-05-14_22-16-25.png&amp;diff=2980</id>
		<title>File:Screenshot from 2022-05-14 22-16-25.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Screenshot_from_2022-05-14_22-16-25.png&amp;diff=2980"/>
		<updated>2022-05-14T20:18:46Z</updated>

		<summary type="html">&lt;p&gt;Barf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Screenshot_from_2022-05-14_21-33-56.png&amp;diff=2978</id>
		<title>File:Screenshot from 2022-05-14 21-33-56.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Screenshot_from_2022-05-14_21-33-56.png&amp;diff=2978"/>
		<updated>2022-05-14T20:11:58Z</updated>

		<summary type="html">&lt;p&gt;Barf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Screenshot_from_2022-05-14_21-32-52.png&amp;diff=2976</id>
		<title>File:Screenshot from 2022-05-14 21-32-52.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Screenshot_from_2022-05-14_21-32-52.png&amp;diff=2976"/>
		<updated>2022-05-14T20:11:16Z</updated>

		<summary type="html">&lt;p&gt;Barf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Screenshot_from_2022-05-14_21-54-01.png&amp;diff=2974</id>
		<title>File:Screenshot from 2022-05-14 21-54-01.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Screenshot_from_2022-05-14_21-54-01.png&amp;diff=2974"/>
		<updated>2022-05-14T19:58:15Z</updated>

		<summary type="html">&lt;p&gt;Barf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2686</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2686"/>
		<updated>2022-05-14T19:49:18Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Outline of Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Importing Foreign IR Remotes in RemoteMaster =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This guide will take the reader through a method for importing foreign (i.e. non-JP1) IR remotes into RemoteMaster.&#039;&#039;&lt;br /&gt;
&#039;&#039;The procedure requires some knowledge by the user, who have to make some manual decisions. The guide is not aimed at beginning users. Some prior knowledge about RemoteMaster and IrScrutinizer is assumed. Also, importing raw or unknown codes are not covered.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;RemoteMaster&amp;quot; export from IrScrutinizer 1.3 (or later) to a temporary file,&lt;br /&gt;
* Open the above created file in RemoteMaster. Select a usable executor manually. Perform other desired fixes.&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
The previous version of this article described a faily &amp;quot;dumb&amp;quot; method of exporting a Girr file from IrScrutinizer to a stripped-down RemoteMaster rmdu file, using a effectively empty, dummy executor called &amp;quot;ImportOnly&amp;quot;. This is imported in RemoteMaster, after which the user has to chose the executor manually. &lt;br /&gt;
The previous version can be access through the Wiki history function, or directly [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;amp;oldid=880 here].&lt;br /&gt;
&lt;br /&gt;
Since then, amazing work has been done in RemoteMaster on importing foreign IR signals, or more exactly, mapping the foreign protocols on the JP1&#039;s executors. Accordingly, Girr files can be imported directly, which makes the importing procedure almost automatic.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
= Preparation =&lt;br /&gt;
Two things needs to be done once-and-for all to RM. These need not be repeated.&lt;br /&gt;
&lt;br /&gt;
== Extending &#039;&#039;&#039;protocols.ini&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
RemoteMaster&#039;s data base &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;, located in&lt;br /&gt;
the base directory of RM, already contains &#039;&#039;&#039;ImportOnly&#039;&#039;&#039; since version 2.04 build 9. If using an earlier version,&lt;br /&gt;
add the following lines&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# Add this to the end of protocols.ini of Remotemaster in order&lt;br /&gt;
# to import IrScrutinizer rmdu exports.&lt;br /&gt;
[ImportOnly]&lt;br /&gt;
PID=99 99&lt;br /&gt;
DevParms=Device:8=0,Sub Device:8=0&lt;br /&gt;
DeviceTranslator=Translator()&lt;br /&gt;
CmdParms=OBC:16=0&lt;br /&gt;
DefaultCmd=00&lt;br /&gt;
CmdTranslator=Translator()&lt;br /&gt;
Notes=This is a trival dummy executor (protocol), intended to import third-party incomplete device updates, allowing the user to manually fix it up. It will preserve Device, Sub Device, and OBC.\n\nThe user must select a usable protocol instead of this one. First please check Options -&amp;gt; &amp;quot;Allow preserve Control&amp;quot;, and then select &amp;quot;Preserve: OBC and function parameters&amp;quot; on the &amp;quot;Setup&amp;quot; pane.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Selecting &#039;&#039;&#039;Allow preserve control&#039;&#039;&#039; ==&lt;br /&gt;
The RM parameter &#039;&#039;&#039;Allow preserve control&#039;&#039;&#039; has to be selected; see figure&lt;br /&gt;
[[Image:rm_select_allow_preserve.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Solution =&lt;br /&gt;
&lt;br /&gt;
The [http://www.harctoolbox.org/Girr.html Girr format for IR signals] is an open and very versatile format for collections of IR signals. These can be parametrized, or in raw format. It is an XML based format.&lt;br /&gt;
&lt;br /&gt;
First, acquire or generate a suitable Girr file. [IrScrutinizer_Guide IrScrutinizer] can generate such files, either by (using a suitable hardware receiver) &amp;quot;learning&amp;quot; an available physical remote, or by importing/converting from other format. (See the example below).&lt;br /&gt;
&lt;br /&gt;
This file is then imported into RMDU, by &amp;quot;Open&amp;quot;-ing them. (See pictures in the next section). If the Girr file contains more than one remote, the useer is required to select one of them. In rare cases, the user is requested to select between several possible alternative executors.  Although the import almost always succeeds, in rare cases it may fail. The import should be checked for plausibility. Assign the keys to functions, and make other desired fixes. The thus created device update can now be used as any other update.&lt;br /&gt;
&lt;br /&gt;
== Remark ==&lt;br /&gt;
&lt;br /&gt;
Importing remotes is still a quite complicated process. Limitations (for example by &amp;quot;uncommon&amp;quot; protocols, or if signals from several substantially different protocols are present), and in rare cases even bugs, may show up. In this case, please report in the forum.&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls published set of IR commands].&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) We assume that this command set has been imported in IrScrutinizer, see figure.&lt;br /&gt;
Note that every row denotes a command, has a name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_param_table.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported,&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_param_export_rmdu.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;RemoteMaster&amp;quot; as the Export format, and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a simple rmdu file.&lt;br /&gt;
&lt;br /&gt;
We assume that RM has been prepared as per above. After starting, the just-created simple rmdu file is opened (File -&amp;gt; Open).&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
After opening the file, RM will present an error popup:&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_popup.png]]&lt;br /&gt;
&lt;br /&gt;
This simply means that, although RM understood the protocol (executor really) named &#039;&#039;&#039;ImportOnly&#039;&#039;&#039;&lt;br /&gt;
(because _we_ put it into its &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;!), it says that the currently selected remote does not support it, and the&lt;br /&gt;
user must select another one. (Just as we would expect!) We know that the desired protocol is called &amp;quot;NEC1&amp;quot;,&lt;br /&gt;
so we next have to select an executor implementing that protocol. For the purpose of this example, we select the &lt;br /&gt;
executor named &#039;&#039;&#039;NEC1&#039;&#039;&#039;, using the &amp;quot;Protocol&amp;quot; combo box. Make sure that as &amp;quot;Preserve&amp;quot; &amp;quot;OBC and function parameters&amp;quot; is selected.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_selected_executor.png]]&lt;br /&gt;
&lt;br /&gt;
Check that the protocol parameters (executor parameters really) make sense. &lt;br /&gt;
Here, the &amp;quot;D&amp;quot; in the protocol has been successfully turned into the parameter &amp;quot;Device&amp;quot; (= 73),&lt;br /&gt;
and the &amp;quot;Sub Device&amp;quot; is empty, as expected. &lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_imported_functions.png]]&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2685</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2685"/>
		<updated>2022-05-14T19:45:10Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Background (Mythbuster&amp;#039;s lingo: Danger: Science!) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Importing Foreign IR Remotes in RemoteMaster =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This guide will take the reader through a method for importing foreign (i.e. non-JP1) IR remotes into RemoteMaster.&#039;&#039;&lt;br /&gt;
&#039;&#039;The procedure requires some knowledge by the user, who have to make some manual decisions. The guide is not aimed at beginning users. Some prior knowledge about RemoteMaster and IrScrutinizer is assumed. Also, importing raw or unknown codes are not covered.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;RemoteMaster&amp;quot; export from IrScrutinizer 1.3 (or later) to a temporary file,&lt;br /&gt;
* Open the above created file in RemoteMaster. Select a usable executor manually. Perform other desired fixes.&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
The previous version of this article described a faily &amp;quot;dumb&amp;quot; method of exporting a Girr file from IrScrutinizer to a stripped-down RemoteMaster rmdu file, using a effectively empty, dummy executor called &amp;quot;ImportOnly&amp;quot;. This is imported in RemoteMaster, after which the user has to chose the executor manually. &lt;br /&gt;
The previous version can be access through the Wiki history function, or directly [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;amp;oldid=880 here].&lt;br /&gt;
&lt;br /&gt;
Since then, amazing work has been done in RemoteMaster on importing foreign IR signals, or more exactly, mapping the foreign protocols on the JP1&#039;s executors. Accordingly, Girr files can be imported directly, which makes the importing procedure almost automatic.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
= Outline of Solution =&lt;br /&gt;
A deliberately &amp;quot;dumb&amp;quot; solution is proposed. &lt;br /&gt;
A trivial &amp;quot;mock&amp;quot; executor, &#039;&#039;&#039;ImportOnly&#039;&#039;&#039;, having hex = OBC, has been added to &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;.&lt;br /&gt;
An export is performed using this executer.&lt;br /&gt;
We then rely on the user to select a usable executor, and on RM to compute the corresponding parameters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Preparation =&lt;br /&gt;
Two things needs to be done once-and-for all to RM. These need not be repeated.&lt;br /&gt;
&lt;br /&gt;
== Extending &#039;&#039;&#039;protocols.ini&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
RemoteMaster&#039;s data base &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;, located in&lt;br /&gt;
the base directory of RM, already contains &#039;&#039;&#039;ImportOnly&#039;&#039;&#039; since version 2.04 build 9. If using an earlier version,&lt;br /&gt;
add the following lines&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# Add this to the end of protocols.ini of Remotemaster in order&lt;br /&gt;
# to import IrScrutinizer rmdu exports.&lt;br /&gt;
[ImportOnly]&lt;br /&gt;
PID=99 99&lt;br /&gt;
DevParms=Device:8=0,Sub Device:8=0&lt;br /&gt;
DeviceTranslator=Translator()&lt;br /&gt;
CmdParms=OBC:16=0&lt;br /&gt;
DefaultCmd=00&lt;br /&gt;
CmdTranslator=Translator()&lt;br /&gt;
Notes=This is a trival dummy executor (protocol), intended to import third-party incomplete device updates, allowing the user to manually fix it up. It will preserve Device, Sub Device, and OBC.\n\nThe user must select a usable protocol instead of this one. First please check Options -&amp;gt; &amp;quot;Allow preserve Control&amp;quot;, and then select &amp;quot;Preserve: OBC and function parameters&amp;quot; on the &amp;quot;Setup&amp;quot; pane.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Selecting &#039;&#039;&#039;Allow preserve control&#039;&#039;&#039; ==&lt;br /&gt;
The RM parameter &#039;&#039;&#039;Allow preserve control&#039;&#039;&#039; has to be selected; see figure&lt;br /&gt;
[[Image:rm_select_allow_preserve.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Solution =&lt;br /&gt;
&lt;br /&gt;
The [http://www.harctoolbox.org/Girr.html Girr format for IR signals] is an open and very versatile format for collections of IR signals. These can be parametrized, or in raw format. It is an XML based format.&lt;br /&gt;
&lt;br /&gt;
First, acquire or generate a suitable Girr file. [IrScrutinizer_Guide IrScrutinizer] can generate such files, either by (using a suitable hardware receiver) &amp;quot;learning&amp;quot; an available physical remote, or by importing/converting from other format. (See the example below).&lt;br /&gt;
&lt;br /&gt;
This file is then imported into RMDU, by &amp;quot;Open&amp;quot;-ing them. (See pictures in the next section). If the Girr file contains more than one remote, the useer is required to select one of them. In rare cases, the user is requested to select between several possible alternative executors.  Although the import almost always succeeds, in rare cases it may fail. The import should be checked for plausibility. Assign the keys to functions, and make other desired fixes. The thus created device update can now be used as any other update.&lt;br /&gt;
&lt;br /&gt;
== Remark ==&lt;br /&gt;
&lt;br /&gt;
Importing remotes is still a quite complicated process. Limitations (for example by &amp;quot;uncommon&amp;quot; protocols, or if signals from several substantially different protocols are present), and in rare cases even bugs, may show up. In this case, please report in the forum.&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls published set of IR commands].&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) We assume that this command set has been imported in IrScrutinizer, see figure.&lt;br /&gt;
Note that every row denotes a command, has a name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_param_table.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported,&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_param_export_rmdu.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;RemoteMaster&amp;quot; as the Export format, and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a simple rmdu file.&lt;br /&gt;
&lt;br /&gt;
We assume that RM has been prepared as per above. After starting, the just-created simple rmdu file is opened (File -&amp;gt; Open).&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
After opening the file, RM will present an error popup:&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_popup.png]]&lt;br /&gt;
&lt;br /&gt;
This simply means that, although RM understood the protocol (executor really) named &#039;&#039;&#039;ImportOnly&#039;&#039;&#039;&lt;br /&gt;
(because _we_ put it into its &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;!), it says that the currently selected remote does not support it, and the&lt;br /&gt;
user must select another one. (Just as we would expect!) We know that the desired protocol is called &amp;quot;NEC1&amp;quot;,&lt;br /&gt;
so we next have to select an executor implementing that protocol. For the purpose of this example, we select the &lt;br /&gt;
executor named &#039;&#039;&#039;NEC1&#039;&#039;&#039;, using the &amp;quot;Protocol&amp;quot; combo box. Make sure that as &amp;quot;Preserve&amp;quot; &amp;quot;OBC and function parameters&amp;quot; is selected.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_selected_executor.png]]&lt;br /&gt;
&lt;br /&gt;
Check that the protocol parameters (executor parameters really) make sense. &lt;br /&gt;
Here, the &amp;quot;D&amp;quot; in the protocol has been successfully turned into the parameter &amp;quot;Device&amp;quot; (= 73),&lt;br /&gt;
and the &amp;quot;Sub Device&amp;quot; is empty, as expected. &lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_imported_functions.png]]&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2684</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2684"/>
		<updated>2022-05-14T19:40:16Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Importing Foreign IR Remotes in RemoteMaster =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This guide will take the reader through a method for importing foreign (i.e. non-JP1) IR remotes into RemoteMaster.&#039;&#039;&lt;br /&gt;
&#039;&#039;The procedure requires some knowledge by the user, who have to make some manual decisions. The guide is not aimed at beginning users. Some prior knowledge about RemoteMaster and IrScrutinizer is assumed. Also, importing raw or unknown codes are not covered.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;RemoteMaster&amp;quot; export from IrScrutinizer 1.3 (or later) to a temporary file,&lt;br /&gt;
* Open the above created file in RemoteMaster. Select a usable executor manually. Perform other desired fixes.&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
The previous version of this article described a faily &amp;quot;dumb&amp;quot; method of exporting a Girr file from IrScrutinizer to a stripped-down RemoteMaster rmdu file, using a effectively empty, dummy executor called &amp;quot;ImportOnly&amp;quot;. This is imported in RemoteMaster, after which the user has to chose the executor manually. &lt;br /&gt;
The previous version can be access through the Wiki history function, or directly [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;amp;oldid=880 here].&lt;br /&gt;
&lt;br /&gt;
Since then, amazing work has been done in RemoteMaster on importing foreign IR signals, or more exactly, mapping the foreign protocols on the JP1&#039;s executors. Accordingly, Girr files can be imported directly, which makes the importing procedure almost automatic.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
= Background (Mythbuster&#039;s lingo: Danger: Science!) =&lt;br /&gt;
The protocol and the corresponding parameter values constitute a mathematical description of how to render the signal as &lt;br /&gt;
a sequence of on/off durations. This is good for us to examine, generate, exchange with others. Unfortunately, it is not&lt;br /&gt;
quite the language the UEI remotes speak: Instead of &amp;quot;protocols&amp;quot;, they contain a number of &amp;quot;executors&amp;quot;,&lt;br /&gt;
which are a small programs in machine code, responsible for computing the IR signal. Unfortunately, they are&lt;br /&gt;
in general differently parameterized, and not in 1-1 correspondence with the protocols.&lt;br /&gt;
Many executors implement several different protocols,&lt;br /&gt;
so-called &amp;quot;combos&amp;quot;. Also, for a particular protocol, there are often more than one executor to choose from. To make things extra&lt;br /&gt;
interesting, &amp;quot;executors&amp;quot; are in the RM program and documentation in general referred to as &amp;quot;protocols&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For example, the NEC1 protocol is implemented by a number of different executors, &#039;&#039;&#039;NEC1&#039;&#039;&#039;, &#039;&#039;&#039;NEC 1or2 Combo&#039;&#039;&#039;, &#039;&#039;&#039;NEC 2DEV Combo&#039;&#039;&#039;, &#039;&#039;&#039;NEC 4DEV Combo&#039;&#039;&#039;,&lt;br /&gt;
and others. Some of these also implement other protocols (like NEC2), some allow several different &amp;quot;D&amp;quot;s.  All have slightly different&lt;br /&gt;
properties.&lt;br /&gt;
&lt;br /&gt;
Another problem is that the master parameter for the individual commands is the &amp;quot;F&amp;quot; parameter (called &amp;quot;OBC&amp;quot; in RM)&lt;br /&gt;
in the protocol,&lt;br /&gt;
but the &#039;&#039;&#039;hex&#039;&#039;&#039; parameter in RM. The details are outside of the scope of this article, but we just state some facts&lt;br /&gt;
about the mapping OBC &amp;lt;-&amp;gt; hex:&lt;br /&gt;
* it depends on the executor (i.e., it is different for different executors),&lt;br /&gt;
* the &#039;&#039;&#039;hex&#039;&#039;&#039; parameter might depend on more input data than the OBC,&lt;br /&gt;
* it is &amp;quot;complicated&amp;quot;, but deterministic and memory-less,&lt;br /&gt;
* RM can do this computation, provided that &#039;&#039;&#039;Allow Preserve Control&#039;&#039;&#039;&lt;br /&gt;
(accessable as Options -&amp;gt; Allow Preserve control) has been selected.&lt;br /&gt;
&lt;br /&gt;
Importing a set of IR commands basically boils down to selecting an executor, computing its parameters,&lt;br /&gt;
and, for all contained commands, compute the hex parameter.&lt;br /&gt;
&lt;br /&gt;
For this reason, it has not been attempted to automatically selecting the executor from input data.&lt;br /&gt;
Instead, this is delegated to the user. The following solution is proposed:&lt;br /&gt;
&lt;br /&gt;
= Outline of Solution =&lt;br /&gt;
A deliberately &amp;quot;dumb&amp;quot; solution is proposed. &lt;br /&gt;
A trivial &amp;quot;mock&amp;quot; executor, &#039;&#039;&#039;ImportOnly&#039;&#039;&#039;, having hex = OBC, has been added to &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;.&lt;br /&gt;
An export is performed using this executer.&lt;br /&gt;
We then rely on the user to select a usable executor, and on RM to compute the corresponding parameters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Preparation =&lt;br /&gt;
Two things needs to be done once-and-for all to RM. These need not be repeated.&lt;br /&gt;
&lt;br /&gt;
== Extending &#039;&#039;&#039;protocols.ini&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
RemoteMaster&#039;s data base &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;, located in&lt;br /&gt;
the base directory of RM, already contains &#039;&#039;&#039;ImportOnly&#039;&#039;&#039; since version 2.04 build 9. If using an earlier version,&lt;br /&gt;
add the following lines&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# Add this to the end of protocols.ini of Remotemaster in order&lt;br /&gt;
# to import IrScrutinizer rmdu exports.&lt;br /&gt;
[ImportOnly]&lt;br /&gt;
PID=99 99&lt;br /&gt;
DevParms=Device:8=0,Sub Device:8=0&lt;br /&gt;
DeviceTranslator=Translator()&lt;br /&gt;
CmdParms=OBC:16=0&lt;br /&gt;
DefaultCmd=00&lt;br /&gt;
CmdTranslator=Translator()&lt;br /&gt;
Notes=This is a trival dummy executor (protocol), intended to import third-party incomplete device updates, allowing the user to manually fix it up. It will preserve Device, Sub Device, and OBC.\n\nThe user must select a usable protocol instead of this one. First please check Options -&amp;gt; &amp;quot;Allow preserve Control&amp;quot;, and then select &amp;quot;Preserve: OBC and function parameters&amp;quot; on the &amp;quot;Setup&amp;quot; pane.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Selecting &#039;&#039;&#039;Allow preserve control&#039;&#039;&#039; ==&lt;br /&gt;
The RM parameter &#039;&#039;&#039;Allow preserve control&#039;&#039;&#039; has to be selected; see figure&lt;br /&gt;
[[Image:rm_select_allow_preserve.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Solution =&lt;br /&gt;
&lt;br /&gt;
The [http://www.harctoolbox.org/Girr.html Girr format for IR signals] is an open and very versatile format for collections of IR signals. These can be parametrized, or in raw format. It is an XML based format.&lt;br /&gt;
&lt;br /&gt;
First, acquire or generate a suitable Girr file. [IrScrutinizer_Guide IrScrutinizer] can generate such files, either by (using a suitable hardware receiver) &amp;quot;learning&amp;quot; an available physical remote, or by importing/converting from other format. (See the example below).&lt;br /&gt;
&lt;br /&gt;
This file is then imported into RMDU, by &amp;quot;Open&amp;quot;-ing them. (See pictures in the next section). If the Girr file contains more than one remote, the useer is required to select one of them. In rare cases, the user is requested to select between several possible alternative executors.  Although the import almost always succeeds, in rare cases it may fail. The import should be checked for plausibility. Assign the keys to functions, and make other desired fixes. The thus created device update can now be used as any other update.&lt;br /&gt;
&lt;br /&gt;
== Remark ==&lt;br /&gt;
&lt;br /&gt;
Importing remotes is still a quite complicated process. Limitations (for example by &amp;quot;uncommon&amp;quot; protocols, or if signals from several substantially different protocols are present), and in rare cases even bugs, may show up. In this case, please report in the forum.&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls published set of IR commands].&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) We assume that this command set has been imported in IrScrutinizer, see figure.&lt;br /&gt;
Note that every row denotes a command, has a name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_param_table.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported,&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_param_export_rmdu.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;RemoteMaster&amp;quot; as the Export format, and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a simple rmdu file.&lt;br /&gt;
&lt;br /&gt;
We assume that RM has been prepared as per above. After starting, the just-created simple rmdu file is opened (File -&amp;gt; Open).&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
After opening the file, RM will present an error popup:&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_popup.png]]&lt;br /&gt;
&lt;br /&gt;
This simply means that, although RM understood the protocol (executor really) named &#039;&#039;&#039;ImportOnly&#039;&#039;&#039;&lt;br /&gt;
(because _we_ put it into its &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;!), it says that the currently selected remote does not support it, and the&lt;br /&gt;
user must select another one. (Just as we would expect!) We know that the desired protocol is called &amp;quot;NEC1&amp;quot;,&lt;br /&gt;
so we next have to select an executor implementing that protocol. For the purpose of this example, we select the &lt;br /&gt;
executor named &#039;&#039;&#039;NEC1&#039;&#039;&#039;, using the &amp;quot;Protocol&amp;quot; combo box. Make sure that as &amp;quot;Preserve&amp;quot; &amp;quot;OBC and function parameters&amp;quot; is selected.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_selected_executor.png]]&lt;br /&gt;
&lt;br /&gt;
Check that the protocol parameters (executor parameters really) make sense. &lt;br /&gt;
Here, the &amp;quot;D&amp;quot; in the protocol has been successfully turned into the parameter &amp;quot;Device&amp;quot; (= 73),&lt;br /&gt;
and the &amp;quot;Sub Device&amp;quot; is empty, as expected. &lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_imported_functions.png]]&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2683</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2683"/>
		<updated>2022-05-14T19:38:06Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Procedure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Importing Foreign IR Remotes in RemoteMaster =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This guide will take the reader through a method for importing foreign (i.e. non-JP1) IR remotes into RemoteMaster.&#039;&#039;&lt;br /&gt;
&#039;&#039;The procedure requires some knowledge by the user, who have to make some manual decisions. The guide is not aimed at beginning users. Some prior knowledge about RemoteMaster and IrScrutinizer is assumed. Also, importing raw or unknown codes are not covered.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;RemoteMaster&amp;quot; export from IrScrutinizer 1.3 (or later) to a temporary file,&lt;br /&gt;
* Open the above created file in RemoteMaster. Select a usable executor manually. Perform other desired fixes.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
This article only deals with decoded signals, i.e., the IR signals are considered as consisting of a parametrized protocol,&lt;br /&gt;
together with its parameters. Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
It turns out that, with the current state of technology, the process is not fully automatic, but necessarily involves human interaction.&lt;br /&gt;
&lt;br /&gt;
= Background (Mythbuster&#039;s lingo: Danger: Science!) =&lt;br /&gt;
The protocol and the corresponding parameter values constitute a mathematical description of how to render the signal as &lt;br /&gt;
a sequence of on/off durations. This is good for us to examine, generate, exchange with others. Unfortunately, it is not&lt;br /&gt;
quite the language the UEI remotes speak: Instead of &amp;quot;protocols&amp;quot;, they contain a number of &amp;quot;executors&amp;quot;,&lt;br /&gt;
which are a small programs in machine code, responsible for computing the IR signal. Unfortunately, they are&lt;br /&gt;
in general differently parameterized, and not in 1-1 correspondence with the protocols.&lt;br /&gt;
Many executors implement several different protocols,&lt;br /&gt;
so-called &amp;quot;combos&amp;quot;. Also, for a particular protocol, there are often more than one executor to choose from. To make things extra&lt;br /&gt;
interesting, &amp;quot;executors&amp;quot; are in the RM program and documentation in general referred to as &amp;quot;protocols&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For example, the NEC1 protocol is implemented by a number of different executors, &#039;&#039;&#039;NEC1&#039;&#039;&#039;, &#039;&#039;&#039;NEC 1or2 Combo&#039;&#039;&#039;, &#039;&#039;&#039;NEC 2DEV Combo&#039;&#039;&#039;, &#039;&#039;&#039;NEC 4DEV Combo&#039;&#039;&#039;,&lt;br /&gt;
and others. Some of these also implement other protocols (like NEC2), some allow several different &amp;quot;D&amp;quot;s.  All have slightly different&lt;br /&gt;
properties.&lt;br /&gt;
&lt;br /&gt;
Another problem is that the master parameter for the individual commands is the &amp;quot;F&amp;quot; parameter (called &amp;quot;OBC&amp;quot; in RM)&lt;br /&gt;
in the protocol,&lt;br /&gt;
but the &#039;&#039;&#039;hex&#039;&#039;&#039; parameter in RM. The details are outside of the scope of this article, but we just state some facts&lt;br /&gt;
about the mapping OBC &amp;lt;-&amp;gt; hex:&lt;br /&gt;
* it depends on the executor (i.e., it is different for different executors),&lt;br /&gt;
* the &#039;&#039;&#039;hex&#039;&#039;&#039; parameter might depend on more input data than the OBC,&lt;br /&gt;
* it is &amp;quot;complicated&amp;quot;, but deterministic and memory-less,&lt;br /&gt;
* RM can do this computation, provided that &#039;&#039;&#039;Allow Preserve Control&#039;&#039;&#039;&lt;br /&gt;
(accessable as Options -&amp;gt; Allow Preserve control) has been selected.&lt;br /&gt;
&lt;br /&gt;
Importing a set of IR commands basically boils down to selecting an executor, computing its parameters,&lt;br /&gt;
and, for all contained commands, compute the hex parameter.&lt;br /&gt;
&lt;br /&gt;
For this reason, it has not been attempted to automatically selecting the executor from input data.&lt;br /&gt;
Instead, this is delegated to the user. The following solution is proposed:&lt;br /&gt;
&lt;br /&gt;
= Outline of Solution =&lt;br /&gt;
A deliberately &amp;quot;dumb&amp;quot; solution is proposed. &lt;br /&gt;
A trivial &amp;quot;mock&amp;quot; executor, &#039;&#039;&#039;ImportOnly&#039;&#039;&#039;, having hex = OBC, has been added to &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;.&lt;br /&gt;
An export is performed using this executer.&lt;br /&gt;
We then rely on the user to select a usable executor, and on RM to compute the corresponding parameters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Preparation =&lt;br /&gt;
Two things needs to be done once-and-for all to RM. These need not be repeated.&lt;br /&gt;
&lt;br /&gt;
== Extending &#039;&#039;&#039;protocols.ini&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
RemoteMaster&#039;s data base &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;, located in&lt;br /&gt;
the base directory of RM, already contains &#039;&#039;&#039;ImportOnly&#039;&#039;&#039; since version 2.04 build 9. If using an earlier version,&lt;br /&gt;
add the following lines&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# Add this to the end of protocols.ini of Remotemaster in order&lt;br /&gt;
# to import IrScrutinizer rmdu exports.&lt;br /&gt;
[ImportOnly]&lt;br /&gt;
PID=99 99&lt;br /&gt;
DevParms=Device:8=0,Sub Device:8=0&lt;br /&gt;
DeviceTranslator=Translator()&lt;br /&gt;
CmdParms=OBC:16=0&lt;br /&gt;
DefaultCmd=00&lt;br /&gt;
CmdTranslator=Translator()&lt;br /&gt;
Notes=This is a trival dummy executor (protocol), intended to import third-party incomplete device updates, allowing the user to manually fix it up. It will preserve Device, Sub Device, and OBC.\n\nThe user must select a usable protocol instead of this one. First please check Options -&amp;gt; &amp;quot;Allow preserve Control&amp;quot;, and then select &amp;quot;Preserve: OBC and function parameters&amp;quot; on the &amp;quot;Setup&amp;quot; pane.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Selecting &#039;&#039;&#039;Allow preserve control&#039;&#039;&#039; ==&lt;br /&gt;
The RM parameter &#039;&#039;&#039;Allow preserve control&#039;&#039;&#039; has to be selected; see figure&lt;br /&gt;
[[Image:rm_select_allow_preserve.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Solution =&lt;br /&gt;
&lt;br /&gt;
The [http://www.harctoolbox.org/Girr.html Girr format for IR signals] is an open and very versatile format for collections of IR signals. These can be parametrized, or in raw format. It is an XML based format.&lt;br /&gt;
&lt;br /&gt;
First, acquire or generate a suitable Girr file. [IrScrutinizer_Guide IrScrutinizer] can generate such files, either by (using a suitable hardware receiver) &amp;quot;learning&amp;quot; an available physical remote, or by importing/converting from other format. (See the example below).&lt;br /&gt;
&lt;br /&gt;
This file is then imported into RMDU, by &amp;quot;Open&amp;quot;-ing them. (See pictures in the next section). If the Girr file contains more than one remote, the useer is required to select one of them. In rare cases, the user is requested to select between several possible alternative executors.  Although the import almost always succeeds, in rare cases it may fail. The import should be checked for plausibility. Assign the keys to functions, and make other desired fixes. The thus created device update can now be used as any other update.&lt;br /&gt;
&lt;br /&gt;
== Remark ==&lt;br /&gt;
&lt;br /&gt;
Importing remotes is still a quite complicated process. Limitations (for example by &amp;quot;uncommon&amp;quot; protocols, or if signals from several substantially different protocols are present), and in rare cases even bugs, may show up. In this case, please report in the forum.&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls published set of IR commands].&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) We assume that this command set has been imported in IrScrutinizer, see figure.&lt;br /&gt;
Note that every row denotes a command, has a name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_param_table.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported,&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_param_export_rmdu.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;RemoteMaster&amp;quot; as the Export format, and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a simple rmdu file.&lt;br /&gt;
&lt;br /&gt;
We assume that RM has been prepared as per above. After starting, the just-created simple rmdu file is opened (File -&amp;gt; Open).&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
After opening the file, RM will present an error popup:&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_popup.png]]&lt;br /&gt;
&lt;br /&gt;
This simply means that, although RM understood the protocol (executor really) named &#039;&#039;&#039;ImportOnly&#039;&#039;&#039;&lt;br /&gt;
(because _we_ put it into its &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;!), it says that the currently selected remote does not support it, and the&lt;br /&gt;
user must select another one. (Just as we would expect!) We know that the desired protocol is called &amp;quot;NEC1&amp;quot;,&lt;br /&gt;
so we next have to select an executor implementing that protocol. For the purpose of this example, we select the &lt;br /&gt;
executor named &#039;&#039;&#039;NEC1&#039;&#039;&#039;, using the &amp;quot;Protocol&amp;quot; combo box. Make sure that as &amp;quot;Preserve&amp;quot; &amp;quot;OBC and function parameters&amp;quot; is selected.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_selected_executor.png]]&lt;br /&gt;
&lt;br /&gt;
Check that the protocol parameters (executor parameters really) make sense. &lt;br /&gt;
Here, the &amp;quot;D&amp;quot; in the protocol has been successfully turned into the parameter &amp;quot;Device&amp;quot; (= 73),&lt;br /&gt;
and the &amp;quot;Sub Device&amp;quot; is empty, as expected. &lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_imported_functions.png]]&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2428</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2428"/>
		<updated>2020-04-17T16:58:29Z</updated>

		<summary type="html">&lt;p&gt;Barf: clarified installation instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpTransmogrifier IR-renderer and -decoder, which means that almost all IR protocols known to the Internet community (over 100) can be generated as well as decoded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features.&lt;br /&gt;
&lt;br /&gt;
As a tutorial, this document is not updated as often as the program, or even as the documentation. So the current program may have slightly different features and slightly different look than shown here.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] (also included under the Help menu of the program) may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It was invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The first versions of the present program, IrScrutinizer, was also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. (IrScrutizer almost completely replaces IrMaster, which is no longer maintained.) In 2019, IrpMaster, and the decoding engine DecodeIR, was replaced by IrpTransmogrifier, which is an even more developed rendering and decoding engine.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOS. For Windows and MacOS, native installation packages are available; for Windows it is the setup file *.exe, for Mac the zipped app *.MacOS.zip. Users of (most) 64-bit Linux-es can use the AppImage (*x86_64.AppImage) version. In all these cases, they come with its own Java installation, although the Windows version allows for using a previously installed Java.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
(Files ending with md5, sha1, and sha512 are checksum files, and are not required for installation.)&lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads of the currently latest released version are found [https://github.com/bengtmartensson/harctoolboxbundle/releases/latest here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of the decode and (if selected through Options -&amp;gt; Invoke Analyzer) a computed IRP form, possibly together with some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture one IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* Again assuming suitable hardware opened, pressing &#039;&#039;&#039;Capt. (cont)&#039;&#039;&#039; will start a capturing thread, capturing signals over and over again, without saving, until the button is pressed again.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scrutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click).&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is strictly speaking no protocol named NEC; this is the decoder&#039;s way of saying that it has identified a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrutinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he or she wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol (case not being recognized). There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the fields corresponding to parameters not used by the current protocols  are disabled. Also, some protocols need other parameters. In this case, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
Some programs use the word &amp;quot;render&amp;quot; instead of &amp;quot;generate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.xml, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is in general similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these; IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer, rather it is a an &amp;quot;executor&amp;quot;, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Thus, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; devices. All but &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
In order to keep the tutorial nature, not all devices are described.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
This is configured at the [[#USB IrToy Sending|Sending hw]] pane.&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like COM8: or such. (If not found, install the driver.) Using Linux, it is in general assigned a name like /dev/ttyUSB0. Now go to the IrWidget sub pane within the Capturing hw pane. Select the appropriate serial port, the one observed in the device manager or in the /dev directory. Press Open. See picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irwidget.png]]&lt;br /&gt;
&lt;br /&gt;
If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
As the IrWidget firmware does not contain a version, the Version field is empty, as can be seen from the picture.&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Configured at the [[#arduino sending|sending page]].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
To keep the tutorial nature, we only describe a few of the devices. Configuration of the other devices are in general similar.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;USB IrToy Sending&amp;quot;&amp;gt;USB IrToy&amp;lt;/span&amp;gt;==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM8:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;arduino sending&amp;quot;&amp;gt;Arduino&amp;lt;/span&amp;gt;==&lt;br /&gt;
A suitably equipped Arduino (for example [http://www.harctoolbox.org/arduino_nano.html this project]) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
This is configured as a [http://www.harctoolbox.org/Girs.html Girs] client. A Girs client can be configure using USB Serial or using Ethernet with TCP sockets. In this tutorial, we only cover the first possibility. For this, the device is identified as above, selected, and opened. See screenshot.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_girs_client.png]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2427</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2427"/>
		<updated>2020-04-16T14:01:29Z</updated>

		<summary type="html">&lt;p&gt;Barf: Stylistic fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpTransmogrifier IR-renderer and -decoder, which means that almost all IR protocols known to the Internet community (over 100) can be generated as well as decoded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features.&lt;br /&gt;
&lt;br /&gt;
As a tutorial, this document is not updated as often as the program, or even as the documentation. So the current program may have slightly different features and slightly different look than shown here.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] (also included under the Help menu of the program) may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It was invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The first versions of the present program, IrScrutinizer, was also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. (IrScrutizer almost completely replaces IrMaster, which is no longer maintained.) In 2019, IrpMaster, and the decoding engine DecodeIR, was replaced by IrpTransmogrifier, which is an even more developed rendering and decoding engine.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. Users of (most) 64-bit Linux-es can use the AppImage version. In all cases, these come with its own Java installation, although the Windows version allows for using a previously installed Java.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads of the currently latest released version are found [https://github.com/bengtmartensson/harctoolboxbundle/releases/latest here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of the decode and (if selected through Options -&amp;gt; Invoke Analyzer) a computed IRP form, possibly together with some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture one IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* Again assuming suitable hardware opened, pressing &#039;&#039;&#039;Capt. (cont)&#039;&#039;&#039; will start a capturing thread, capturing signals over and over again, without saving, until the button is pressed again.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scrutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click).&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is strictly speaking no protocol named NEC; this is the decoder&#039;s way of saying that it has identified a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrutinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he or she wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol (case not being recognized). There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the fields corresponding to parameters not used by the current protocols  are disabled. Also, some protocols need other parameters. In this case, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
Some programs use the word &amp;quot;render&amp;quot; instead of &amp;quot;generate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.xml, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is in general similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these; IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer, rather it is a an &amp;quot;executor&amp;quot;, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Thus, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; devices. All but &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
In order to keep the tutorial nature, not all devices are described.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
This is configured at the [[#USB IrToy Sending|Sending hw]] pane.&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like COM8: or such. (If not found, install the driver.) Using Linux, it is in general assigned a name like /dev/ttyUSB0. Now go to the IrWidget sub pane within the Capturing hw pane. Select the appropriate serial port, the one observed in the device manager or in the /dev directory. Press Open. See picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irwidget.png]]&lt;br /&gt;
&lt;br /&gt;
If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
As the IrWidget firmware does not contain a version, the Version field is empty, as can be seen from the picture.&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Configured at the [[#arduino sending|sending page]].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
To keep the tutorial nature, we only describe a few of the devices. Configuration of the other devices are in general similar.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;USB IrToy Sending&amp;quot;&amp;gt;USB IrToy&amp;lt;/span&amp;gt;==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM8:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;arduino sending&amp;quot;&amp;gt;Arduino&amp;lt;/span&amp;gt;==&lt;br /&gt;
A suitably equipped Arduino (for example [http://www.harctoolbox.org/arduino_nano.html this project]) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
This is configured as a [http://www.harctoolbox.org/Girs.html Girs] client. A Girs client can be configure using USB Serial or using Ethernet with TCP sockets. In this tutorial, we only cover the first possibility. For this, the device is identified as above, selected, and opened. See screenshot.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_girs_client.png]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2426</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2426"/>
		<updated>2020-04-16T13:51:58Z</updated>

		<summary type="html">&lt;p&gt;Barf: linked to my arduino nano instead of soft description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpTransmogrifier IR-renderer and -decoder, which means that almost all IR protocols known to the Internet community (over 100) can be generated as well as decoded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features. As a tutorial, it is not updated as often as the program, or even as the documentation. So the current program may have slightly different features and slightly different look than shown here.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] (also included under the Help menu of the program) may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It was invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The first versions of the present program, IrScrutinizer, was also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. (IrScrutizer almost completely replaces IrMaster, which is no longer maintained.) In 2019, IrpMaster, and the decoding engine DecodeIR, was replaced by IrpTransmogrifier, which is an even more developed rendering and decoding engine.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. Users of (most) 64-bit Linux-es can use the AppImage version. In all cases, these come with its own Java installation, although the Windows version allows for using a previously installed Java.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads of the currently latest released version are found [https://github.com/bengtmartensson/harctoolboxbundle/releases/latest here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of the decode and (if selected through Options -&amp;gt; Invoke Analyzer) a computed IRP form, possibly together with some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture one IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* Again assuming suitable hardware opened, pressing &#039;&#039;&#039;Capt. (cont)&#039;&#039;&#039; will start a capturing thread, capturing signals over and over again, without saving, until the button is pressed again.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scrutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click).&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is strictly speaking no protocol named NEC; this is the decoder&#039;s way of saying that it has identified a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrutinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he or she wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol (case not being recognized). There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the fields corresponding to parameters not used by the current protocols  are disabled. Also, some protocols need other parameters. In this case, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
Some programs use the word &amp;quot;render&amp;quot; instead of &amp;quot;generate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.xml, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is in general similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these; IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer, rather it is a an &amp;quot;executor&amp;quot;, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Thus, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; devices. All but &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
In order to keep the tutorial nature, not all devices are described.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
This is configured at the [[#USB IrToy Sending|Sending hw]] pane.&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like COM8: or such. (If not found, install the driver.) Using Linux, it is in general assigned a name like /dev/ttyUSB0. Now go to the IrWidget sub pane within the Capturing hw pane. Select the appropriate serial port, the one observed in the device manager or in the /dev directory. Press Open. See picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irwidget.png]]&lt;br /&gt;
&lt;br /&gt;
If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
As the IrWidget firmware does not contain a version, the Version field is empty, as can be seen from the picture.&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Configured at the [[#arduino sending|sending page]].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
To keep the tutorial nature, we only describe a few of the devices. Configuration of the other devices are in general similar.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;USB IrToy Sending&amp;quot;&amp;gt;USB IrToy&amp;lt;/span&amp;gt;==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM8:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;arduino sending&amp;quot;&amp;gt;Arduino&amp;lt;/span&amp;gt;==&lt;br /&gt;
A suitably equipped Arduino (for example [http://www.harctoolbox.org/arduino_nano.html this project]) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
This is configured as a [http://www.harctoolbox.org/Girs.html Girs] client. A Girs client can be configure using USB Serial or using Ethernet with TCP sockets. In this tutorial, we only cover the first possibility. For this, the device is identified as above, selected, and opened. See screenshot.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_girs_client.png]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2425</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2425"/>
		<updated>2020-04-16T13:48:01Z</updated>

		<summary type="html">&lt;p&gt;Barf: Remove &amp;quot;only fw version 2.2.2 is supported&amp;quot;.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpTransmogrifier IR-renderer and -decoder, which means that almost all IR protocols known to the Internet community (over 100) can be generated as well as decoded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features. As a tutorial, it is not updated as often as the program, or even as the documentation. So the current program may have slightly different features and slightly different look than shown here.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] (also included under the Help menu of the program) may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It was invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The first versions of the present program, IrScrutinizer, was also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. (IrScrutizer almost completely replaces IrMaster, which is no longer maintained.) In 2019, IrpMaster, and the decoding engine DecodeIR, was replaced by IrpTransmogrifier, which is an even more developed rendering and decoding engine.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. Users of (most) 64-bit Linux-es can use the AppImage version. In all cases, these come with its own Java installation, although the Windows version allows for using a previously installed Java.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads of the currently latest released version are found [https://github.com/bengtmartensson/harctoolboxbundle/releases/latest here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of the decode and (if selected through Options -&amp;gt; Invoke Analyzer) a computed IRP form, possibly together with some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture one IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* Again assuming suitable hardware opened, pressing &#039;&#039;&#039;Capt. (cont)&#039;&#039;&#039; will start a capturing thread, capturing signals over and over again, without saving, until the button is pressed again.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scrutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click).&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is strictly speaking no protocol named NEC; this is the decoder&#039;s way of saying that it has identified a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrutinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he or she wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol (case not being recognized). There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the fields corresponding to parameters not used by the current protocols  are disabled. Also, some protocols need other parameters. In this case, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
Some programs use the word &amp;quot;render&amp;quot; instead of &amp;quot;generate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.xml, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is in general similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these; IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer, rather it is a an &amp;quot;executor&amp;quot;, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Thus, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; devices. All but &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
In order to keep the tutorial nature, not all devices are described.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
This is configured at the [[#USB IrToy Sending|Sending hw]] pane.&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like COM8: or such. (If not found, install the driver.) Using Linux, it is in general assigned a name like /dev/ttyUSB0. Now go to the IrWidget sub pane within the Capturing hw pane. Select the appropriate serial port, the one observed in the device manager or in the /dev directory. Press Open. See picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irwidget.png]]&lt;br /&gt;
&lt;br /&gt;
If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
As the IrWidget firmware does not contain a version, the Version field is empty, as can be seen from the picture.&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Configured at the [[#arduino sending|sending page]].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
To keep the tutorial nature, we only describe a few of the devices. Configuration of the other devices are in general similar.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;USB IrToy Sending&amp;quot;&amp;gt;USB IrToy&amp;lt;/span&amp;gt;==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM8:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;arduino sending&amp;quot;&amp;gt;Arduino&amp;lt;/span&amp;gt;==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
This is configured as a [http://www.harctoolbox.org/Girs.html Girs] client. A Girs client can be configure using USB Serial or using Ethernet with TCP sockets. In this tutorial, we only cover the first possibility. For this, the device is identified as above, selected, and opened. See screenshot.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_girs_client.png]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2424</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2424"/>
		<updated>2020-04-16T13:45:03Z</updated>

		<summary type="html">&lt;p&gt;Barf: changed Linux example, mentioned empty version.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpTransmogrifier IR-renderer and -decoder, which means that almost all IR protocols known to the Internet community (over 100) can be generated as well as decoded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features. As a tutorial, it is not updated as often as the program, or even as the documentation. So the current program may have slightly different features and slightly different look than shown here.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] (also included under the Help menu of the program) may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It was invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The first versions of the present program, IrScrutinizer, was also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. (IrScrutizer almost completely replaces IrMaster, which is no longer maintained.) In 2019, IrpMaster, and the decoding engine DecodeIR, was replaced by IrpTransmogrifier, which is an even more developed rendering and decoding engine.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. Users of (most) 64-bit Linux-es can use the AppImage version. In all cases, these come with its own Java installation, although the Windows version allows for using a previously installed Java.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads of the currently latest released version are found [https://github.com/bengtmartensson/harctoolboxbundle/releases/latest here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of the decode and (if selected through Options -&amp;gt; Invoke Analyzer) a computed IRP form, possibly together with some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture one IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* Again assuming suitable hardware opened, pressing &#039;&#039;&#039;Capt. (cont)&#039;&#039;&#039; will start a capturing thread, capturing signals over and over again, without saving, until the button is pressed again.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scrutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click).&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is strictly speaking no protocol named NEC; this is the decoder&#039;s way of saying that it has identified a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrutinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he or she wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol (case not being recognized). There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the fields corresponding to parameters not used by the current protocols  are disabled. Also, some protocols need other parameters. In this case, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
Some programs use the word &amp;quot;render&amp;quot; instead of &amp;quot;generate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.xml, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is in general similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these; IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer, rather it is a an &amp;quot;executor&amp;quot;, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Thus, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; devices. All but &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
In order to keep the tutorial nature, not all devices are described.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
This is configured at the [[#USB IrToy Sending|Sending hw]] pane.&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like COM8: or such. (If not found, install the driver.) Using Linux, it is in general assigned a name like /dev/ttyUSB0. Now go to the IrWidget sub pane within the Capturing hw pane. Select the appropriate serial port, the one observed in the device manager or in the /dev directory. Press Open. See picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irwidget.png]]&lt;br /&gt;
&lt;br /&gt;
If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
As the IrWidget firmware does not contain a version, the Version field is empty, as can be seen from the picture.&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Configured at the [[#arduino sending|sending page]].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
To keep the tutorial nature, we only describe a few of the devices. Configuration of the other devices are in general similar.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;USB IrToy Sending&amp;quot;&amp;gt;USB IrToy&amp;lt;/span&amp;gt;==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM8:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported. See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;arduino sending&amp;quot;&amp;gt;Arduino&amp;lt;/span&amp;gt;==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
This is configured as a [http://www.harctoolbox.org/Girs.html Girs] client. A Girs client can be configure using USB Serial or using Ethernet with TCP sockets. In this tutorial, we only cover the first possibility. For this, the device is identified as above, selected, and opened. See screenshot.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_girs_client.png]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2423</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2423"/>
		<updated>2020-04-16T13:41:13Z</updated>

		<summary type="html">&lt;p&gt;Barf: describe &amp;quot;render&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpTransmogrifier IR-renderer and -decoder, which means that almost all IR protocols known to the Internet community (over 100) can be generated as well as decoded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features. As a tutorial, it is not updated as often as the program, or even as the documentation. So the current program may have slightly different features and slightly different look than shown here.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] (also included under the Help menu of the program) may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It was invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The first versions of the present program, IrScrutinizer, was also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. (IrScrutizer almost completely replaces IrMaster, which is no longer maintained.) In 2019, IrpMaster, and the decoding engine DecodeIR, was replaced by IrpTransmogrifier, which is an even more developed rendering and decoding engine.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. Users of (most) 64-bit Linux-es can use the AppImage version. In all cases, these come with its own Java installation, although the Windows version allows for using a previously installed Java.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads of the currently latest released version are found [https://github.com/bengtmartensson/harctoolboxbundle/releases/latest here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of the decode and (if selected through Options -&amp;gt; Invoke Analyzer) a computed IRP form, possibly together with some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture one IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* Again assuming suitable hardware opened, pressing &#039;&#039;&#039;Capt. (cont)&#039;&#039;&#039; will start a capturing thread, capturing signals over and over again, without saving, until the button is pressed again.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scrutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click).&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is strictly speaking no protocol named NEC; this is the decoder&#039;s way of saying that it has identified a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrutinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he or she wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol (case not being recognized). There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the fields corresponding to parameters not used by the current protocols  are disabled. Also, some protocols need other parameters. In this case, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
Some programs use the word &amp;quot;render&amp;quot; instead of &amp;quot;generate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.xml, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is in general similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these; IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer, rather it is a an &amp;quot;executor&amp;quot;, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Thus, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; devices. All but &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
In order to keep the tutorial nature, not all devices are described.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
This is configured at the [[#USB IrToy Sending|Sending hw]] pane.&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like COM8: or such. (If not found, install the driver.) Using Linux, it is in general assigned a name like /dev/ttyACM0. Now go to the IrWidget sub pane within the Capturing hw pane. Select the appropriate serial port, the one observed in the device manager or in the /dev directory. Press Open. See picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irwidget.png]]&lt;br /&gt;
&lt;br /&gt;
If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Configured at the [[#arduino sending|sending page]].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
To keep the tutorial nature, we only describe a few of the devices. Configuration of the other devices are in general similar.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;USB IrToy Sending&amp;quot;&amp;gt;USB IrToy&amp;lt;/span&amp;gt;==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM8:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported. See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;arduino sending&amp;quot;&amp;gt;Arduino&amp;lt;/span&amp;gt;==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
This is configured as a [http://www.harctoolbox.org/Girs.html Girs] client. A Girs client can be configure using USB Serial or using Ethernet with TCP sockets. In this tutorial, we only cover the first possibility. For this, the device is identified as above, selected, and opened. See screenshot.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_girs_client.png]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2422</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2422"/>
		<updated>2020-04-16T13:38:14Z</updated>

		<summary type="html">&lt;p&gt;Barf: Stylistic fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpTransmogrifier IR-renderer and -decoder, which means that almost all IR protocols known to the Internet community (over 100) can be generated as well as decoded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features. As a tutorial, it is not updated as often as the program, or even as the documentation. So the current program may have slightly different features and slightly different look than shown here.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] (also included under the Help menu of the program) may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It was invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The first versions of the present program, IrScrutinizer, was also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. (IrScrutizer almost completely replaces IrMaster, which is no longer maintained.) In 2019, IrpMaster, and the decoding engine DecodeIR, was replaced by IrpTransmogrifier, which is an even more developed rendering and decoding engine.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. Users of (most) 64-bit Linux-es can use the AppImage version. In all cases, these come with its own Java installation, although the Windows version allows for using a previously installed Java.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads of the currently latest released version are found [https://github.com/bengtmartensson/harctoolboxbundle/releases/latest here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of the decode and (if selected through Options -&amp;gt; Invoke Analyzer) a computed IRP form, possibly together with some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture one IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* Again assuming suitable hardware opened, pressing &#039;&#039;&#039;Capt. (cont)&#039;&#039;&#039; will start a capturing thread, capturing signals over and over again, without saving, until the button is pressed again.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scrutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click).&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is strictly speaking no protocol named NEC; this is the decoder&#039;s way of saying that it has identified a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrutinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he or she wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol (case not being recognized). There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the fields corresponding to parameters not used by the current protocols  are disabled. Also, some protocols need other parameters. In this case, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.xml, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is in general similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these; IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer, rather it is a an &amp;quot;executor&amp;quot;, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Thus, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; devices. All but &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
In order to keep the tutorial nature, not all devices are described.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
This is configured at the [[#USB IrToy Sending|Sending hw]] pane.&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like COM8: or such. (If not found, install the driver.) Using Linux, it is in general assigned a name like /dev/ttyACM0. Now go to the IrWidget sub pane within the Capturing hw pane. Select the appropriate serial port, the one observed in the device manager or in the /dev directory. Press Open. See picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irwidget.png]]&lt;br /&gt;
&lt;br /&gt;
If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Configured at the [[#arduino sending|sending page]].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
To keep the tutorial nature, we only describe a few of the devices. Configuration of the other devices are in general similar.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;USB IrToy Sending&amp;quot;&amp;gt;USB IrToy&amp;lt;/span&amp;gt;==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM8:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported. See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;arduino sending&amp;quot;&amp;gt;Arduino&amp;lt;/span&amp;gt;==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
This is configured as a [http://www.harctoolbox.org/Girs.html Girs] client. A Girs client can be configure using USB Serial or using Ethernet with TCP sockets. In this tutorial, we only cover the first possibility. For this, the device is identified as above, selected, and opened. See screenshot.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_girs_client.png]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2421</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2421"/>
		<updated>2020-04-16T13:26:07Z</updated>

		<summary type="html">&lt;p&gt;Barf: Updated wrt current version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpTransmogrifier IR-renderer and -decoder, which means that almost all IR protocols known to the Internet community (over 100) can be generated as well as decoded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features. As a tutorial, it is not updated as often as the program, or even as the documentation. So the current program may have slightly different features and slightly different look than shown here.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] (also included under the Help menu of the program) may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It was invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The first versions of the present program, IrScrutinizer, was also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. (IrScrutizer almost completely replaces IrMaster, which is no longer maintained.) In 2019, IrpMaster, and the decoding engine DecodeIR, was replaced by IrpTransmogrifier, which is an even more developed rendering and decoding engine.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. Users of (most) 64-bit Linux-es can use the AppImage version. In all cases, these come with its own Java installation, although the Windows version allows for using a previously installed Java.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads of the currently latest released version are found [https://github.com/bengtmartensson/harctoolboxbundle/releases/latest here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of the decode and (if selected through Options -&amp;gt; Invoke Analyzer) a computed IRP form, possibly together with some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture one IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* Again assuming suitable hardware opened, pressing &#039;&#039;&#039;Capt. (cont)&#039;&#039;&#039; will start a capturing thread, capturing signals over and over again, without saving, until the button is pressed again.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scrutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click).&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is strictly speaking no protocol named NEC; this is the decoder&#039;s way of saying that it has identified a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrutinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he or she wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol (case not being recognized). There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the fields corresponding to parameters not used by the current protocols  are disabled. Also, some protocols need other parameters. In this case, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.xml, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is entirely similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these, as IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer and DecodeIR, rather it is a an executor, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Having said that, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; devices. All but &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
In order to keep the tutorial nature, not all devices are described.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
This is configured at the [[#USB IrToy Sending|Sending hw]] pane.&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like COM8: or such. (If not found, install the driver.) Using Linux, it is in general assigned a name like /dev/ttyACM0. Now go to the IrWidget sub pane within the Capturing hw pane. Select the appropriate serial port, the one observed in the device manager or in the /dev directory. Press Open. See picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irwidget.png]]&lt;br /&gt;
&lt;br /&gt;
If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Configured at the [[#arduino sending|sending page]].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
To keep the tutorial nature, we only describe a few of the devices. Configuration of the other devices are in general similar.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;USB IrToy Sending&amp;quot;&amp;gt;USB IrToy&amp;lt;/span&amp;gt;==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM8:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported. See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;arduino sending&amp;quot;&amp;gt;Arduino&amp;lt;/span&amp;gt;==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
This is configured as a [http://www.harctoolbox.org/Girs.html Girs] client. A Girs client can be configure using USB Serial or using Ethernet with TCP sockets. In this tutorial, we only cover the first possibility. For this, the device is identified as above, selected, and opened. See screenshot.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_girs_client.png]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2420</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2420"/>
		<updated>2020-04-16T13:21:55Z</updated>

		<summary type="html">&lt;p&gt;Barf: Updated wrt current version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpTransmogrifier IR-renderer and -decoder, which means that almost all IR protocols known to the Internet community (over 100) can be generated as well as decoded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features. As a tutorial, it is not updated as often as the program, or even as the documentation. So the current program may have slightly different features and slightly different look than shown here.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] (also included under the Help menu of the program) may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It was invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The first versions of the present program, IrScrutinizer, was also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. (IrScrutizer almost completely replaces IrMaster, which is no longer maintained.) In 2019, IrpMaster, and the decoding engine DecodeIR, was replaced by IrpTransmogrifier, which is an even more developed rendering and decoding engine.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. Users of (most) 64-bit Linux-es can use the AppImage version. In all cases, these come with its own Java installation, although the Windows version allows for using a previously installed Java.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads of the currently latest released version are found [https://github.com/bengtmartensson/harctoolboxbundle/releases/latest here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of the decode and (if selected through Options -&amp;gt; Invoke Analyzer) a computed IRP form, possibly together with some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture one IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* Again assuming suitable hardware opened, pressing &#039;&#039;&#039;Capt. (cont)&#039;&#039;&#039; will start a capturing thread, capturing signals over and over again, without saving, until the button is pressed again.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scrutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click).&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is strictly speaking no protocol named NEC; this is the decoder&#039;s way of saying that it has identified a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrutinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he or she wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol (case not being recognized). There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the not needed parameters among D, S, F, and T are disabled. Some protocols need other parameters. If so, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.ini, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is entirely similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these, as IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer and DecodeIR, rather it is a an executor, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Having said that, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; devices. All but &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
In order to keep the tutorial nature, not all devices are described.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
This is configured at the [[#USB IrToy Sending|Sending hw]] pane.&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like COM8: or such. (If not found, install the driver.) Using Linux, it is in general assigned a name like /dev/ttyACM0. Now go to the IrWidget sub pane within the Capturing hw pane. Select the appropriate serial port, the one observed in the device manager or in the /dev directory. Press Open. See picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irwidget.png]]&lt;br /&gt;
&lt;br /&gt;
If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Configured at the [[#arduino sending|sending page]].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
To keep the tutorial nature, we only describe a few of the devices. Configuration of the other devices are in general similar.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;USB IrToy Sending&amp;quot;&amp;gt;USB IrToy&amp;lt;/span&amp;gt;==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM8:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported. See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;arduino sending&amp;quot;&amp;gt;Arduino&amp;lt;/span&amp;gt;==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
This is configured as a [http://www.harctoolbox.org/Girs.html Girs] client. A Girs client can be configure using USB Serial or using Ethernet with TCP sockets. In this tutorial, we only cover the first possibility. For this, the device is identified as above, selected, and opened. See screenshot.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_girs_client.png]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2419</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2419"/>
		<updated>2020-04-16T13:18:13Z</updated>

		<summary type="html">&lt;p&gt;Barf: Updated wrt current version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpTransmogrifier IR-renderer and -decoder, which means that almost all IR protocols known to the Internet community (over 100) can be generated as well as decoded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features. As a tutorial, it is not updated as often as the program, or even as the documentation. So the current program may have slightly different features and slightly different look than shown here.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] (also included under the Help menu of the program) may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It was invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The first versions of the present program, IrScrutinizer, was also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. (IrScrutizer almost completely replaces IrMaster, which is no longer maintained.) In 2019, IrpMaster, and the decoding engine DecodeIR, was replaced by IrpTransmogrifier, which is an even more developed rendering and decoding engine.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. Users of (most) 64-bit Linux-es can use the AppImage version. In all cases, these come with its own Java installation, although the Windows version allows for using a previously installed Java.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads of the currently latest released version are found [https://github.com/bengtmartensson/harctoolboxbundle/releases/latest here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of the decode and (if selected through Options -&amp;gt; Invoke Analyzer) a computed IRP form, possibly together with some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture one IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* Again assuming suitable hardware opened, pressing &#039;&#039;&#039;Capt. (cont)&#039;&#039;&#039; will start a capturing thread, capturing signals over and over again, without saving, until the button is pressed again.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scrutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click).&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is strictly speaking no protocol named NEC; this is the decoder&#039;s way of saying that it has identified a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrtinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol. There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the not needed parameters among D, S, F, and T are disabled. Some protocols need other parameters. If so, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.ini, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is entirely similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these, as IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer and DecodeIR, rather it is a an executor, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Having said that, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; devices. All but &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
In order to keep the tutorial nature, not all devices are described.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
This is configured at the [[#USB IrToy Sending|Sending hw]] pane.&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like COM8: or such. (If not found, install the driver.) Using Linux, it is in general assigned a name like /dev/ttyACM0. Now go to the IrWidget sub pane within the Capturing hw pane. Select the appropriate serial port, the one observed in the device manager or in the /dev directory. Press Open. See picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irwidget.png]]&lt;br /&gt;
&lt;br /&gt;
If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Configured at the [[#arduino sending|sending page]].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
To keep the tutorial nature, we only describe a few of the devices. Configuration of the other devices are in general similar.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;USB IrToy Sending&amp;quot;&amp;gt;USB IrToy&amp;lt;/span&amp;gt;==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM8:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported. See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;arduino sending&amp;quot;&amp;gt;Arduino&amp;lt;/span&amp;gt;==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
This is configured as a [http://www.harctoolbox.org/Girs.html Girs] client. A Girs client can be configure using USB Serial or using Ethernet with TCP sockets. In this tutorial, we only cover the first possibility. For this, the device is identified as above, selected, and opened. See screenshot.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_girs_client.png]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2418</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2418"/>
		<updated>2020-04-16T13:04:41Z</updated>

		<summary type="html">&lt;p&gt;Barf: Updated installation instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpTransmogrifier IR-renderer and -decoder, which means that almost all IR protocols known to the Internet community (over 100) can be generated as well as decoded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features. As a tutorial, it is not updated as often as the program, or even as the documentation. So the current program may have slightly different features and slightly different look than shown here.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] (also included under the Help menu of the program) may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It was invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The first versions of the present program, IrScrutinizer, was also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. (IrScrutizer almost completely replaces IrMaster, which is no longer maintained.) In 2019, IrpMaster, and the decoding engine DecodeIR, was replaced by IrpTransmogrifier, which is an even more developed rendering and decoding engine.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. Users of (most) 64-bit Linux-es can use the AppImage version. In all cases, these come with its own Java installation, although the Windows version allows for using a previously installed Java.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads of the currently latest released version are found [https://github.com/bengtmartensson/harctoolboxbundle/releases/latest here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR]  and (if selected) [http://www.harctoolbox.org/Glossary.html#Analyzer AnalyzeIR], as well as some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture an IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* Again assuming suitable hardware opened, pressing &#039;&#039;&#039;Capt. (cont)&#039;&#039;&#039; will start a capturing thread, capturing signals over and over again, without saving.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, &amp;quot;UEI Learned&amp;quot; format, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click). (Although sent from one key press on the , [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR] consider this signal as two signals.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is no protocol named NEC; this is [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR&#039;s] way of saying that it has identifed a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrtinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol. There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the not needed parameters among D, S, F, and T are disabled. Some protocols need other parameters. If so, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.ini, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is entirely similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these, as IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer and DecodeIR, rather it is a an executor, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Having said that, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; devices. All but &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
In order to keep the tutorial nature, not all devices are described.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
This is configured at the [[#USB IrToy Sending|Sending hw]] pane.&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like COM8: or such. (If not found, install the driver.) Using Linux, it is in general assigned a name like /dev/ttyACM0. Now go to the IrWidget sub pane within the Capturing hw pane. Select the appropriate serial port, the one observed in the device manager or in the /dev directory. Press Open. See picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irwidget.png]]&lt;br /&gt;
&lt;br /&gt;
If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Configured at the [[#arduino sending|sending page]].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
To keep the tutorial nature, we only describe a few of the devices. Configuration of the other devices are in general similar.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;USB IrToy Sending&amp;quot;&amp;gt;USB IrToy&amp;lt;/span&amp;gt;==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM8:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported. See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;arduino sending&amp;quot;&amp;gt;Arduino&amp;lt;/span&amp;gt;==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
This is configured as a [http://www.harctoolbox.org/Girs.html Girs] client. A Girs client can be configure using USB Serial or using Ethernet with TCP sockets. In this tutorial, we only cover the first possibility. For this, the device is identified as above, selected, and opened. See screenshot.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_girs_client.png]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2417</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2417"/>
		<updated>2020-04-16T12:57:32Z</updated>

		<summary type="html">&lt;p&gt;Barf: Updated wrt current version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpTransmogrifier IR-renderer and -decoder, which means that almost all IR protocols known to the Internet community (over 100) can be generated as well as decoded.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features. As a tutorial, it is not updated as often as the program, or even as the documentation. So the current program may have slightly different features and slightly different look than shown here.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] (also included under the Help menu of the program) may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
In 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It was invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The first versions of the present program, IrScrutinizer, was also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. (IrScrutizer almost completely replaces IrMaster, which is no longer maintained.) In 2019, IrpMaster, and the decoding engine DecodeIR, was replaced by IrpTransmogrifier, which is an even more developed rendering and decoding engine.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. In all cases, Java must first be installed. Users of (most) 64-bit Linux-es can use the AppImage version.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads are found [https://github.com/bengtmartensson/harctoolboxbundle/releases here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR]  and (if selected) [http://www.harctoolbox.org/Glossary.html#Analyzer AnalyzeIR], as well as some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture an IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* Again assuming suitable hardware opened, pressing &#039;&#039;&#039;Capt. (cont)&#039;&#039;&#039; will start a capturing thread, capturing signals over and over again, without saving.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, &amp;quot;UEI Learned&amp;quot; format, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click). (Although sent from one key press on the , [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR] consider this signal as two signals.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is no protocol named NEC; this is [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR&#039;s] way of saying that it has identifed a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrtinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol. There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the not needed parameters among D, S, F, and T are disabled. Some protocols need other parameters. If so, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.ini, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is entirely similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these, as IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer and DecodeIR, rather it is a an executor, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Having said that, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; devices. All but &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
In order to keep the tutorial nature, not all devices are described.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
This is configured at the [[#USB IrToy Sending|Sending hw]] pane.&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like COM8: or such. (If not found, install the driver.) Using Linux, it is in general assigned a name like /dev/ttyACM0. Now go to the IrWidget sub pane within the Capturing hw pane. Select the appropriate serial port, the one observed in the device manager or in the /dev directory. Press Open. See picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irwidget.png]]&lt;br /&gt;
&lt;br /&gt;
If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Configured at the [[#arduino sending|sending page]].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
To keep the tutorial nature, we only describe a few of the devices. Configuration of the other devices are in general similar.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;USB IrToy Sending&amp;quot;&amp;gt;USB IrToy&amp;lt;/span&amp;gt;==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM8:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported. See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;arduino sending&amp;quot;&amp;gt;Arduino&amp;lt;/span&amp;gt;==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
This is configured as a [http://www.harctoolbox.org/Girs.html Girs] client. A Girs client can be configure using USB Serial or using Ethernet with TCP sockets. In this tutorial, we only cover the first possibility. For this, the device is identified as above, selected, and opened. See screenshot.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_girs_client.png]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2416</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2416"/>
		<updated>2017-03-15T12:40:52Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Scrutinizing a single IR signal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpMaster IR-renderer, which means that almost all IR protocols known to the Internet community (over 100) can be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
First, in 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It is invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The present program, IrScrutinizer, is also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. IrScrutizer almost completely replaces IrMaster, which is no longer maintained.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. In all cases, Java must first be installed. Users of (most) 64-bit Linux-es can use the AppImage version.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads are found [https://github.com/bengtmartensson/harctoolboxbundle/releases here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR]  and (if selected) [http://www.harctoolbox.org/Glossary.html#Analyzer AnalyzeIR], as well as some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture an IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* Again assuming suitable hardware opened, pressing &#039;&#039;&#039;Capt. (cont)&#039;&#039;&#039; will start a capturing thread, capturing signals over and over again, without saving.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, &amp;quot;UEI Learned&amp;quot; format, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click). (Although sent from one key press on the , [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR] consider this signal as two signals.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is no protocol named NEC; this is [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR&#039;s] way of saying that it has identifed a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrtinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol. There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the not needed parameters among D, S, F, and T are disabled. Some protocols need other parameters. If so, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.ini, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is entirely similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these, as IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer and DecodeIR, rather it is a an executor, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Having said that, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; devices. All but &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
In order to keep the tutorial nature, not all devices are described.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
This is configured at the [[#USB IrToy Sending|Sending hw]] pane.&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like COM8: or such. (If not found, install the driver.) Using Linux, it is in general assigned a name like /dev/ttyACM0. Now go to the IrWidget sub pane within the Capturing hw pane. Select the appropriate serial port, the one observed in the device manager or in the /dev directory. Press Open. See picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irwidget.png]]&lt;br /&gt;
&lt;br /&gt;
If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Configured at the [[#arduino sending|sending page]].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
To keep the tutorial nature, we only describe a few of the devices. Configuration of the other devices are in general similar.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;USB IrToy Sending&amp;quot;&amp;gt;USB IrToy&amp;lt;/span&amp;gt;==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM8:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported. See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;arduino sending&amp;quot;&amp;gt;Arduino&amp;lt;/span&amp;gt;==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
This is configured as a [http://www.harctoolbox.org/Girs.html Girs] client. A Girs client can be configure using USB Serial or using Ethernet with TCP sockets. In this tutorial, we only cover the first possibility. For this, the device is identified as above, selected, and opened. See screenshot.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_girs_client.png]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Irscrutinizer_F9.png&amp;diff=2391</id>
		<title>File:Irscrutinizer F9.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Irscrutinizer_F9.png&amp;diff=2391"/>
		<updated>2017-03-15T12:09:21Z</updated>

		<summary type="html">&lt;p&gt;Barf: Barf uploaded a new version of &amp;amp;quot;File:Irscrutinizer F9.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2415</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2415"/>
		<updated>2017-03-15T11:51:19Z</updated>

		<summary type="html">&lt;p&gt;Barf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpMaster IR-renderer, which means that almost all IR protocols known to the Internet community (over 100) can be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
First, in 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It is invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The present program, IrScrutinizer, is also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. IrScrutizer almost completely replaces IrMaster, which is no longer maintained.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. In all cases, Java must first be installed. Users of (most) 64-bit Linux-es can use the AppImage version.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads are found [https://github.com/bengtmartensson/harctoolboxbundle/releases here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR]  and (if selected) [http://www.harctoolbox.org/Glossary.html#Analyzer AnalyzeIR], as well as some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture an IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, &amp;quot;UEI Learned&amp;quot; format, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click). (Although sent from one key press on the , [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR] consider this signal as two signals.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is no protocol named NEC; this is [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR&#039;s] way of saying that it has identifed a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrtinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol. There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the not needed parameters among D, S, F, and T are disabled. Some protocols need other parameters. If so, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.ini, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is entirely similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these, as IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer and DecodeIR, rather it is a an executor, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Having said that, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; devices. All but &amp;lt;code&amp;gt;/dev/lirc&amp;lt;/code&amp;gt; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
In order to keep the tutorial nature, not all devices are described.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
This is configured at the [[#USB IrToy Sending|Sending hw]] pane.&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like COM8: or such. (If not found, install the driver.) Using Linux, it is in general assigned a name like /dev/ttyACM0. Now go to the IrWidget sub pane within the Capturing hw pane. Select the appropriate serial port, the one observed in the device manager or in the /dev directory. Press Open. See picture: &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irwidget.png]]&lt;br /&gt;
&lt;br /&gt;
If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Configured at the [[#arduino sending|sending page]].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
To keep the tutorial nature, we only describe a few of the devices. Configuration of the other devices are in general similar.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;USB IrToy Sending&amp;quot;&amp;gt;USB IrToy&amp;lt;/span&amp;gt;==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM8:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported. See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;span id=&amp;quot;arduino sending&amp;quot;&amp;gt;Arduino&amp;lt;/span&amp;gt;==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
This is configured as a [http://www.harctoolbox.org/Girs.html Girs] client. A Girs client can be configure using USB Serial or using Ethernet with TCP sockets. In this tutorial, we only cover the first possibility. For this, the device is identified as above, selected, and opened. See screenshot.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_girs_client.png]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Irscrutinizer_girs_client.png&amp;diff=2699</id>
		<title>File:Irscrutinizer girs client.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Irscrutinizer_girs_client.png&amp;diff=2699"/>
		<updated>2017-03-15T11:39:55Z</updated>

		<summary type="html">&lt;p&gt;Barf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Irscrutinizer_irwidget.png&amp;diff=2697</id>
		<title>File:Irscrutinizer irwidget.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Irscrutinizer_irwidget.png&amp;diff=2697"/>
		<updated>2017-03-15T10:58:50Z</updated>

		<summary type="html">&lt;p&gt;Barf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Irscrutinizer_irtoy.png&amp;diff=2406</id>
		<title>File:Irscrutinizer irtoy.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Irscrutinizer_irtoy.png&amp;diff=2406"/>
		<updated>2017-03-15T10:41:08Z</updated>

		<summary type="html">&lt;p&gt;Barf: Barf uploaded a new version of &amp;amp;quot;File:Irscrutinizer irtoy.png&amp;amp;quot;: Now configured as sending device.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2414</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2414"/>
		<updated>2017-03-15T10:39:32Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Configuring Hardware for Capturing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpMaster IR-renderer, which means that almost all IR protocols known to the Internet community (over 100) can be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
First, in 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It is invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The present program, IrScrutinizer, is also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. IrScrutizer almost completely replaces IrMaster, which is no longer maintained.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. In all cases, Java must first be installed. Users of (most) 64-bit Linux-es can use the AppImage version.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads are found [https://github.com/bengtmartensson/harctoolboxbundle/releases here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR]  and (if selected) [http://www.harctoolbox.org/Glossary.html#Analyzer AnalyzeIR], as well as some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture an IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, &amp;quot;UEI Learned&amp;quot; format, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click). (Although sent from one key press on the , [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR] consider this signal as two signals.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is no protocol named NEC; this is [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR&#039;s] way of saying that it has identifed a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrtinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol. There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the not needed parameters among D, S, F, and T are disabled. Some protocols need other parameters. If so, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.ini, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is entirely similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these, as IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer and DecodeIR, rather it is a an executor, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Having said that, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &#039;&#039;&#039;/dev/lirc&#039;&#039;&#039; devices. All but &#039;&#039;&#039;/dev/lirc&#039;&#039;&#039; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
Many devices are capable both of sending and capturing. These in general have to be configured and opened on the &amp;quot;Sending hw&amp;quot; pane,&lt;br /&gt;
but for capturing still selected on the &amp;quot;Capturing hw&amp;quot; pane.&lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM(:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Using the IrWidget is entirely similar to IrToy. However, it does not report a firmware version. If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
Configuring the sending hardware is essentially the same as configuring the hardware for capturing. We just make the following few remarks:&lt;br /&gt;
&lt;br /&gt;
* For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported.&lt;br /&gt;
* A LIRC server, patched with [http://www.harctoolbox.org/lirc_ccf.html this patch], listening on a network port, can be used for sending.&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2413</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2413"/>
		<updated>2017-03-15T09:05:00Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Configuring Hardware for Capturing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpMaster IR-renderer, which means that almost all IR protocols known to the Internet community (over 100) can be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
First, in 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It is invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The present program, IrScrutinizer, is also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. IrScrutizer almost completely replaces IrMaster, which is no longer maintained.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. In all cases, Java must first be installed. Users of (most) 64-bit Linux-es can use the AppImage version.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads are found [https://github.com/bengtmartensson/harctoolboxbundle/releases here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR]  and (if selected) [http://www.harctoolbox.org/Glossary.html#Analyzer AnalyzeIR], as well as some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture an IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, &amp;quot;UEI Learned&amp;quot; format, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click). (Although sent from one key press on the , [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR] consider this signal as two signals.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is no protocol named NEC; this is [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR&#039;s] way of saying that it has identifed a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrtinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol. There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the not needed parameters among D, S, F, and T are disabled. Some protocols need other parameters. If so, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.ini, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is entirely similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these, as IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer and DecodeIR, rather it is a an executor, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Having said that, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.4 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor (see for example [http://www.harctoolbox.org/arduino_nano.html this]), the [http://www.commandfusion.com/hardware/irlearner CommandFusion learner], (Linux only) Lirc mode 2 devices, and (Linux only) &#039;&#039;&#039;/dev/lirc&#039;&#039;&#039; devices. All but &#039;&#039;&#039;/dev/lirc&#039;&#039;&#039; and the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM(:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Using the IrWidget is entirely similar to IrToy. However, it does not report a firmware version. If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
Configuring the sending hardware is essentially the same as configuring the hardware for capturing. We just make the following few remarks:&lt;br /&gt;
&lt;br /&gt;
* For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported.&lt;br /&gt;
* A LIRC server, patched with [http://www.harctoolbox.org/lirc_ccf.html this patch], listening on a network port, can be used for sending.&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2412</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2412"/>
		<updated>2017-03-15T08:40:59Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Exporting IR Signals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpMaster IR-renderer, which means that almost all IR protocols known to the Internet community (over 100) can be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
First, in 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It is invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The present program, IrScrutinizer, is also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. IrScrutizer almost completely replaces IrMaster, which is no longer maintained.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. In all cases, Java must first be installed. Users of (most) 64-bit Linux-es can use the AppImage version.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads are found [https://github.com/bengtmartensson/harctoolboxbundle/releases here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR]  and (if selected) [http://www.harctoolbox.org/Glossary.html#Analyzer AnalyzeIR], as well as some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture an IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, &amp;quot;UEI Learned&amp;quot; format, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click). (Although sent from one key press on the , [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR] consider this signal as two signals.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is no protocol named NEC; this is [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR&#039;s] way of saying that it has identifed a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrtinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol. There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the not needed parameters among D, S, F, and T are disabled. Some protocols need other parameters. If so, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.ini, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is entirely similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these, as IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer and DecodeIR, rather it is a an executor, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Having said that, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a [http://www.harctoolbox.org/Glossary.html#CSV CVS file], fields separated by TABs. This is suitable for importing in a spreadsheet program.&lt;br /&gt;
;RemoteMaster&lt;br /&gt;
:Generates a rudimentary RemoteMaster device upgrade that can be imported in RemoteMaster, see [http://www.hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster this guide].&lt;br /&gt;
;Arduino *&lt;br /&gt;
:Generates Arduino C++ code for generating and sending IR signals, using one of the popular Arduino libraries.&lt;br /&gt;
;AnyMote, irplus&lt;br /&gt;
:Generates files for the mentioned smartphone remote apps.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.1.2 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor, and (experimentally, Linux only) Lirc mode 2 devices. All but the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM(:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Using the IrWidget is entirely similar to IrToy. However, it does not report a firmware version. If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
Configuring the sending hardware is essentially the same as configuring the hardware for capturing. We just make the following few remarks:&lt;br /&gt;
&lt;br /&gt;
* For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported.&lt;br /&gt;
* A LIRC server, patched with [http://www.harctoolbox.org/lirc_ccf.html this patch], listening on a network port, can be used for sending.&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2411</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2411"/>
		<updated>2017-03-15T08:20:07Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Importing Wave files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpMaster IR-renderer, which means that almost all IR protocols known to the Internet community (over 100) can be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
First, in 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It is invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The present program, IrScrutinizer, is also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. IrScrutizer almost completely replaces IrMaster, which is no longer maintained.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. In all cases, Java must first be installed. Users of (most) 64-bit Linux-es can use the AppImage version.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads are found [https://github.com/bengtmartensson/harctoolboxbundle/releases here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR]  and (if selected) [http://www.harctoolbox.org/Glossary.html#Analyzer AnalyzeIR], as well as some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture an IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, &amp;quot;UEI Learned&amp;quot; format, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click). (Although sent from one key press on the , [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR] consider this signal as two signals.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is no protocol named NEC; this is [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR&#039;s] way of saying that it has identifed a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrtinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol. There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the not needed parameters among D, S, F, and T are disabled. Some protocols need other parameters. If so, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.ini, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is entirely similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these, as IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer and DecodeIR, rather it is a an executor, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Having said that, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
IrScrutinizer can import IR signal packed in wave files (*.wav). The details are outside of the scope of an introduction. (Leave &amp;quot;Half carrier frequency&amp;quot; selected, unless you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a CVS file, fields separated by TABs, that is suitable for importing in a spreadsheet program.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.1.2 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor, and (experimentally, Linux only) Lirc mode 2 devices. All but the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM(:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Using the IrWidget is entirely similar to IrToy. However, it does not report a firmware version. If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
Configuring the sending hardware is essentially the same as configuring the hardware for capturing. We just make the following few remarks:&lt;br /&gt;
&lt;br /&gt;
* For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported.&lt;br /&gt;
* A LIRC server, patched with [http://www.harctoolbox.org/lirc_ccf.html this patch], listening on a network port, can be used for sending.&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2410</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2410"/>
		<updated>2017-03-15T08:10:28Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Capturing in Parametric Remote */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpMaster IR-renderer, which means that almost all IR protocols known to the Internet community (over 100) can be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
First, in 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It is invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The present program, IrScrutinizer, is also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. IrScrutizer almost completely replaces IrMaster, which is no longer maintained.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. In all cases, Java must first be installed. Users of (most) 64-bit Linux-es can use the AppImage version.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads are found [https://github.com/bengtmartensson/harctoolboxbundle/releases here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR]  and (if selected) [http://www.harctoolbox.org/Glossary.html#Analyzer AnalyzeIR], as well as some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture an IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, &amp;quot;UEI Learned&amp;quot; format, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click). (Although sent from one key press on the , [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR] consider this signal as two signals.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is no protocol named NEC; this is [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR&#039;s] way of saying that it has identifed a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First of all, setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrtinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol. There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the not needed parameters among D, S, F, and T are disabled. Some protocols need other parameters. If so, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.ini, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is entirely similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these, as IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer and DecodeIR, rather it is a an executor, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Having said that, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
The issue of packaging IR signal in wave files is outside of the scope of this introduction :-). &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a CVS file, fields separated by TABs, that is suitable for importing in a spreadsheet program.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.1.2 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor, and (experimentally, Linux only) Lirc mode 2 devices. All but the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM(:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Using the IrWidget is entirely similar to IrToy. However, it does not report a firmware version. If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
Configuring the sending hardware is essentially the same as configuring the hardware for capturing. We just make the following few remarks:&lt;br /&gt;
&lt;br /&gt;
* For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported.&lt;br /&gt;
* A LIRC server, patched with [http://www.harctoolbox.org/lirc_ccf.html this patch], listening on a network port, can be used for sending.&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2409</id>
		<title>IrScrutinizer Guide</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide&amp;diff=2409"/>
		<updated>2017-03-15T08:07:11Z</updated>

		<summary type="html">&lt;p&gt;Barf: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:irscrutinizer_splash.png]]&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
IrScrutinizer is a powerful program for capturing, generating, analyzing, importing, and exporting of infrared (IR) signals. For capturing and sending IR signals several different hardware sensors and senders are supported. IR Signals can be imported not only by capturing from one of the supported hardware sensors (among others: IrWidget, Global Caché, and Arduino), but also from a number of different file formats (among others: LIRC, Wave, Pronto Classic and professional, RMDU (partially), and different text based formats; not only from files, but also from the clipboard, from URLs, and from file hierarchies), as well as the Internet IR Databases by Global Caché and by IRDB. Imported signals can be decoded, analyzed, edited, and plotted. A collection of IR signal can thus be assembled and edited, and finally exported in one of the many supported formats. In addition, the program contains the powerful IrpMaster IR-renderer, which means that almost all IR protocols known to the Internet community (over 100) can be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document is not a manual for IrScrutinizer. (The full manual is found [http://www.harctoolbox.org/IrScrutinizer here], which should be read for questions not addressed here).  Instead, it is a gentle guide to a program that can possibly look somewhat overwhelming at the first look. It focuses on what tasks can be achieved,  and on the general &amp;quot;why&amp;quot;, instead of a detailed description of all features.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
For the sequel, a basic understanding of IR signals is required. My favorite introduction is [http://www.sbprojects.com/knowledge/ir/index.php the one by San Bergmans]. My [http://www.harctoolbox.org/Glossary.html glossary] may come in handy. In particular, there is a concise description of the [http://www.harctoolbox.org/Glossary.html#ProntoSemantics semantics of the Prono hex format].&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
First, in 2011, I wrote an IR signal &amp;quot;engine&amp;quot; implementing the [http://www.hifi-remote.com/wiki/index.php?title=IRP_Notation IRP notation], called [http://www.harctoolbox.org/IrpMaster.html IrpMaster]. It is invoked as a command line program. Later that year, a program called [http://www.harctoolbox.org/IrMaster.html IrMaster] was released, which among other things constitutes a user friendly GUI front end to IrpMaster. The present program, IrScrutinizer, is also based on IrpMaster, and adds functionality from IrMaster, in particular the possibility to collect IR signals, a vastly improved import and export facility, and edit collections of IR commands. IrScrutizer almost completely replaces IrMaster, which is no longer maintained.&lt;br /&gt;
&lt;br /&gt;
== Copyright ==&lt;br /&gt;
The program is copyright(c) by Bengt Martensson, and is Free Software published under the [http://www.gnu.org/licenses/gpl.html GPL3 license]. My copyright does not extend to the embedded &amp;quot;components&amp;quot;, which are published under similar, but compatible licenses. Details are given in the [http://www.harctoolbox.org/IrScrutinizer.html#Copyright+and+License manual].&lt;br /&gt;
&lt;br /&gt;
= Concepts =&lt;br /&gt;
For anyone familiar with the IR signals, the program is believed to be intuitive and easy to use. Almost all user interface elements have tool-help texts. Different panes have their own pop-up help. Many panes have a context menu, bound to the right mouse button.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the program immediately after startup.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_startup.png]]&lt;br /&gt;
&lt;br /&gt;
In the upper row, there are six pull-down menus, named &#039;&#039;&#039;File, Edit, Actions, Options, Tools&#039;&#039;&#039;, and &#039;&#039;&#039;Help&#039;&#039;&#039;. Their usage is believed to be mainly self explanatory.&lt;br /&gt;
&lt;br /&gt;
Options to the program are in general found in the &#039;&#039;&#039;Options&#039;&#039;&#039; menu, or its subordinate menus. Some parameters for particular export formats are found in the sub-panes of the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. Also the hardware configuring panes contain user parameters.&lt;br /&gt;
&lt;br /&gt;
The main window is composed of seven sub panes denoted by &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; (for processing single signal), &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (for collecting several signals to one &amp;quot;remote&amp;quot;), &#039;&#039;&#039;Generate&#039;&#039;&#039; (generates IR signal from protocol name and parameters), &#039;&#039;&#039;Import&#039;&#039;&#039;, &#039;&#039;&#039;Export&#039;&#039;&#039;, &#039;&#039;&#039;Capturing Hardware&#039;&#039;&#039;, and &#039;&#039;&#039;Sending Hardware&#039;&#039;&#039; respectively.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
IrScrutinizer takes great pride of being a portable program, and runs on Windows, Linux (including RaspberryPi), and MacOsX. For Windows and MacOS, native installation packages are available. In all cases, Java must first be installed. Users of (most) 64-bit Linux-es can use the AppImage version.  Others, and those who do not like preinstalled binaries, can install the generic binary package, or install from the sources directly. &lt;br /&gt;
&lt;br /&gt;
Details are given [http://www.harctoolbox.org/IrScrutinizer.html#Installation in the manual]. Downloads are found [https://github.com/bengtmartensson/harctoolboxbundle/releases here].&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a single IR signal =&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane is used to analyze a single IR signal. Press F9 to see a sample IR signal directly. The program will now look like this:&lt;br /&gt;
[[Image:irscrutinizer_F9.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The upper sub-window shows the signal either as [http://www.harctoolbox.org/Glossary.html#CCF Pronto Hex] (the default) or as a number of timings in microseconds (selected by Options -&amp;gt; Output text format). Then there follows an output area for the results of [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR]  and (if selected) [http://www.harctoolbox.org/Glossary.html#Analyzer AnalyzeIR], as well as some other identified parameters. The plot windows shows the signal, with the [http://www.harctoolbox.org/Glossary.html#ModulationFrequency modulation] removed. The [http://www.harctoolbox.org/Glossary.html#IrSignal Intro sequence] is shown red (if present), the repeat signal blue (if present), while the ending signal (only present in rare cases) is shown green.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically, the user enters something in the upper subwindow, or capturing something with hardware. The program will then analyze the signal. Things that can be done on this pane:&lt;br /&gt;
* If suitable capturing hardware is connected and opened, pressing &#039;&#039;&#039;Capture&#039;&#039;&#039; will capture an IR signal form the hardware, and scrutinize it.&lt;br /&gt;
* The user can enter something in the upper window, often by pasting from the clipboard, or hand modifying already present content. This requires pressing the &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; button.&lt;br /&gt;
* If suitable sending hardware is connected and opened, pressing the &#039;&#039;&#039;Transmit&#039;&#039;&#039; button will transmit the signal with the selected hardware.&lt;br /&gt;
* If a suitable export format is selected, the &#039;&#039;&#039;Export&#039;&#039;&#039; button will export the signal in the export format selected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Different formats are accepted in the input window: Pronto Hex, Timing list with or without signs, &amp;quot;UEI Learned&amp;quot; format, as well as the Global Cache irsend formats are currently understood.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plotter can be zoomed (of course, only on the horizontal scale) by pressing the left mouse button at the desired start point, and dragging to the desired new ending point. To reset, use &amp;quot;Reset plot&amp;quot; from the context menu or the Actions menu. For comparison with other signals, the plot can be &amp;quot;torn off&amp;quot; by Action -&amp;gt; Clone plot menu entry.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are a number of other possibilities offered by the top menus, and the context menus in the different sub-windows.&lt;br /&gt;
&lt;br /&gt;
=== Excercise 1. ===&lt;br /&gt;
Find an &amp;quot;arbitrary&amp;quot; IR signal in the JP1 or RemoteCentral forums, for example [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7443 this one]. Copy the signal to the clipboard, and paste it, and scutinize it (the button &#039;&#039;&#039;Paste &amp;amp; Scr.&#039;&#039;&#039; makes it in one click). (Although sent from one key press on the , [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR] consider this signal as two signals.)&lt;br /&gt;
&lt;br /&gt;
=== Excercise 2. ===&lt;br /&gt;
Make sure that Pronto Hex is selected as output text format. (Options -&amp;gt; Output text format). Press F9, which will show a NEC1 signal. Using the keyboard, remove the last four hexadecimal numbers (&amp;quot;015B 0057 0016 0E6C&amp;quot;). Press &#039;&#039;&#039;Scrutinize&#039;&#039;&#039;. This will produce an error message, since the signal length is now inconsistent with the header. So we fix that: Change the forth number from 0002 to 0000. Pressing &#039;&#039;&#039;Scrutinize&#039;&#039;&#039; again shows that the signal now decodes, but instead of &amp;quot;NEC1&amp;quot; as [http://www.harctoolbox.org/Glossary.html#IrProtocol protocol], we now have &amp;quot;NEC&amp;quot;. There is no protocol named NEC; this is [http://www.harctoolbox.org/Glossary.html#DecodeIR DecodeIR&#039;s] way of saying that it has identifed a NEC-type signal, but the repeat part is missing.&lt;br /&gt;
&lt;br /&gt;
= Scrutinizing a remote (several IR signals) =&lt;br /&gt;
Often, we would like to consider a whole set of IR signals, for example, all that can be used for controlling a piece of consumer electronics. The word &#039;&#039;remote&#039;&#039; will be used in the sequel to denote such a set of IR signals, having something in common.&lt;br /&gt;
&lt;br /&gt;
IrScrutinizer, as well as most other IR signal programs, can consider an IR signal either as a [http://www.harctoolbox.org/Glossary.html#IrProtocol Protocol] and parameteres (&#039;&#039;parameteric&#039;&#039;) or as (one, two, or three) sequences of durations, denoting on- and off-periods, a [http://www.harctoolbox.org/Glossary.html#RawIrSignal raw signal]. Whenever possible, the parametric form should be preferred. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; pane, has two sub-panes: &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; and &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;. This tutorial will only consider the parametric remote sub-pane. &lt;br /&gt;
&lt;br /&gt;
The pane consists of a table, like in a spreadsheet program. There are columns for protocol name, the more common protocol parameters, name, etc. It is used for capturing a number of signals using connected hardware, or to edit/inspect a previously captured, or imported, remote. See picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_parametric_remote.png]]&lt;br /&gt;
&lt;br /&gt;
Just like in a program like Excel, the columns can be resized, edited (using the text area on top of the table), and sorted from an arbitrary column (requires enabling the sorter in the context menu).  The colums can also be reordered by dragging them with the mouse.&lt;br /&gt;
&lt;br /&gt;
== Capturing in Parametric Remote ==&lt;br /&gt;
First setup and test the hardware is to be used. Make sure that the capturing hardware has been opened. To capture parametric signals, the user just presses &#039;&#039;&#039;Capture&#039;&#039;&#039;, which now stays active, until pressed again. IrScrtinizer will now use a separate thread for collecting the captures, entered into the table. The user can intermix captures and entering of names with the keyboard in any order he wishes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The table can be edited the keyboard. New signals can be entered, having any recognized protocol name as protocol. There are also a number of interesting things that can be done with the context menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When finished, the table is [[#Exporting_IR_Signals | exported]] in a suitable file format. Alternatively, the table can be copied to the clipboard, for being pasted into a spreadsheet program, or the [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual#Functions_Tab functions tab of RemoteMaster].&lt;br /&gt;
&lt;br /&gt;
= Generating IR Signals =&lt;br /&gt;
IrScrutinizer can generate well over 100 different IR protocols. For this, select the desired protocol from the combo box. Different protocol require different parameters. The four most common are D (&amp;quot;device&amp;quot;), S (&amp;quot;subdevice&amp;quot;), F (&amp;quot;function&amp;quot;), and T (&amp;quot;toggle&amp;quot;). After having selected protocol, the not needed parameters among D, S, F, and T are disabled. Some protocols need other parameters. If so, these are entered in the &#039;&#039;&#039;Additional parameters&#039;&#039;&#039; text field, using the format like &#039;&#039;&#039;X=0 Y=42&#039;&#039;&#039;. Note that  there are no spaces around the equals sign, however, space between the assignments. &lt;br /&gt;
&lt;br /&gt;
The signal is generated by pressing &#039;&#039;&#039;Generate&#039;&#039;&#039;. See the picture.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_generate.png]]&lt;br /&gt;
&lt;br /&gt;
The thus generated signal can be [[#Exporting_IR_Signals | exported]], or transmitted with suitable connected sending hardware. The three buttons in the lower row transfers the signal to the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane, or adds it to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to extend IrScrutinizer with new protocols. This is done by adding protocols to the protocol data base, the file IrpProtocols.ini, but is well outside of the scope of this introductory guide.&lt;br /&gt;
&lt;br /&gt;
= Importing IR Signals =&lt;br /&gt;
The Internet is a vast resource for IR signals for different devices. Unfortunately, there is no universally accepted exchange format for a &amp;quot;remote&amp;quot;, i.e. a collection of IR signals with names. For this reason, IrScrutinizer implements a number of different importers. These serves to fill the table &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; or &#039;&#039;&#039;Raw Remote&#039;&#039;&#039;, where the imports can be further edited. That table does on clear on subsequent imports, so it can be used to merge signals from different sources. Data bases, local files (even zip-ped), directory hierarchies, and URLs, and even the clipboard can be imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this introductory guide, we do not describe all the different importers. Usage of the not described importers is entirely similar to the ones described.&lt;br /&gt;
&lt;br /&gt;
== The IRDB Database ==&lt;br /&gt;
[http://www.irdb.tk IRDB] is &amp;quot;one of the largest crowd-sourced, manufacturer-independent databases of infrared remote control codes on the web, and aspiring to become the most comprehensive and most accurate one.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
To use, select the &#039;&#039;&#039;IRDB&#039;&#039;&#039; sub-pane within the &#039;&#039;&#039;Import&#039;&#039;&#039; pane. First, select &amp;quot;Select me to load&amp;quot; in the &#039;&#039;&#039;Manufacturer&#039;&#039;&#039; combo box, in order to load the list of known manufacturers. Select the desired one. This loads the list of &#039;&#039;&#039;Device Type&#039;&#039;&#039;&#039;s known for that manufacturer. The &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039; combo box is now loaded by the known &amp;quot;devices&amp;quot;. Select one, and press the &#039;&#039;&#039;Load&#039;&#039;&#039; button. This downloads the information from the data base and pushes it to the tree in the left middle part. Alternatively, the button &#039;&#039;&#039;Load all&#039;&#039;&#039; will load all of of the entries under &#039;&#039;&#039;Protocol &amp;amp; Parameters&#039;&#039;&#039;. The next picture shows IrScrutinizer after having &#039;&#039;&#039;Load all&#039;&#039;&#039; Sony video projectors. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irdb_sony.png]]&lt;br /&gt;
&lt;br /&gt;
(During import, IrScrutinizer detected some inconsistencies in the imported data, as indicated by the messages in the console.)&lt;br /&gt;
&lt;br /&gt;
The import tree is organized like this: The top level note is always &amp;quot;Remotes&amp;quot;. Its immediate children are the remotes in the import, and can be opened or closed by clicking on the symbol to the left of the folder symbol. (The picture shows the first remote closed, and the second remote opened.) The children of the remotes are the named IR signals. By hovering the mouse over one such, its protocol and parameters (if available) are displayed as tooltips. (See the picture, where &amp;quot;DYNAMIC&amp;quot; is selected.)&lt;br /&gt;
&lt;br /&gt;
The signal can now be imported by pressing &#039;&#039;&#039;Import all&#039;&#039;, which transfers them to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039; sub-pane in &#039;&#039;&#039;Scrutinizer remote&#039;&#039;&#039; pane. Alternatively, a subset can be selected with mouse clicks, (Shift-left and Ctrl-left works as espected for selecting multiple signals) and imported by &#039;&#039;&#039;Import selection&#039;&#039;&#039;. The button &#039;&#039;&#039;Import signal&#039;&#039;&#039; transfers the (single) selected signal to the &#039;&#039;&#039;Scrutinizer signal&#039;&#039;&#039; pane. If suitable sending hardware is opened, a selected signal can be transmitted directly by the &#039;&#039;&#039;Transmit selected&#039;&#039;&#039; button.&lt;br /&gt;
&lt;br /&gt;
== Importing Lirc files ==&lt;br /&gt;
Both inside and outside of the Lirc community, there is often a need either to analyze or to extract the information in a Lirc configuration file. IrScrutinizer is very well fit for this task, as it contains a great deal of the Lirc code (translated to Java). The [http://sourceforge.net/p/lirc-remotes/code/ci/master/tree Lirc remotes data base] is also a considerable resource, to be considered when hunting the Internet for IR codes.&lt;br /&gt;
&lt;br /&gt;
To import a single Lirc file posted in a web page or in a mail, it is easiest to just copy it to the clipboard, got to the &#039;&#039;&#039;Lirc&#039;&#039;&#039; import pane, and click &#039;&#039;&#039;Load from clipbard&#039;&#039;&#039;. To load a local file, use the &#039;&#039;&#039;...&#039;&#039;&#039;-Button to navigate to the file, and press &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; to perform the actual import. This can also be used import directories containing Lirc configuration files. (In this way, the whole Lirc remote data base can be imported, at least if sufficient memory is available. On my computer, it takes less than one minute.)&lt;br /&gt;
&lt;br /&gt;
Often, the imported Lirc files contain problems of different types. During import, there may be warnings in the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
The entire Lirc data base can be browsed [http://lirc-remotes.sourceforge.net/remotes-table.html here]. (Note that the remotes without &amp;quot;Timing&amp;quot; are usable only with specialized hardware, for example a certain notebook computer, and unusable for the rest of us.) &lt;br /&gt;
&lt;br /&gt;
Assuming [http://git-scm.com/ Git] is installed as a command line program, the entire Lirc remote data base can be checked out to a local disc by a command like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clone git://git.code.sf.net/p/lirc-remotes/code lirc-remotes&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As the name of the text area and button suggests, also URLs, like &amp;lt;code&amp;gt;&lt;br /&gt;
http://sourceforge.net/p/lirc-remotes/code/ci/master/tree/remotes/yamaha/RX-V995.lircd.conf?format=raw&amp;lt;/code&amp;gt;, can be directly imported by entering it into the &#039;&#039;&#039;File/URL&#039;&#039;&#039; area.&lt;br /&gt;
&lt;br /&gt;
== Importing Pronto Classic (ccf) files ==&lt;br /&gt;
In particular on [http://files.remotecentral.com/pronto/index.html RemoteCentral], there is a huge number of [http://www.harctoolbox.org/Glossary.html#ccfFileFormat CCF Files] for the Philips Pronto Classic. They are not really a data base for IR signals, rather a complete configuration for the probably best remote control there was, around 15 years ago. IrScrutinizer only considers them for importing the contained IR signals.&lt;br /&gt;
&lt;br /&gt;
When downloading files from e.g. RemoteCentral, these are often zipped. There is no need to unzip these, as IrScrutinizer will open the zip files directly.&lt;br /&gt;
&lt;br /&gt;
When importing a CCF file, the contained devices (in the Pronto sense) will be mapped to different &amp;quot;remotes&amp;quot; in the import tree. Sub-pages of a device will all be merged together.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there are often small problems within the imported files, in particular invalid IR signals. These problems are listed to the console. IrScrutinizer handles these problems gracefully, in general by just ignoring the entries that it could not make sense of.&lt;br /&gt;
&lt;br /&gt;
[http://files.remotecentral.com/view/3491-7440-1/aaron_guenthers_pronto_ccf.html Here] is a file to exercise on, it contains several devices, there are sensible IR signals, as well as signals not recognized, likely bad learns.&lt;br /&gt;
&lt;br /&gt;
== Importing RemoteMaster files ==&lt;br /&gt;
The [http://www.hifi-remote.com/forums/index.php JP1 forum] is also a vast source of IR signals, see [http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 the file section] and [http://www.hifi-remote.com/jp1/lookup/ the lookup tool]. Their files are in general &amp;quot;Device upgrades&amp;quot; configuration files for different remotes manufactured by UEI (Universal Electronics), meant to be maintained by the program [http://www.hifi-remote.com/wiki/index.php?title=Remote_Master_Manual RemoteMaster]. This means that the &amp;quot;protocol&amp;quot; used in a device upgrade can sometimes be hard to understand. The &amp;quot;protocol&amp;quot; in a device upgrade does not quite correspond to the meaning of &amp;quot;protocol&amp;quot; in IrScrutinizer and DecodeIR, rather it is a an executor, either built-in in the UEI remote, or a custom protocol, which is a small machine code chunk contained in the device upgrade, particular to the very microprocessor of the remote. In these cases, either an instance of that processor, or an emulator for it, would be required to faithfully render the signal. Fortunately, this is not always the case, and the contained protocols can be mapped onto the known IR protocols easily. Having said that, the RemoteMaster import facility is by necessity limited and incomplete. &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=6721 Here] is a file to try, that imports fine. (The &amp;quot;Download&amp;quot; button is only visible for logged-in users.)&lt;br /&gt;
&lt;br /&gt;
== Importing Wave files ==&lt;br /&gt;
The issue of packaging IR signal in wave files is outside of the scope of this introduction :-). &lt;br /&gt;
&lt;br /&gt;
=== Excercise ===&lt;br /&gt;
Try importing [http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=12096 this file]. Note that some information on the content of the file is written to the console.&lt;br /&gt;
&lt;br /&gt;
== Importing &amp;quot;text&amp;quot; files ==&lt;br /&gt;
In the absence of a universally accepted exchange format for remotes (in the sense of sets of named IR signals) -- a gap that the format [http://www.harctoolbox.org/Girr.html Girr] is trying to fill -- IR signals are often published in different text formats, or as spreadsheets. IrScrutinizer has quite some facilities for importing that sort of files. It can (at least not presently) not open Excel &amp;lt;code&amp;gt;.xsl&amp;lt;/code&amp;gt;-files directly. Instead a spreadsheet program like Excel, OpenOffice/Libreoffice or Gnumeric can export (a subset of) its data as comma (or tab) separated values, a text file where the fields are divided by a certain character, in general the comma (,), the semicolon (;), the TAB character (ASCII 9), or general whitespace. We will cover the three sub-panes of the &#039;&#039;&#039;Text&#039;&#039;&#039; importer pane next.&lt;br /&gt;
&lt;br /&gt;
=== Raw, line-based ===&lt;br /&gt;
&amp;quot;Raw, line-based&amp;quot; means that raw codes (e.g. in the Pronto Hex format) are found on lines by itself, preceded by a name, also on a line by itself. Many postings on RemoteCentral and JP1 follow this scheme. IrScrutinizer finds the &amp;quot;payload&amp;quot; (IR signal in any of the recognized formats, like Pronto Hex (also short format), UEI learned, timing lists, sendir) among other content, and imports it.&lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Consider [http://www.remotecentral.com/cgi-bin/mboard/rc-discrete/thread.cgi?7222 this thread on RemoteCentral]. Copy the whole thread to the clipboard (Ctrl-A, Ctrl-C). Go to the &#039;&#039;&#039;Raw, line-based&#039;&#039;&#039; pane, and press &#039;&#039;&#039;Load from clipboard&#039;&#039;&#039;. There should now be 24 properly decoded signals in the tree view.&lt;br /&gt;
&lt;br /&gt;
=== Raw ===&lt;br /&gt;
This is for importing raw formats in a spreadsheet like format (comma separate values etc). To use, select the character separating the fields as &amp;quot;Field separator&amp;quot;. Select the column containing the name of the IR Signal/command, and the column containing the raw data.&lt;br /&gt;
&lt;br /&gt;
==== Excercise ====&lt;br /&gt;
Download this [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls Excel file] containing the IR commands for the Oppo 103/105 Bluray player. Using a spreadsheet program (e.g. Excel or LibreOffice), convert the first worksheet of it to a CSV file using any suitable field separator (e.g. TAB). Using the &#039;&#039;&#039;Raw&#039;&#039;&#039; pane, select the column containing the name, and the column containing the Pronto hex data, as well as the field separator. Import by pressing the &#039;&#039;&#039;Load File/URL&#039;&#039;&#039; button. There should now be 57 signals in the tree view, all NEC1 with D=73, varying F.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Parametric ===&lt;br /&gt;
This pane imports IR signals given as protocol and parameters. As the excercise shows, some manual work may be necessary. There are combo boxes to select the column number for the name, protocol, and the parameters D, S, and F. Also the number base for parsing the numbers can be selected. &lt;br /&gt;
&lt;br /&gt;
==== Exercise ====&lt;br /&gt;
Use the same csv file as in the previous exercise. Select the name column, and &#039;&#039;either&#039;&#039; the column for the hexadecimal command number (=F) (in which case 16 has number number base should be selected), or the column for the decimal command number (in which case 10 has number number base should be selected). Note the warnings in the console, stating that some lines did not make sense as IR signals.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_oppo_parametric.png]]&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Import all&#039;&#039;&#039; to transfer the result to the &#039;&#039;&#039;Parametric Remote&#039;&#039;&#039;. In that pane, note first that there are a few &#039;&#039;junk&#039;&#039; entries, not corresponding to IR signal, so remove them by marking the line, press the right mouse button, and select &#039;&#039;&#039;Delete selected&#039;&#039;&#039; from the context menu. Since the protocol and the D are the same for all signals, the file did not put in on every line, which means that the import missed it, and it has to be entered manually. For this, the individual lines can be edited, however, there is a shortcut: From the context menu, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Set protocol...&#039;&#039;&#039; and enter the protocol name (here NEC1) in the popup. Similarly, select &#039;&#039;&#039;Advanced&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Select D (deviceno) ...&#039;&#039;&#039;, and enter D (73). &lt;br /&gt;
&lt;br /&gt;
Note: Unfortunately, there is a bug in version 1.1.2, affecting import of csv files using colon (:), TAB, and WHITESPACE. To avoid, use comma (,) or semicolon (;) instead.&lt;br /&gt;
&lt;br /&gt;
= Exporting IR Signals =&lt;br /&gt;
IrScrutinizer does not have a &amp;quot;save&amp;quot; feature, because that would be of very limited use. Instead, there is the possibility to &amp;quot;export&amp;quot; in a number of different formats.&lt;br /&gt;
&lt;br /&gt;
Next picture shows the &#039;&#039;&#039;Export&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_export.png]]&lt;br /&gt;
&lt;br /&gt;
The combo box to the left selects the export format. There is a large number of different export formats implemented, and the user can even add his own by adding them to a configuration file. &lt;br /&gt;
&lt;br /&gt;
Different export formats have different properties. There are some options (see the picture) that do not make sense on some export formats. They will be disabled when selecting certain protocols. &lt;br /&gt;
&lt;br /&gt;
Some formats (Girr and Text) can contain several &amp;quot;representation&amp;quot; of the same IR signal. These are the checkboxes to the right of the combo box.&lt;br /&gt;
&lt;br /&gt;
There are four &amp;quot;things&amp;quot; that can be exported: The signal on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; pane (the button &#039;&#039;&#039;Export signal&#039;&#039;&#039;), the &#039;&#039;&#039;Parametric remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export param. remote&#039;&#039;&#039;), the &#039;&#039;&#039;Raw remote&#039;&#039;&#039; pane within &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; (&#039;&#039;&#039;Export raw remote&#039;&#039;&#039;), and the signal(s) from the &#039;&#039;&#039;Generate&#039;&#039;&#039; pane (&#039;&#039;&#039;Export generated&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
The lower part of the pane allows to set a few format-specific parameters.&lt;br /&gt;
&lt;br /&gt;
Next we give some comments on some of the export formats.&lt;br /&gt;
&lt;br /&gt;
;[http://www.harctoolbox.org/Girr.html Girr]&lt;br /&gt;
: This is the native format of IrScrutinizer. It is an XML file that can contain different content, as selected by the checkboxes. &lt;br /&gt;
;Text&lt;br /&gt;
: Exports the IR signals in the form of normal ASCII files, not really suitable for anything but forums and such.&lt;br /&gt;
;LIRC&lt;br /&gt;
: Exports a set of IR signals as a Lirc configuration file.&lt;br /&gt;
;Wave&lt;br /&gt;
: Exports a single IR signal as a wave file.&lt;br /&gt;
;Pronto Classic&lt;br /&gt;
: Generates a Pronto Classic CCF file, complete with one button for every IR signal. (This can be considered to be a modern replacement of the IrPanels/CCF Panels program.)&lt;br /&gt;
;Spreadsheet&lt;br /&gt;
: Generates a CVS file, fields separated by TABs, that is suitable for importing in a spreadsheet program.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Capturing =&lt;br /&gt;
To capture real IR signals, some sort of hardware is needed. Version 1.1.2 of IrScrutinizer supports [http://www.globalcache.com Global Caché’] units with learner, Kevin Timmerman&#039;s  [http://www.compendiumarcana.com/irwidget/ IrWidget], Dangerous Prototype&#039;s [http://dangerousprototypes.com/docs/USB_Infrared_Toy USB IrToy], Arduinos with a connected non-demodulating sensor, and (experimentally, Linux only) Lirc mode 2 devices. All but the Lirc mode2 devices are capable of determining the modulation frequency of the captured signal.&lt;br /&gt;
&lt;br /&gt;
The splash image, also shown on top of this page, shows, from left to right, a Global Caché iTach Flex, an IrToy, and an Arduino Nano. &lt;br /&gt;
&lt;br /&gt;
== USB IrToy ==&lt;br /&gt;
Connect the device to the computer and determine the device that the operating system assigns to it. For this, on Windows, use the device manager to find it. It should have a name like &amp;lt;code&amp;gt;COM(:&amp;lt;/code&amp;gt; or such. (If not found, install the [https://code.google.com/p/dangerous-prototypes-open-hardware/downloads/detail?name=USBIRToy.package.v22.zip driver].) Using Linux, it is in general assigned a name like &amp;lt;code&amp;gt;/dev/ttyACM0&amp;lt;/code&amp;gt;. Now go to the &#039;&#039;&#039;IrToy&#039;&#039;&#039; sub pane within the &#039;&#039;&#039;Capturing hw&#039;&#039;&#039; pane. Select the appropriate serial port, the one observed in the device manager or in the &amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt; directory. Press &#039;&#039;&#039;Open&#039;&#039;&#039;. The version of the firmware in the IrToy should now be reported in the &#039;&#039;&#039;Ver:&#039;&#039;&#039; text field, here &amp;quot;V222&amp;quot;. (This serves as a test that the communication is working.) See picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IrWidget ==&lt;br /&gt;
Using the IrWidget is entirely similar to IrToy. However, it does not report a firmware version. If Windows needs a driver, install the [http://www.ftdichip.com/Drivers/VCP.htm FTDI Virtual comm-port driver].&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
A suitably equipped Arduino (essentially a Uno or Nano with non-demodulating sensor and the  ArduinoGirsLite firmware) makes an excellent IR capturer. Usage is analogous to the IrToy. If Windows needs a particular driver, visit the [http://www.arduino.cc Arduino home page].&lt;br /&gt;
&lt;br /&gt;
== Global Caché ==&lt;br /&gt;
Global Caché&#039;s with a build in learner, like the new [http://www.globalcache.com/products/itachflex/ iTach Flex] work well with IrScrutinizer. Devices on the local network, having firmware from the last few years, are detected automatically by IrScrutinizer. Just select the desired one from the combo box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whatever hardware has been selected and opened, it can/should be tested directly on the pane. Press the &#039;&#039;&#039;Test button&#039;&#039;&#039; and fire an IR signal at the sensor within the next few seconds. It should now print the timing of the captured signal, the measured modulation frequency, and possible decodes. See the picture:&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_irtoy_test.png]]&lt;br /&gt;
&lt;br /&gt;
Please note that the Test facility is just what the name says, a testing facility -- productive captures should be make on the &#039;&#039;&#039;Scrutinize signal&#039;&#039;&#039; or &#039;&#039;&#039;Scrutinize remote&#039;&#039;&#039; panes.&lt;br /&gt;
&lt;br /&gt;
= Configuring Hardware for Sending =&lt;br /&gt;
Configuring the sending hardware is essentially the same as configuring the hardware for capturing. We just make the following few remarks:&lt;br /&gt;
&lt;br /&gt;
* For the IrToy, only firmware version 2.2 (&amp;quot;V222&amp;quot; in the report) is supported.&lt;br /&gt;
* A LIRC server, patched with [http://www.harctoolbox.org/lirc_ccf.html this patch], listening on a network port, can be used for sending.&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
IrScrutinizer is actively developed. &#039;&#039;Your&#039;&#039; feedback and suggestions for improvements is actively solicited. Suggestions and bug report can, e.g., be left in the forum here, or raised as [https://github.com/bengtmartensson/harctoolboxbundle/issues issues at Github] (requires a Github account). Apart from this forum, I participate on [http://www.remotecentral.com/cgi-bin/mboard/forums.cgi RemoteCentral forum] (in both cases with the user name [http://en.wikipedia.org/wiki/Spaceballs#Heroes Barf]) and on the [https://lists.sourceforge.net/lists/listinfo/lirc-list Lirc mailing list].&lt;br /&gt;
&lt;br /&gt;
For feedback on this page, as well as improvements, either use the forum, or register on this Wiki. &lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
The sources to the program are maintained at [https://github.com/bengtmartensson/harctoolboxbundle Github]. Contributions (Forks and push requests) are welcome.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2682</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2682"/>
		<updated>2016-12-19T09:47:14Z</updated>

		<summary type="html">&lt;p&gt;Barf: protocols.ini already contains ImportOnly since RM 2.04build10. Fixed broken link to Oppo codes.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Importing Foreign IR Remotes in RemoteMaster =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This guide will take the reader through a method for importing foreign (i.e. non-JP1) IR remotes into RemoteMaster.&#039;&#039;&lt;br /&gt;
&#039;&#039;The procedure requires some knowledge by the user, who have to make some manual decisions. The guide is not aimed at beginning users. Some prior knowledge about RemoteMaster and IrScrutinizer is assumed. Also, importing raw or unknown codes are not covered.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;RemoteMaster&amp;quot; export from IrScrutinizer 1.3 (or later) to a temporary file,&lt;br /&gt;
* Open the above created file in RemoteMaster. Select a usable executor manually. Perform other desired fixes.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
This article only deals with decoded signals, i.e., the IR signals are considered as consisting of a parametrized protocol,&lt;br /&gt;
together with its parameters. Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
It turns out that, with the current state of technology, the process is not fully automatic, but necessarily involves human interaction.&lt;br /&gt;
&lt;br /&gt;
= Background (Mythbuster&#039;s lingo: Danger: Science!) =&lt;br /&gt;
The protocol and the corresponding parameter values constitute a mathematical description of how to render the signal as &lt;br /&gt;
a sequence of on/off durations. This is good for us to examine, generate, exchange with others. Unfortunately, it is not&lt;br /&gt;
quite the language the UEI remotes speak: Instead of &amp;quot;protocols&amp;quot;, they contain a number of &amp;quot;executors&amp;quot;,&lt;br /&gt;
which are a small programs in machine code, responsible for computing the IR signal. Unfortunately, they are&lt;br /&gt;
in general differently parameterized, and not in 1-1 correspondence with the protocols.&lt;br /&gt;
Many executors implement several different protocols,&lt;br /&gt;
so-called &amp;quot;combos&amp;quot;. Also, for a particular protocol, there are often more than one executor to choose from. To make things extra&lt;br /&gt;
interesting, &amp;quot;executors&amp;quot; are in the RM program and documentation in general referred to as &amp;quot;protocols&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For example, the NEC1 protocol is implemented by a number of different executors, &#039;&#039;&#039;NEC1&#039;&#039;&#039;, &#039;&#039;&#039;NEC 1or2 Combo&#039;&#039;&#039;, &#039;&#039;&#039;NEC 2DEV Combo&#039;&#039;&#039;, &#039;&#039;&#039;NEC 4DEV Combo&#039;&#039;&#039;,&lt;br /&gt;
and others. Some of these also implement other protocols (like NEC2), some allow several different &amp;quot;D&amp;quot;s.  All have slightly different&lt;br /&gt;
properties.&lt;br /&gt;
&lt;br /&gt;
Another problem is that the master parameter for the individual commands is the &amp;quot;F&amp;quot; parameter (called &amp;quot;OBC&amp;quot; in RM)&lt;br /&gt;
in the protocol,&lt;br /&gt;
but the &#039;&#039;&#039;hex&#039;&#039;&#039; parameter in RM. The details are outside of the scope of this article, but we just state some facts&lt;br /&gt;
about the mapping OBC &amp;lt;-&amp;gt; hex:&lt;br /&gt;
* it depends on the executor (i.e., it is different for different executors),&lt;br /&gt;
* the &#039;&#039;&#039;hex&#039;&#039;&#039; parameter might depend on more input data than the OBC,&lt;br /&gt;
* it is &amp;quot;complicated&amp;quot;, but deterministic and memory-less,&lt;br /&gt;
* RM can do this computation, provided that &#039;&#039;&#039;Allow Preserve Control&#039;&#039;&#039;&lt;br /&gt;
(accessable as Options -&amp;gt; Allow Preserve control) has been selected.&lt;br /&gt;
&lt;br /&gt;
Importing a set of IR commands basically boils down to selecting an executor, computing its parameters,&lt;br /&gt;
and, for all contained commands, compute the hex parameter.&lt;br /&gt;
&lt;br /&gt;
For this reason, it has not been attempted to automatically selecting the executor from input data.&lt;br /&gt;
Instead, this is delegated to the user. The following solution is proposed:&lt;br /&gt;
&lt;br /&gt;
= Outline of Solution =&lt;br /&gt;
A deliberately &amp;quot;dumb&amp;quot; solution is proposed. &lt;br /&gt;
A trivial &amp;quot;mock&amp;quot; executor, &#039;&#039;&#039;ImportOnly&#039;&#039;&#039;, having hex = OBC, has been added to &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;.&lt;br /&gt;
An export is performed using this executer.&lt;br /&gt;
We then rely on the user to select a usable executor, and on RM to compute the corresponding parameters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Preparation =&lt;br /&gt;
Two things needs to be done once-and-for all to RM. These need not be repeated.&lt;br /&gt;
&lt;br /&gt;
== Extending &#039;&#039;&#039;protocols.ini&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
RemoteMaster&#039;s data base &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;, located in&lt;br /&gt;
the base directory of RM, already contains &#039;&#039;&#039;ImportOnly&#039;&#039;&#039; since version 2.04 build 9. If using an earlier version,&lt;br /&gt;
add the following lines&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# Add this to the end of protocols.ini of Remotemaster in order&lt;br /&gt;
# to import IrScrutinizer rmdu exports.&lt;br /&gt;
[ImportOnly]&lt;br /&gt;
PID=99 99&lt;br /&gt;
DevParms=Device:8=0,Sub Device:8=0&lt;br /&gt;
DeviceTranslator=Translator()&lt;br /&gt;
CmdParms=OBC:16=0&lt;br /&gt;
DefaultCmd=00&lt;br /&gt;
CmdTranslator=Translator()&lt;br /&gt;
Notes=This is a trival dummy executor (protocol), intended to import third-party incomplete device updates, allowing the user to manually fix it up. It will preserve Device, Sub Device, and OBC.\n\nThe user must select a usable protocol instead of this one. First please check Options -&amp;gt; &amp;quot;Allow preserve Control&amp;quot;, and then select &amp;quot;Preserve: OBC and function parameters&amp;quot; on the &amp;quot;Setup&amp;quot; pane.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Selecting &#039;&#039;&#039;Allow preserve control&#039;&#039;&#039; ==&lt;br /&gt;
The RM parameter &#039;&#039;&#039;Allow preserve control&#039;&#039;&#039; has to be selected; see figure&lt;br /&gt;
[[Image:rm_select_allow_preserve.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Procedure =&lt;br /&gt;
&lt;br /&gt;
* First, a &amp;quot;dumb&amp;quot; rmdu file is generated, using the &#039;&#039;&#039;ImportOnly&#039;&#039;&#039; executor, using IrScrutinizer 1.3 (or another tool),&lt;br /&gt;
* This is imported in RM. The user there selects a usable executor. If RM computes the parameters correctly, this will produce a working rmdu device update.&lt;br /&gt;
&lt;br /&gt;
== Caveat ==&lt;br /&gt;
&lt;br /&gt;
As is probably clear to the user, some prior knowledge is required of the user. If RM do the computations correctly, this should&lt;br /&gt;
result in usable rmdu file. However, this functionality is not very widely used, and bugs may show up. (In that case, please report&lt;br /&gt;
in the forum.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [http://download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls published set of IR commands].&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) We assume that this command set has been imported in IrScrutinizer, see figure.&lt;br /&gt;
Note that every row denotes a command, has a name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_param_table.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported,&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_param_export_rmdu.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;RemoteMaster&amp;quot; as the Export format, and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a simple rmdu file.&lt;br /&gt;
&lt;br /&gt;
We assume that RM has been prepared as per above. After starting, the just-created simple rmdu file is opened (File -&amp;gt; Open).&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
After opening the file, RM will present an error popup:&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_popup.png]]&lt;br /&gt;
&lt;br /&gt;
This simply means that, although RM understood the protocol (executor really) named &#039;&#039;&#039;ImportOnly&#039;&#039;&#039;&lt;br /&gt;
(because _we_ put it into its &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;!), it says that the currently selected remote does not support it, and the&lt;br /&gt;
user must select another one. (Just as we would expect!) We know that the desired protocol is called &amp;quot;NEC1&amp;quot;,&lt;br /&gt;
so we next have to select an executor implementing that protocol. For the purpose of this example, we select the &lt;br /&gt;
executor named &#039;&#039;&#039;NEC1&#039;&#039;&#039;, using the &amp;quot;Protocol&amp;quot; combo box. Make sure that as &amp;quot;Preserve&amp;quot; &amp;quot;OBC and function parameters&amp;quot; is selected.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_selected_executor.png]]&lt;br /&gt;
&lt;br /&gt;
Check that the protocol parameters (executor parameters really) make sense. &lt;br /&gt;
Here, the &amp;quot;D&amp;quot; in the protocol has been successfully turned into the parameter &amp;quot;Device&amp;quot; (= 73),&lt;br /&gt;
and the &amp;quot;Sub Device&amp;quot; is empty, as expected. &lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_imported_functions.png]]&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2681</id>
		<title>Importing Foreign IR Remotes in RemoteMaster</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=Importing_Foreign_IR_Remotes_in_RemoteMaster&amp;diff=2681"/>
		<updated>2016-12-18T16:38:33Z</updated>

		<summary type="html">&lt;p&gt;Barf: Created page with &amp;quot;= Importing Foreign IR Remotes in RemoteMaster =  &amp;#039;&amp;#039;This guide will take the reader through a method for importing foreign (i.e. non-JP1) IR remotes into RemoteMaster.&amp;#039;&amp;#039; &amp;#039;&amp;#039;The...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Importing Foreign IR Remotes in RemoteMaster =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This guide will take the reader through a method for importing foreign (i.e. non-JP1) IR remotes into RemoteMaster.&#039;&#039;&lt;br /&gt;
&#039;&#039;The procedure requires some knowledge by the user, who have to make some manual decisions. The guide is not aimed at beginning users. Some prior knowledge about RemoteMaster and IrScrutinizer is assumed. Also, importing raw or unknown codes are not covered.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Ultra-short version =&lt;br /&gt;
&lt;br /&gt;
* Perform an &amp;quot;RemoteMaster&amp;quot; export from IrScrutinizer 1.3 (or later) to a temporary file,&lt;br /&gt;
* Add the &#039;&#039;&#039;ImportOnly&#039;&#039;&#039; executor to &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;,&lt;br /&gt;
* Open the above created file in RemoteMaster. Select a usable executor manually. Perform other desired fixes.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Internet is a vast source of infrared code sets, see for example [http://harctoolbox.org/IR-resources.html this list].&lt;br /&gt;
For usage with RemoteMaster (&amp;quot;RM&amp;quot;), this information is in general not directly usable. &lt;br /&gt;
Often, usable RM device update files (&amp;quot;rmdu&amp;quot;) can be found in the&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=category&amp;amp;cat_id=4 JP1 device update repository]  (see also&lt;br /&gt;
[http://www.hifi-remote.com/forums/dload.php?action=file&amp;amp;file_id=8487 the master list] and &lt;br /&gt;
[http://www.getzweb.net/jp1/ the lookup tool]).&lt;br /&gt;
But still some cases remain; in particular self captured (&amp;quot;learned&amp;quot;) remotes. &lt;br /&gt;
&lt;br /&gt;
This article only deals with decoded signals, i.e., the IR signals are considered as consisting of a parametrized protocol,&lt;br /&gt;
together with its parameters. Of course, one way to solve the problem would be to manually type the signals&lt;br /&gt;
(protocol, parameters, name, possible comment) in the function editor of RM, possibly the help of cut-n-paste.&lt;br /&gt;
This is a very tedious and error prone approach.&lt;br /&gt;
Importing these in a systematic way, with minimal interaction, is the topic of the current article.&lt;br /&gt;
&lt;br /&gt;
It turns out that, with the current state of technology, the process is not fully automatic, but necessarily involves human interaction.&lt;br /&gt;
&lt;br /&gt;
= Background (Mythbuster&#039;s lingo: Danger: Science!) =&lt;br /&gt;
The protocol and the corresponding parameter values constitute a mathematical description of how to render the signal as &lt;br /&gt;
a sequence of on/off durations. This is good for us to examine, generate, exchange with others. Unfortunately, it is not&lt;br /&gt;
quite the language the UEI remotes speak: Instead of &amp;quot;protocols&amp;quot;, they contain a number of &amp;quot;executors&amp;quot;,&lt;br /&gt;
which are a small programs in machine code, responsible for computing the IR signal. Unfortunately, they are&lt;br /&gt;
in general differently parameterized, and not in 1-1 correspondence with the protocols.&lt;br /&gt;
Many executors implement several different protocols,&lt;br /&gt;
so-called &amp;quot;combos&amp;quot;. Also, for a particular protocol, there are often more than one executor to choose from. To make things extra&lt;br /&gt;
interesting, &amp;quot;executors&amp;quot; are in the RM program and documentation in general referred to as &amp;quot;protocols&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
For example, the NEC1 protocol is implemented by a number of different executors, &#039;&#039;&#039;NEC1&#039;&#039;&#039;, &#039;&#039;&#039;NEC 1or2 Combo&#039;&#039;&#039;, &#039;&#039;&#039;NEC 2DEV Combo&#039;&#039;&#039;, &#039;&#039;&#039;NEC 4DEV Combo&#039;&#039;&#039;,&lt;br /&gt;
and others. Some of these also implement other protocols (like NEC2), some allow several different &amp;quot;D&amp;quot;s.  All have slightly different&lt;br /&gt;
properties.&lt;br /&gt;
&lt;br /&gt;
Another problem is that the master parameter for the individual commands is the &amp;quot;F&amp;quot; parameter (called &amp;quot;OBC&amp;quot; in RM)&lt;br /&gt;
in the protocol,&lt;br /&gt;
but the &#039;&#039;&#039;hex&#039;&#039;&#039; parameter in RM. The details are outside of the scope of this article, but we just state some facts&lt;br /&gt;
about the mapping OBC &amp;lt;-&amp;gt; hex:&lt;br /&gt;
* it depends on the executor (i.e., it is different for different executors),&lt;br /&gt;
* the &#039;&#039;&#039;hex&#039;&#039;&#039; parameter might depend on more input data than the OBC,&lt;br /&gt;
* it is &amp;quot;complicated&amp;quot;, but deterministic and memory-less,&lt;br /&gt;
* RM can do this computation, provided that &#039;&#039;&#039;Allow Preserve Control&#039;&#039;&#039;&lt;br /&gt;
(accessable as Options -&amp;gt; Allow Preserve control) has been selected.&lt;br /&gt;
&lt;br /&gt;
Importing a set of IR commands basically boils down to selecting an executor, computing its parameters,&lt;br /&gt;
and, for all contained commands, compute the hex parameter.&lt;br /&gt;
&lt;br /&gt;
For this reason, it has not been attempted to automatically selecting the executor from input data.&lt;br /&gt;
Instead, this is delegated to the user. The following solution is proposed:&lt;br /&gt;
&lt;br /&gt;
= Outline of Solution =&lt;br /&gt;
A deliberately &amp;quot;dumb&amp;quot; solution is proposed. &lt;br /&gt;
An almost trivial &amp;quot;mock&amp;quot; protocol, &#039;&#039;&#039;ImportOnly&#039;&#039;&#039;, having hex = OBC, is defined by extending &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;.&lt;br /&gt;
An export is performed using this executer.&lt;br /&gt;
We then rely on the user to select a usable executor, and on RM to compute the corresponding parameters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Preparation =&lt;br /&gt;
Two things needs to be done once-and-for all to RM. These need not be repeated.&lt;br /&gt;
&lt;br /&gt;
== Extending &#039;&#039;&#039;protocols.ini&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
RM needs to be told about the &amp;quot;executor&amp;quot; &#039;&#039;&#039;ImportOnly&#039;&#039;&#039;. Its data base is the text file &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;, located in&lt;br /&gt;
the base directory of RM. The necessary modification is simply to append &lt;br /&gt;
this text segment&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# Add this to the end of protocols.ini of Remotemaster in order&lt;br /&gt;
# to import IrScrutinizer rmdu exports.&lt;br /&gt;
[ImportOnly]&lt;br /&gt;
PID=99 99&lt;br /&gt;
DevParms=Device:8=0,Sub Device:8=0&lt;br /&gt;
DeviceTranslator=Translator()&lt;br /&gt;
CmdParms=OBC:16=0&lt;br /&gt;
DefaultCmd=00&lt;br /&gt;
CmdTranslator=Translator()&lt;br /&gt;
Notes=This is a trival dummy executor (protocol), intended to import third-party incomplete device updates, allowing the user to manually fix it up. It will preserve Device, Sub Device, and OBC.\n\nThe user must select a usable protocol instead of this one. First please check Options -&amp;gt; &amp;quot;Allow preserve Control&amp;quot;, and then select &amp;quot;Preserve: OBC and function parameters&amp;quot; on the &amp;quot;Setup&amp;quot; pane.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Selecting &#039;&#039;&#039;Allow preserve control&#039;&#039;&#039; ==&lt;br /&gt;
The RM parameter &#039;&#039;&#039;Allow preserve control&#039;&#039;&#039; has to be selected; see figure&lt;br /&gt;
[[Image:rm_select_allow_preserve.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Procedure =&lt;br /&gt;
&lt;br /&gt;
* First, a &amp;quot;dumb&amp;quot; rmdu file is generated, using the &#039;&#039;&#039;ImportOnly&#039;&#039;&#039; executor, using IrScrutinizer 1.3 (or another tool),&lt;br /&gt;
* This is imported in RM. The user there selects a usable executor. If RM computes the parameters correctly, this will produce a working rmdu device update.&lt;br /&gt;
&lt;br /&gt;
== Caveat ==&lt;br /&gt;
&lt;br /&gt;
As is probably clear to the user, some prior knowledge is required of the user. If RM do the computations correctly, this should&lt;br /&gt;
result in usable rmdu file. However, this functionality is not very widely used, and bugs may show up. (In that case, please report&lt;br /&gt;
in the forum.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Example =&lt;br /&gt;
We consider the Oppo BDP 103 BluRay player, which has a [published set of IR commands](download.oppodigital.com/BDP103/BDP-103_BDP-105_Remote_Code_v1.1.xls).&lt;br /&gt;
(The [http://www.hifi-remote.com/wiki/index.php?title=IrScrutinizer_Guide#Importing_.22text.22_files IrScrutinizer Tutorial]&lt;br /&gt;
describes how such files can be imported into IrScrutinizer.) We assume that this command set has been imported in IrScrutinizer, see figure.&lt;br /&gt;
Note that every row denotes a command, has a name, a protocol, and one or more parameters. A comment may describe the command further.&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_param_table.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Typically, the protocol and all but one parameter, in general called &amp;quot;F&amp;quot;, are constant. &lt;br /&gt;
Here, the protocol is &amp;quot;NEC1&amp;quot;, D = 73, and S is &amp;quot;nonexistent&amp;quot;.&lt;br /&gt;
Having inspected this table, and made&lt;br /&gt;
any desirable changes, the table is exported,&lt;br /&gt;
&lt;br /&gt;
[[Image:irscrutinizer_param_export_rmdu.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
by selecting the &amp;quot;Export&amp;quot; pane, selecting &amp;quot;RemoteMaster&amp;quot; as the Export format, and pressing &amp;quot;Export param. remote&amp;quot;.&lt;br /&gt;
This creates a simple rmdu file.&lt;br /&gt;
&lt;br /&gt;
We assume that RM has been prepared as per above. After starting, the just-created simple rmdu file is opened (File -&amp;gt; Open).&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_opening_file.png]]&lt;br /&gt;
&lt;br /&gt;
After opening the file, RM will present an error popup:&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_popup.png]]&lt;br /&gt;
&lt;br /&gt;
This simply means that, although RM understood the protocol (executor really) named &#039;&#039;&#039;ImportOnly&#039;&#039;&#039;&lt;br /&gt;
(because _we_ put it into its &#039;&#039;&#039;protocols.ini&#039;&#039;&#039;!), it says that the currently selected remote does not support it, and the&lt;br /&gt;
user must select another one. (Just as we would expect!) We know that the desired protocol is called &amp;quot;NEC1&amp;quot;,&lt;br /&gt;
so we next have to select an executor implementing that protocol. For the purpose of this example, we select the &lt;br /&gt;
executor named &#039;&#039;&#039;NEC1&#039;&#039;&#039;, using the &amp;quot;Protocol&amp;quot; combo box. Make sure that as &amp;quot;Preserve&amp;quot; &amp;quot;OBC and function parameters&amp;quot; is selected.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_selected_executor.png]]&lt;br /&gt;
&lt;br /&gt;
Check that the protocol parameters (executor parameters really) make sense. &lt;br /&gt;
Here, the &amp;quot;D&amp;quot; in the protocol has been successfully turned into the parameter &amp;quot;Device&amp;quot; (= 73),&lt;br /&gt;
and the &amp;quot;Sub Device&amp;quot; is empty, as expected. &lt;br /&gt;
&lt;br /&gt;
Now, select the &amp;quot;Functions&amp;quot; pane, and check the sanity of its content, in particular hex- and OBC values.&lt;br /&gt;
&lt;br /&gt;
[[Image:rm_imported_functions.png]]&lt;br /&gt;
&lt;br /&gt;
The import has been successful! It now remains to tune the device update (rmdu) to your needs:&lt;br /&gt;
adjusting description, notes, device type as desired, select the target remote, assigning the functions to its buttons, saving the&lt;br /&gt;
file to a suitable name, etc.&lt;br /&gt;
This is outside of the scope of this article, and described in detail the RM documentation.&lt;br /&gt;
&lt;br /&gt;
= Support and help =&lt;br /&gt;
&lt;br /&gt;
Please post help requests in the forum.&lt;br /&gt;
&lt;br /&gt;
Suggestions for improvements, both of the procedure here described, and of the present document,&lt;br /&gt;
are solicited.&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Rm_selected_executor.png&amp;diff=2679</id>
		<title>File:Rm selected executor.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Rm_selected_executor.png&amp;diff=2679"/>
		<updated>2016-12-18T16:16:52Z</updated>

		<summary type="html">&lt;p&gt;Barf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Rm_select_allow_preserve.png&amp;diff=2677</id>
		<title>File:Rm select allow preserve.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Rm_select_allow_preserve.png&amp;diff=2677"/>
		<updated>2016-12-18T16:16:33Z</updated>

		<summary type="html">&lt;p&gt;Barf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Rm_popup.png&amp;diff=2675</id>
		<title>File:Rm popup.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Rm_popup.png&amp;diff=2675"/>
		<updated>2016-12-18T16:16:10Z</updated>

		<summary type="html">&lt;p&gt;Barf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Rm_opening_file.png&amp;diff=2673</id>
		<title>File:Rm opening file.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Rm_opening_file.png&amp;diff=2673"/>
		<updated>2016-12-18T16:15:46Z</updated>

		<summary type="html">&lt;p&gt;Barf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Rm_imported_functions.png&amp;diff=2671</id>
		<title>File:Rm imported functions.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Rm_imported_functions.png&amp;diff=2671"/>
		<updated>2016-12-18T16:15:28Z</updated>

		<summary type="html">&lt;p&gt;Barf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
	<entry>
		<id>https://hifi-remote.com/wiki/index.php?title=File:Irscrutinizer_param_table.png&amp;diff=2669</id>
		<title>File:Irscrutinizer param table.png</title>
		<link rel="alternate" type="text/html" href="https://hifi-remote.com/wiki/index.php?title=File:Irscrutinizer_param_table.png&amp;diff=2669"/>
		<updated>2016-12-18T16:14:45Z</updated>

		<summary type="html">&lt;p&gt;Barf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Barf</name></author>
	</entry>
</feed>