IrScrutinizer: capturing, generating, analyzing, import, exp
Moderator: Moderators
GWTS show source:
Barf,
I had read through the other discussion and I thought that since it might require a different protocol, and I was asking more about IRScrutinizer that this would be an acceptable place to post. I hope that is OK.
Can the protocol definition be changed to accept the four bytes instead of the three? From your answer, I think I might be over-simplifying my request because I'm still learning about remotes.
Since my remote is working for the basic colors when I input pronto codes generated from IRScrutinizer, I thought there would be a way to modify the profile or input the additional byte.
The source for the alternate color codes is given below. From this message and others on that forum, I understand there to be other 3-byte codes the so-called 48 series and the 55 series (both hex) and the 4-byte series that I'm focusing on.
Thank you,
Mike
http://doityourselfchristmas.com/forums ... 5d64153c62
I had read through the other discussion and I thought that since it might require a different protocol, and I was asking more about IRScrutinizer that this would be an acceptable place to post. I hope that is OK.
Can the protocol definition be changed to accept the four bytes instead of the three? From your answer, I think I might be over-simplifying my request because I'm still learning about remotes.
Since my remote is working for the basic colors when I input pronto codes generated from IRScrutinizer, I thought there would be a way to modify the profile or input the additional byte.
The source for the alternate color codes is given below. From this message and others on that forum, I understand there to be other 3-byte codes the so-called 48 series and the 55 series (both hex) and the 4-byte series that I'm focusing on.
Thank you,
Mike
http://doityourselfchristmas.com/forums ... 5d64153c62
Re: GWTS show source:
Mike,

Since these are really serial commands which we cram into IRP-type signals (the initial 0:1 is a start bit, the ending 1:1 a stop bit, the interleaved 1:2 is a stop bit immediately followed by a start bit) , we can define a few protocols with different number of parameters, GwtS0 for 1 parameter, GwtS1 for 2 parameters and so on (not counting the CRC)
Get the pattern? Unfortunately, you still have to supply the CRCs.

A better question than "OK?" may be where you meet the most people willing and able to help you, and, possibly, being helped and/or inspired by your work.mcuffe wrote:Barf,
I had read through the other discussion and I thought that since it might require a different protocol, and I was asking more about IRScrutinizer that this would be an acceptable place to post. I hope that is OK.
Suddenly, it all made sense, and the pieces fell into place.,Can the protocol definition be changed to accept the four bytes instead of the three? From your answer, I think I might be over-simplifying my request because I'm still learning about remotes.
Since my remote is working for the basic colors when I input pronto codes generated from IRScrutinizer, I thought there would be a way to modify the profile or input the additional byte.
The source for the alternate color codes is given below. ....
http://doityourselfchristmas.com/forums ... 5d64153c62
Since these are really serial commands which we cram into IRP-type signals (the initial 0:1 is a start bit, the ending 1:1 a stop bit, the interleaved 1:2 is a stop bit immediately followed by a start bit) , we can define a few protocols with different number of parameters, GwtS0 for 1 parameter, GwtS1 for 2 parameters and so on (not counting the CRC)
Code: Select all
[protocol]
name=GwtS0
irp={38.005k,417,lsb}<1|-1>(0:1,144:8,1:2,F:8,1:2,CRC:8,1:1) [F:0..255]
[protocol]
name=GwtS1
irp={38.005k,417,lsb}<1|-1>(0:1,145:8,1:2,F:8,1:2,F1:8,1:2,CRC:8,1:1) [F:0..255,F1:0..255]
...
[protocol]
name=GwtS6
irp={38.005k,417,lsb}<1|-1>(0:1,150:8,1:2,F:8,1:2,F1:8,1:2,F2:8,1:2,F3:8,1:2,F4:8,1:2,F5:8,1:2,F6:8,1:2,F7:8,1:2:CRC:8,1:1) [F:0..255,F1:0..255,F2:0.255, F3:0..255,F4:0..255,F5:0..255,F6:0.255]
After the protocols above, I think it is fair to leave that "as an exercise for the reader".From this message and others on that forum, I understand there to be other 3-byte codes the so-called 48 series and the 55 series (both hex) and the 4-byte series that I'm focusing on.
GWTS additional protocols
Barf,
Yes, now I understand the pattern, what I needed was
a. to know that it was possible to send additional bytes.
b. the syntax of the protocol header. Thank you for such a clear description.
I will post a result when I have completed testing.
also:
The formula for the CRC for GWTS is documented as Maxim/Dallas's 1-Wire CRC-8.
with online calculator here:
http://www.datastat.com/sysadminjournal/maximcrc.cgi
and various formulas in c or java available on the web in several locations.
Again, Thank you very much.
Yes, now I understand the pattern, what I needed was
a. to know that it was possible to send additional bytes.
b. the syntax of the protocol header. Thank you for such a clear description.
I will post a result when I have completed testing.
also:
The formula for the CRC for GWTS is documented as Maxim/Dallas's 1-Wire CRC-8.
with online calculator here:
http://www.datastat.com/sysadminjournal/maximcrc.cgi
and various formulas in c or java available on the web in several locations.
Again, Thank you very much.
multi character codes for GWTS, success
The additional protocols work perfectly. Placing the additional parameters all into the "additional parameters" text box along with the CRC yields perfect results. I can see now how I could build any length of command to the ears.
For my original example of a 4 char code with orange ears, the entry to the protocol.ini is:
[protocol]
name=GwtS2
irp={38.005k,417,lsb}<1|-1>(0:1,D:8,1:2,F:8,1:2,F1:8,1:2,CRC:8,1:1)[D:0..255=145,F:0..255,F1:0..255,CRC:0..255]
[documentation]
Protocol for Disney's Glow with the Show Hat/Ears, see http://www.hifi-remote.com/forums/viewtopic.php?t=14541.
The IRP engine cannot compute the CRC, but the user has to enter it manually.
Series 0x91 color palette code:
91 0E 14 A3
Will turn the ears Orange (About 100% red, about 7% green).
where additional parameters is "F1=0x14 CRC=0xA3"
and the resulting pronto codes are:
0000 006D 000B 0000 0010 0010 0030 0010 0020 0020 0020 0030 003F 0010 0030 0010 0010 0010 0030 0010 0010 0020 0030 0010 0010 0020
Thank you.
For my original example of a 4 char code with orange ears, the entry to the protocol.ini is:
[protocol]
name=GwtS2
irp={38.005k,417,lsb}<1|-1>(0:1,D:8,1:2,F:8,1:2,F1:8,1:2,CRC:8,1:1)[D:0..255=145,F:0..255,F1:0..255,CRC:0..255]
[documentation]
Protocol for Disney's Glow with the Show Hat/Ears, see http://www.hifi-remote.com/forums/viewtopic.php?t=14541.
The IRP engine cannot compute the CRC, but the user has to enter it manually.
Series 0x91 color palette code:
91 0E 14 A3
Will turn the ears Orange (About 100% red, about 7% green).
where additional parameters is "F1=0x14 CRC=0xA3"
and the resulting pronto codes are:
0000 006D 000B 0000 0010 0010 0030 0010 0020 0020 0020 0030 003F 0010 0030 0010 0010 0010 0030 0010 0010 0020 0030 0010 0010 0020
Thank you.
Using DecodeIR 2.45 with IrScrutinizer 1.1.1
IrScrutinizer 1.1.1 comes with DecodeIR 2.44. Currently, version 2.45 was released.
IrScrutinizer 1.1.1 can be used without problems with the new version of DecodeIR. Actually, it does not bring very much advantages either; the main reason the new version was developed was that DecodeIR 2.44 computed some "hex" values incorrectly, causing problems for RemoteMaster. However, IrScrutinizer does not use DecodeIR's hex-values.
However, in 2.45 3FG decided to change the IRP definition of the protocols Blaupunkt, Kaseikyo (was Kaseikyo-???-???) and Kaseikyo56 (was Kasekeikyo56-???-???). To keep IrScrutinizer's generated codes compatible, replace the current IrpProtocols.ini file with this one.
It, as well as DecodeIR 2.45, will be included in the next release of IrScrutinizer, called 1.1.2. (Preliminary due next month.)
IrScrutinizer 1.1.1 can be used without problems with the new version of DecodeIR. Actually, it does not bring very much advantages either; the main reason the new version was developed was that DecodeIR 2.44 computed some "hex" values incorrectly, causing problems for RemoteMaster. However, IrScrutinizer does not use DecodeIR's hex-values.
However, in 2.45 3FG decided to change the IRP definition of the protocols Blaupunkt, Kaseikyo (was Kaseikyo-???-???) and Kaseikyo56 (was Kasekeikyo56-???-???). To keep IrScrutinizer's generated codes compatible, replace the current IrpProtocols.ini file with this one.
It, as well as DecodeIR 2.45, will be included in the next release of IrScrutinizer, called 1.1.2. (Preliminary due next month.)
Java Exception from IrScrutinizer
Hi,
I am trying to use IrScrutinizer along with my Arduino UNO and a TSOPXXXX IR Sensor (38Khz). I am trying to decode a remote.
I first tried with an NEC and a Sony remote and it worked well. I then tried it with the mystery remote and I got a Java exception the moment I press capture and press any key on the remote. See below:
Exception in thread "AWT-EventQueue-0" java.lang.ArithmeticException: / by zero
at com.hifiremote.exchangeir.Analyzer.identify(Analyzer.java:1131)
at com.hifiremote.exchangeir.Analyzer.setup(Analyzer.java:415)
at com.hifiremote.exchangeir.Analyzer.<init>(Analyzer.java:185)
at org.harctoolbox.IrpMaster.ExchangeIR.newAnalyzer(ExchangeIR.java:69)
at org.harctoolbox.IrpMaster.ExchangeIR.newAnalyzer(ExchangeIR.java:78)
at org.harctoolbox.irscrutinizer.GuiMain.setAnalyzeParameters(GuiMain.java:878)
at org.harctoolbox.irscrutinizer.GuiMain.processIr(GuiMain.java:936)
at org.harctoolbox.irscrutinizer.GuiMain.startButtonActionPerformed(GuiMain.java:7593)
at org.harctoolbox.irscrutinizer.GuiMain.access$9000(GuiMain.java:146)
at org.harctoolbox.irscrutinizer.GuiMain$93.actionPerformed(GuiMain.java:2719)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Any help would be deeply appreciated.
I am trying to use IrScrutinizer along with my Arduino UNO and a TSOPXXXX IR Sensor (38Khz). I am trying to decode a remote.
I first tried with an NEC and a Sony remote and it worked well. I then tried it with the mystery remote and I got a Java exception the moment I press capture and press any key on the remote. See below:
Exception in thread "AWT-EventQueue-0" java.lang.ArithmeticException: / by zero
at com.hifiremote.exchangeir.Analyzer.identify(Analyzer.java:1131)
at com.hifiremote.exchangeir.Analyzer.setup(Analyzer.java:415)
at com.hifiremote.exchangeir.Analyzer.<init>(Analyzer.java:185)
at org.harctoolbox.IrpMaster.ExchangeIR.newAnalyzer(ExchangeIR.java:69)
at org.harctoolbox.IrpMaster.ExchangeIR.newAnalyzer(ExchangeIR.java:78)
at org.harctoolbox.irscrutinizer.GuiMain.setAnalyzeParameters(GuiMain.java:878)
at org.harctoolbox.irscrutinizer.GuiMain.processIr(GuiMain.java:936)
at org.harctoolbox.irscrutinizer.GuiMain.startButtonActionPerformed(GuiMain.java:7593)
at org.harctoolbox.irscrutinizer.GuiMain.access$9000(GuiMain.java:146)
at org.harctoolbox.irscrutinizer.GuiMain$93.actionPerformed(GuiMain.java:2719)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Any help would be deeply appreciated.
Hi Barf,
The Analyser was deselected as is. I deselected the repeat finder. I still get the exact same exception.
Here is what I see if I create a crude audio jack based IR sensor coupled with Code Manager. The timing might be a bit off because of the audio jack response times etc.
http://bit.ly/1E4C1FL
This is very similar to the image at the bottom of this page:
http://www.electro-tech-online.com/thre ... ol.109582/
All evidence points to XMP, including the gap between Address and Command. Are you aware of any other remote with similar signal profiles?
The Analyser was deselected as is. I deselected the repeat finder. I still get the exact same exception.
Here is what I see if I create a crude audio jack based IR sensor coupled with Code Manager. The timing might be a bit off because of the audio jack response times etc.
http://bit.ly/1E4C1FL
This is very similar to the image at the bottom of this page:
http://www.electro-tech-online.com/thre ... ol.109582/
All evidence points to XMP, including the gap between Address and Command. Are you aware of any other remote with similar signal profiles?
Hi Barf,
You will find the various screenshots and a text file with errors from the new remote in this folder:
http://bit.ly/1LX615F
1) I got an error on NEC too.
2) The new remote worked once - not sure why or how. If you look at the screen shot, I guess there are multiple protocols. (Archer, XMP-1..etc). Which is the correct one?
3) There is also a text file with errors from the new remote only. These where when I got the java exception. I get that on every button on the new remote.
4) I run Windows 8.1 and java build 1.8.0_31-b13
5) I am not sure why the frequency always says 20000 Hz
You will find the various screenshots and a text file with errors from the new remote in this folder:
http://bit.ly/1LX615F
1) I got an error on NEC too.
2) The new remote worked once - not sure why or how. If you look at the screen shot, I guess there are multiple protocols. (Archer, XMP-1..etc). Which is the correct one?
3) There is also a text file with errors from the new remote only. These where when I got the java exception. I get that on every button on the new remote.
4) I run Windows 8.1 and java build 1.8.0_31-b13
5) I am not sure why the frequency always says 20000 Hz
Oooops! That explains it. The signal that you get from the Ardino is senseless: all the on-periods are 0! So it is not really a problem with IrScrutinizer that it barfs on such a signal. (Nevertheless, I found one buglet: it should not setup the analyzer if the analyzer is deselected -- thanx for that.)
So reading your first messge again:
I assume that you use the supplied Arduino sketch. Probem is that it is intended for non-demodulating receivers, and does not work with demodulating ones (as you have shown!). See if you can replace it with a TSMP58000, OPL-551, QSE159, or such. (There are a number of threads in this forum describing the advantages of such detectors for capturing unknown signals.)
I think it may be possible to use the receiver sketch of an earlier version of IrScrutinizer, but I am not quite sure.
So reading your first messge again:
This is a demodulating IR receiver.... along with my Arduino UNO and a TSOPXXXX IR Sensor (38Khz).
I assume that you use the supplied Arduino sketch. Probem is that it is intended for non-demodulating receivers, and does not work with demodulating ones (as you have shown!). See if you can replace it with a TSMP58000, OPL-551, QSE159, or such. (There are a number of threads in this forum describing the advantages of such detectors for capturing unknown signals.)
I think it may be possible to use the receiver sketch of an earlier version of IrScrutinizer, but I am not quite sure.
I intend to write a page on my web site, but it is not at the top of my TODO list.
So, be sure that look at the data sheet for your selected detector (just google for it). All have three prins, but not in the same order. Some are happy with 3.3 Volts, other (most?) requires good-old 5Volts. So conned "data out" to pin 8, GND to any GND on the Arduino, and Vcc on any 5Volt (3.3 Volt?) pin on the Arduino (pinouts on arduino.cc).
BTW, on the splash screen in the current version of IrScrutinizer, the thing on the right is an Arduino nano (chinese clone) equipped with a TSMP4138 (pin1: data, pin2: GND, pin3: Vcc; 3.3Volt compatible).
So, be sure that look at the data sheet for your selected detector (just google for it). All have three prins, but not in the same order. Some are happy with 3.3 Volts, other (most?) requires good-old 5Volts. So conned "data out" to pin 8, GND to any GND on the Arduino, and Vcc on any 5Volt (3.3 Volt?) pin on the Arduino (pinouts on arduino.cc).
BTW, on the splash screen in the current version of IrScrutinizer, the thing on the right is an Arduino nano (chinese clone) equipped with a TSMP4138 (pin1: data, pin2: GND, pin3: Vcc; 3.3Volt compatible).
Great news!
There is a new release, version 1.1.2. Download links in this forum are the same. Release notes are in the first message in the thread.
There are a number of small improvements and bug fixes.New is the MacOS X version as "app". However, the main difference is really the reorganization of the project sources; they are now kept in this Github repository, now as a Maven based project. Big thanx to Alec Leamas for his help.
Finally, I have written a wiki page on IrScrutinizer. This is written more to be an informal introduction, not too "scientific", with no attempts for completeness or such.
There are a number of small improvements and bug fixes.New is the MacOS X version as "app". However, the main difference is really the reorganization of the project sources; they are now kept in this Github repository, now as a Maven based project. Big thanx to Alec Leamas for his help.
Finally, I have written a wiki page on IrScrutinizer. This is written more to be an informal introduction, not too "scientific", with no attempts for completeness or such.