TCL AIR CONDITIONER REMOTE GYKQ-03

If you have learned signals that don't get decoded when you look at them in IR.exe, post your file to the Diagnosis Area then post your question here (including a link to the file).

Moderator: Moderators

Carl
Posts: 159
Joined: Thu Jan 15, 2009 7:30 pm
Location: Quebec city, Canada
Contact:

Post by Carl »

Hi Rob,

For some reason I cannot load the file:
I am using remote master 2.11 build 6

Image
The Robman
Site Owner
Posts: 21884
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

Carl wrote:Hi Rob,

For some reason I cannot load the file:
I am using remote master 2.11 build 6
It looks like you didn't update protocols.ini to include the new protocol. It's in the readme file in the zip, but I'll include it here also.

Code: Select all

[TCL A/C]
PID=01 FF
VariantName=JP1TCL
CmdParms=mode sw:Off|On=1,mode:-|heat|dry|cool|-|-|-|fan|feel=1, \
    temp C:16C|17C|18C|19C|20C|21C|22C|23C|24C|25C|26C|27C|28C|29C|30C|31C=0, \
    temp F:61F|63F|64F|66F|68F|70F|72F|73F|75F|77F|79F|81F|82F|84F|86F|88F=0, \
    swing:Off|On=0,fan:auto|sleep|low|med|-|high=0,time sw:Off|On=0, \
    time:0|10m|20m|30m|40m|50m|1h|1h 10m|1h 20m|1h 30m|1h 40m|1h 50m \
        |2h|2h 10m|2h 20m|2h 30m|2h 40m|2h 50m|3h|3h 10m|3h 20m|3h 30m|3h 40m|3h 50m \
        |4h|4h 10m|4h 20m|4h 30m|4h 40m|4h 50m|5h|5h 10m|5h 20m|5h 30m|5h 40m|5h 50m \
        |6h|6h 10m|6h 20m|6h 30m|6h 40m|6h 50m|7h|7h 10m|7h 20m|7h 30m|7h 40m|7h 50m \
        |8h|8h 10m|8h 20m|8h 30m|8h 40m|8h 50m|9h|9h 10m|9h 20m|9h 30m|9h 40m|9h 50m \
        |10h|10h 10m|10h 20m|10h 30m|10h 40m|10h 50m|11h|11h 10m|11h 20m|11h 30m|11h 40m|11h 50m \
        |12h|12h 10m|12h 20m|12h 30m|12h 40m|12h 50m|13h|13h 10m|13h 20m|13h 30m|13h 40m|13h 50m \
        |14h|14h 10m|14h 20m|14h 30m|14h 40m|14h 50m|15h|15h 10m|15h 20m|15h 30m|15h 40m|15h 50m \
        |16h|16h 10m|16h 20m|16h 30m|16h 40m|16h 50m|17h|17h 10m|17h 20m|17h 30m|17h 40m|17h 50m \
        |18h|18h 10m|18h 20m|18h 30m|18h 40m|18h 50m|19h|19h 10m|19h 20m|19h 30m|19h 40m|19h 50m \
        |20h|20h 10m|20h 20m|20h 30m|20h 40m|20h 50m|21h|21h 10m|21h 20m|21h 30m|21h 40m|21h 50m \
        |22h|22h 10m|22h 20m|22h 30m|22h 40m|22h 50m|23h|23h 10m|23h 20m|23h 30m|23h 40m|23h 50m|24h=0
CmdTranslator=Translator(0,1,16) Translator(1,4,0) Translator(2,4,4,comp) Translator(3,4,4,comp) \ 
    Translator(4,1,18) Translator(4,1,19) Translator(4,1,20) Translator(5,3,21) Translator(6,1,17) Translator(7,8,8)
DefaultCmd=00 00 00
CmdIndex=0
FixedData=
Notes=This is a protocol for TCL and similar air conditioners.  The mode_sw and time_sw parameters are On/Off switches for mode and time \
that have their values as separate parameters.
Code.S3C80=43 8C 03 8B 17 00 00 CD 00 B9 07 08 03 0C 00 00 00 00 00 00 00 00 08 00 01 26 CB 23 E4 03 20 E4 03 21 F0 21 56 20 0F 56 21 0F C4 04 1E 56 1F 7F 18 05 10 C1 C0 22 10 C1 C0 22 F0 22 1C 16 F6 01 4C 6C 0E 87 36 19 5C 08 1C 12 F6 01 4C 37 30 07 C6 F8 01 9A F6 01 58 E0 C3 5A ED 04 C3 1A 6A E3 1C 12 F6 01 4C AF 
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
ylaviolette
Posts: 134
Joined: Tue Feb 17, 2009 8:50 pm

Post by ylaviolette »

Better late than never I guess....

Finally had time to finish testing this after renovations, automation revamp and COVID, so here it is:

upgrade/RMDU works perfectly, both with standard/extender RMIR (URC-9910)
when you set the timer, you're normally only allowed 1 hour increments above 10 hours, and half hour increments below. This upgrade allows you to do it in 10 minute increments, is there any way for you to tell if a timing setting such as 20 minutes, or 1 hour 20 minutes is actually accepted?
Not accepted, it justs goes with the next available timer (IE: 10min = 30mins)
the Mode function has a few undocumented options available, there's one before heat at the top of the list, and there are 3 more between cool and fan. These are just represented by a dash for now, but you can still select them. I don't expect them to do anything, but I am puzzled why they are even there, so I'd be curious to see what, if anything, they do.
None of these 3 modes seem to affect operation; but my unit has very basic remote/display/features. My manual details other units and I see "Eco" "Super" "Anti-mildew" "Healthy" so that is probably it.
Finally, the Fan function has an undocumented level between med and high, so I'd be curious to know if that's a real level and if so, is it really a mid-level setting between those two?
Nope. nothing, unit beeps but no noticeable difference in speed. Again probably something available on other units.

Since I use Pronto hex for my automation, the Excel Hex extractor is quite handy.

Once again, thanks for helping out on this one Rob!
ylaviolette
Posts: 134
Joined: Tue Feb 17, 2009 8:50 pm

Post by ylaviolette »

edit: just saw your post regarding surgery.. Best wishes for a speedy recovery.

If anyone can assit meanwhile let me know, otherwise no hurry obviously.


Hi @mathdon, Better late than never I guess;

had to update some buttons/functions on my URC-9910 + home automation, so it was a great opportunity to test this out, so here are the results:

Both the TCL and Keeprite protocols generate working device upgrades from RMIR. Thank you

However, when generating Pronto Hex codes, IE: exporting to Girr (from RMIR v2.14.16) then to Pronto Hex (from IR scrutinizer v2.4.0 or just extracted straight from the Girr file), only the Keeprite works correctly? (was already an issue, see posts dated Mon Mar 21, 2022 9:01 am)

For some reason, the TCL Pronto Hex codes generated via Girr-IRScrutinizer don't work and are actually quite different than the working ones (from raw direct remote learns - see below)

IRWidget+IRscope+export to Pronto (working)
20 degrees celcius, cool (mode3), swing on, fan high
0000 006E 0072 0000 0072 003F 0013 002D 0013 002D 0013 000E 0013 000E 0013 000E 0013 002D 0013 000E 0013 000E 0013 002D 0013 002D 0013 000E 0013 002D 0013 000E 0013 000E 0013 002D 0013 002D 0013 000E 0013 002D 0013 002D 0013 000E 0013 000E 0013 002D 0013 000E 0013 000E 0013 002D 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 002D 0013 000E 0013 0011 0013 002D 0013 002D 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 002D 0013 002D 0013 000E 0013 002D 0013 000E 0013 000E 0013 000E 0013 000E 0013 002D 0013 000E 0013 002D 0013 002D 0013 002D 0013 002D 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 000E 0013 002D 0013 54CB

same with IRWidget+IRscrutinizer (raw) +export to Pronto (working)
20 degrees celcius, cool (mode3), swing on, fan high
0000 006E 0072 0000 0073 002E 0013 002E 0013 002E 0013 000F 0013 000F 0013 000F 0013 002E 0013 000F 0013 000F 0013 002E 0013 002E 0013 000F 0013 002E 0013 000F 0013 000F 0013 002E 0013 002E 0013 000F 0013 002E 0013 002E 0013 000F 0013 000F 0013 002E 0013 000F 0013 000F 0013 002E 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 002E 0013 000F 0013 000F 0013 002E 0013 002E 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 002E 0013 002E 0013 000F 0013 002E 0013 000F 0013 000F 0013 000F 0013 000F 0013 002E 0013 000F 0013 002E 0013 002E 0013 002E 0013 002E 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 000F 0013 002E 0013 4335

And one for the same device (working as a device upgrade in RMIR, then exported to Girr (not working)
0000 006D 0072 0000 0078 003C 000F 002D 000F 002D 000F 000F 000F 000F 000F 000F 000F 002D 000F 000F 000F 000F 000F 002D 000F 002D 000F 000F 000F 002D 000F 000F 000F 000F 000F 002D 000F 002D 000F 000F 000F 002D 000F 002D 000F 000F 000F 000F 000F 002D 000F 000F 000F 000F 000F 002D 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 002D 000F 000F 000F 000F 000F 002D 000F 002D 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 002D 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 002D 000F 002D 000F 002D 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 002D 000F 002D 000F 000F 000F 002D 000F 000F 000F 0776

Not a big deal as I can still use raw exports but it would be nice and less time consuming to do everything via RMIR/Girr without using the original remote.

Let me know what you think,
Thx,
The Robman
Site Owner
Posts: 21884
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

I converted the 3 Proto hex strings into binary to look for differences, and the 3rd one has different code. It appears that the temperature and fan settings are different. The 1101 in the temp column does mean 20° C, whereas 0001 means 23° C. For the fan, 101 means FAN HIGH, whereas 000 means FAN OFF.

Code: Select all

fixed1   fixed2   fixed3   fixed4   fixed5   on/off   mode      temp      fan swg tsw                                 checksum
11000100 11010011 01100100 10000000 00000000 00000100 1100 0000 1101 0000 101 111 0 000000000000000000000000000000000 00000001 
11000100 11010011 01100100 10000000 00000000 00000100 1100 0000 1101 0000 101 111 0 000000000000000000000000000000000 00000001 
11000100 11010011 01100100 10000000 00000000 00000100 1100 0000 0001 0000 000 111 0 000000000000000000000000000000000 00011010
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
The Robman
Site Owner
Posts: 21884
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

I think I've found the problem, the checksum is not correct in the Girr code. I created an upgrade with one function, with the settings to match the working codes above (ie, mode sw=off, mode=cool, temp=20c, swing=on, fan=high, time sw=off, time=0), and the generated proto hex perfectly matches except for the checksum.

Code: Select all

fixed1   fixed2   fixed3   fixed4   fixed5   on/off   mode      temp      fan swg tsw                                 checksum
11000100 11010011 01100100 10000000 00000000 00000100 1100 0000 1101 0000 101 111 0 000000000000000000000000000000000 00000001 working
11000100 11010011 01100100 10000000 00000000 00000100 1100 0000 1101 0000 101 111 0 000000000000000000000000000000000 00000110 Girr
@Barf, where is the code that generates the checksum for TCL in the Girr files? There is a spreadsheet here that demonstrates how it's calculated. The signal has 13 bytes. Each byte has to be converted to decimal (in LSB fashion) and the checksum is a sum of those 13 decimal bytes (also in LSB fashion).
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
ylaviolette
Posts: 134
Joined: Tue Feb 17, 2009 8:50 pm

Post by ylaviolette »

Thanks for the feedback,

Yes the third one has different settings, it was simply meant to show the differences between raw conversion and using the Girr converter.
Glad you pinpointed what seems to be the problem. Let me know once you have something to test, I'll be glad to try it live.thx!
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

The Robman wrote:@Barf, where is the code that generates the checksum for TCL in the Girr files?
The checksum is computed by IrpTransmogrifier, according to the IRP definition of the protocol, residing in the IrpProtocols.xml file. The version used was checked on to IrpTransmogrifier on 2020-08-26; I do not recall to have written the checksum code, so I probably copied from somewhere, possibly Graham. Anyhow, assuming that Rob's verbal description is correct, it is clearly not OK. I have written a corrected version, and also complemented the documentation. This is found in a new rmProtocols.xml. Just download, put in the RMIR project folder, overwriting the existing one, and restart RM(IR). (RMIR-> Help -> About should now say IrpProtocols version 2022-05-07+rm2023-05-13.) Let me know if it works.
The Robman
Site Owner
Posts: 21884
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

Hi Barf, I tried the new code but it's still not calculating the correct checksum.

Looking at rmProtocols.xml, I see that this is the code that generates the signal and checksum. It appears the seeding value (141) is wrong, if I change it to 85 I get the right checksum.

I don't know why that works though, as I would have calculated 53, which is what was there before. I think it's the complimented number for temp that's throwing it.

Code: Select all

        <irp:irp><![CDATA[
         {38.2k,394}<1,-1|1,-3>(8,-4,M:40,modesw:-3,timesw:1,2:4,mode:8,~temp:5,0:3,fan:3,swing:3,timesw:1,0:1,time:8,0:24,chksum:8,1,-50m)
            {M=0x000126cb23,chksum=141 + modesw:-3 + (timesw<<3) + mode + ~temp + fan + (swing<<3) + (timesw<<6) + time}
            [modesw:0..1=0,timesw:0..1=0,mode:0..8=3,temp:0..31,fan:0..5=2,swing:0..7=0,time:0..144=0]]]>
        </irp:irp>
@ylaviolette, try this code:

0000 006D 0072 0000 0078 003C 000F 002D 000F 002D 000F 000F 000F 000F 000F 000F 000F 002D 000F 000F 000F 000F 000F 002D 000F 002D 000F 000F 000F 002D 000F 000F 000F 000F 000F 002D 000F 002D 000F 000F 000F 002D 000F 002D 000F 000F 000F 000F 000F 002D 000F 000F 000F 000F 000F 002D 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 002D 000F 000F 000F 000F 000F 002D 000F 002D 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 002D 000F 002D 000F 000F 000F 002D 000F 000F 000F 000F 000F 000F 000F 000F 000F 002D 000F 000F 000F 002D 000F 002D 000F 002D 000F 002D 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 002D 000F 0776
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
ylaviolette
Posts: 134
Joined: Tue Feb 17, 2009 8:50 pm

Post by ylaviolette »

Hi @Robman,
Yes, this code works. Let me know if you want me to try something else.
thx for investigating this.
The Robman
Site Owner
Posts: 21884
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

I have modified the rmProtocols.xml file that Barf posted so that it now calculates the correct checksum, so download this file and save it in your RM folder (let it replace the existing one, or rename the existing one).
http://www.hifi-remote.com/forums/dload ... e_id=26723

Then, with this new version, you should be able to export your TCL data to Girr format and get working Pronto hex from there.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
ylaviolette
Posts: 134
Joined: Tue Feb 17, 2009 8:50 pm

Post by ylaviolette »

Once rmProtocols.xml is replaced, getting this error when trying to export to Girr:

"this executor is not supported, as there are no uei-executor entries for it in irpProtocols.xml"
Barf
Expert
Posts: 1524
Joined: Fri Oct 24, 2008 1:54 pm
Location: Munich, Germany
Contact:

Post by Barf »

@rob: When writing a new checksum expression, I just put in a constant that empirically seemed to do the job. I did not do extensive tests. If 85 is correct, fine.

If you change an rmProtocols.xml (or IrpProtocols.xml), please change the version, found as attribute "version" in the top element. Just put in anything that has not been used already; bump the number or append something for example.

@ylaviolette: "This cannot happen". There is nothing in my/Rob's that would break the export it it was working previously. I suggest that you reinstall rmir, (without new rmProtocols.xml), verify the export, add the new rmProtocols.xml, verify again. Please also upload your rmir/rmdu file.
The Robman
Site Owner
Posts: 21884
Joined: Fri Aug 01, 2003 9:37 am
Location: Chicago, IL
Contact:

Post by The Robman »

@Barf, that's basically what I did. Originally, I was trying to calculate it through my spreadsheet, but I was calculating the value needed for the fixed data and the "2" between the data columns, but the temp value confuses me. I originally defined it was 4 bits, because that's what it is, but I see that RM and IT treat it as 5 bits, so I think that's where the variance is coming from. But regardless, what I did to calculate it is, change it to 0 in rmProtocols.xml, generate a signal, see how much it was off by (which was 85), then enter that into rmProtocols.xml and re-generate. Once I verified it was correct, I ran it for the whole file of commands, and then checked all of them, and it's correct.

I'm not going to be a regular contributor to rmProtocols.xml as it's not written in a language that I understand, so I just fixed the one field that was wrong and replaced it in the file for ylaviolette to use. I expect that you'll take care of entering a better version number when you incorporate it into the proper packages.
Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
ylaviolette
Posts: 134
Joined: Tue Feb 17, 2009 8:50 pm

Post by ylaviolette »

Barf wrote: @ylaviolette: "This cannot happen". There is nothing in my/Rob's that would break the export it it was working previously. I suggest that you reinstall rmir, (without new rmProtocols.xml), verify the export, add the new rmProtocols.xml, verify again. Please also upload your rmir/rmdu file.
Ok will try reinstalling and send the rmdu file later today.
I can confirm however that Girr export is functional prior to the file change...
Will report back, thx.
Post Reply