Pages: [1]   Go Down
Author Topic: Help me make sense of these bits  (Read 293 times)
0 Members and 1 Guest are viewing this topic.
India
Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

i am trying to decode an air conditioner IR remote. and i could use some help understand how these bits are set
i have 2 possible sets of data, depending on how the incoming data interpreted. the are bits are just inverted in each of the sets.

Code:
18c-00101000,11000110,00000000,00001000,00001000,00111111,00010000,00001100,00000100,10000000,00000000,00000000,00000000,00000000,11110101

19c-00101000,11000110,00000000,00001000,00001000,00111111,00010000,00001100,00001100,10000000,00000000,00000000,00000000,00000000,11111001

20c-00101000,11000110,00000000,00001000,00001000,00111111,00010000,00001100,00000010,10000000,00000000,00000000,00000000,00000000,11110001

21c-00101000,11000110,00000000,00001000,00001000,00111111,00010000,00001100,00001010,10000000,00000000,00000000,00000000,00000000,11111110

22c-00101000,11000110,00000000,00001000,00001000,00111111,00010000,00001100,00000110,10000000,00000000,00000000,00000000,00000000,11110110

23c-00101000,11000110,00000000,00001000,00001000,00111111,00010000,00001100,00001110,10000000,00000000,00000000,00000000,00000000,11111010

24c-00101000,11000110,00000000,00001000,00001000,00111111,00010000,00001100,00000001,10000000,00000000,00000000,00000000,00000000,11110010

25c-00101000,11000110,00000000,00001000,00001000,00111111,00010000,00001100,00001001,10000000,00000000,00000000,00000000,00000000,11111100

26c-00101000,11000110,00000000,00001000,00001000,00111111,00010000,00001100,00000101,10000000,00000000,00000000,00000000,00000000,11110100

27c-00101000,11000110,00000000,00001000,00001000,00111111,00010000,00001100,00001101,10000000,00000000,00000000,00000000,00000000,11111000

28c-00101000,11000110,00000000,00001000,00001000,00111111,00010000,00001100,00000011,10000000,00000000,00000000,00000000,00000000,11110000

29c-00101000,11000110,00000000,00001000,00001000,00111111,00010000,00001100,00001011,10000000,00000000,00000000,00000000,00000000,11111111

30c-00101000,11000110,00000000,00001000,00001000,00111111,00010000,00001100,00000111,10000000,00000000,00000000,00000000,00000000,11110111


now i noticed that only 2 bytes of data are getting changed with every increment in temperature.
the first byte of data, this is what i believe is manipulating the temperature.
Code:
00000100 at 18
00001100 at 19
00000010 at 20
00001010 at 21
00000110 at 22
00000110 at 23
00001110 at 24
00000001 at 25
00001001 at 26
00000101 at 27
00001101 at 28
00000011 at 29
00001011 at 30
00000111 at 20

the second byte of data that changes is
Code:
11110101
11111001
11110001
11111110
11110110
11111010
11110010
11111100
11110100
11111000
11110000
11111111
11110111

the first byte that changes is a representation of the temperate in some way. the range for the temperatures is 18 to 30.
the second byte that changes i believe is some kind of check sum of the entire message.
i am weak when it comes to binary operations.
could someone please help me understand how the value of temperate is being manipulated ?
and also how the final byte is related to the entire message.
Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 303
Posts: 26354
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
00000100 at 18
00001100 at 19
00000010 at 20
00001010 at 21
Does it make more sense if you reverse the bits, and possibly subtract an offset?
Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

India
Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

i didn't think of that.
ill try to see if that is a possible.
Logged

Offline Offline
Sr. Member
****
Karma: 9
Posts: 254
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

It looks as though the second byte is some sort of sequence number, if you discard the highest 4 bits (all 1111) and reverse the order of the lower 4 bits you get:
1010
1001
1000
0111
etc.
which is just decrementing. When it gets to 0000 it underflows (is that a word?) and goes back to 1111
Logged

India
Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

thank you very much awol.!
you suggestion went a very long way in helping me solve this.

it turns out that my bit interpretation was wrong.
now with the inverted bits the entire data becomes
Code:
18c-11010111,00111001,11111111,11110111,11110111,11000000,11101111,11110011,11111011,01111111,11111111,11111111,11111111,11111111,00001010

19c-11010111,00111001,11111111,11110111,11110111,11000000,11101111,11110011,11110011,01111111,11111111,11111111,11111111,11111111,00000110

20c-11010111,00111001,11111111,11110111,11110111,11000000,11101111,11110011,11111101,01111111,11111111,11111111,11111111,11111111,00001110

21c-11010111,00111001,11111111,11110111,11110111,11000000,11101111,11110011,11110101,01111111,11111111,11111111,11111111,11111111,00000001

22c-11010111,00111001,11111111,11110111,11110111,11000000,11101111,11110011,11111001,01111111,11111111,11111111,11111111,11111111,00001001

23c-11010111,00111001,11111111,11110111,11110111,11000000,11101111,11110011,11110001,01111111,11111111,11111111,11111111,11111111,00000101

24c-11010111,00111001,11111111,11110111,11110111,11000000,11101111,11110011,11111110,01111111,11111111,11111111,11111111,11111111,00001101

25c-11010111,00111001,11111111,11110111,11110111,11000000,11101111,11110011,11110110,01111111,11111111,11111111,11111111,11111111,00000011

26c-11010111,00111001,11111111,11110111,11110111,11000000,11101111,11110011,11111010,01111111,11111111,11111111,11111111,11111111,00001011

27c-11010111,00111001,11111111,11110111,11110111,11000000,11101111,11110011,11110010,01111111,11111111,11111111,11111111,11111111,00000111

28c-11010111,00111001,11111111,11110111,11110111,11000000,11101111,11110011,11111100,01111111,11111111,11111111,11111111,11111111,00001111

29c-11010111,00111001,11111111,11110111,11110111,11000000,11101111,11110011,11110100,01111111,11111111,11111111,11111111,11111111,00000000

30c-11010111,00111001,11111111,11110111,11110111,11000000,11101111,11110011,11111000,01111111,11111111,11111111,11111111,11111111,00001000
the relevant data becomes
Code:
1011
0011
1101
0101
1001
0001
1110
0110
1010
0010
1100
0100
1000

now reversing the bits gets me decimal numbers from 13 to 1.
subtracting the decimal value from 31 gives me the temperature setting required.

thanks AWOL

any clues on the last byte of data ?
how is that byte related to the rest of the data ?
« Last Edit: May 17, 2013, 05:45:24 am by fuzail » Logged

India
Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

It looks as though the second byte is some sort of sequence number, if you discard the highest 4 bits (all 1111) and reverse the order of the lower 4 bits you get:
1010
1001
1000
0111
etc.
which is just decrementing. When it gets to 0000 it underflows (is that a word?) and goes back to 1111
toby, i am pretty sure that the last byte in the whole data is related to the every other byte before it. i just don't know how.
i think it is some sort of error checking, to make sure that the entire data gets transmitted correctly.

however i will try to make some sense of it, using what you suggested.
Logged

Pages: [1]   Go Up
Jump to: