Skip to content

Instantly share code, notes, and snippets.

@bogd
Created May 26, 2021 06:46
Show Gist options
  • Save bogd/66eadcb6068a416dd5db81c214b69415 to your computer and use it in GitHub Desktop.
Save bogd/66eadcb6068a416dd5db81c214b69415 to your computer and use it in GitHub Desktop.
Samsung AC decoding attempt
ZEROBIT_ON = 550
ZEROBIT_OFF = 450
ONEBIT_ON = 550
ONEBIT_OFF = 1450
BREAK_ON = 3100
BREAK_OFF = 8900
Break sequence: 550 3100 3100 8900
BREAK
00000010
10110010
^^^^ Checksum - number of all 0 bits in this set (except this byte), modulo 15. If modulo equals 0, then set checksum to 15
00001111
00000000
00000000
00000000
11000000
^^^^ 1111=on, 1100=off
# 0x0292 0F00 0000 F0 - fixed for on
BREAK
BREAK
00000001
11010010
^^^^ Checksum - number of all 0 bits in this set (except this byte), modulo 15. If modulo equals 0, then set checksum to 15
00001111
^^^^ Off timer (0000=off, 0011=0.5h, 1000=1h, 1011=1.5h, 0000=2h, 0011=2.5h, 1000=3h)
LSB (bit 0) for hours
00000000
^^^ Off timer, MSB (continued with above) . E.g. 0001 here and 1011 above means 3.5h
Bits 1,2,3 for hours - off timer
^^^^ Bit 0 for hours, bits 011 for 1/2h - on timer. E.g. 1011 here means 1.5h on timer
00000000
^^^ Bits 1,2,3 for hours - on timer
00000000
^ Bit 4 for off timer hours .
^ Bit 5 for off timer hours
^ Bit 4 for on timer hours
^ Bit 5 for on timer hours
00000000
# 0x 01D2 0F00 0000 00 - fixed for on
BREAK
BREAK
00000001
11010010
^^^^ Checksum - number of all 0 bits in all sets (except this byte and byte #2 - checksum for first byte), modulo 15. If modulo equals 0, then set checksum to 15
11111110
01110001
11100000
^^^^ Temperature (0000 = 16deg, 1110 = 14+16 = 30deg)
00001101
^^^^ Mode (0000=auto, 0001=cool, 0010=dry, 0011=fan, 0100=heat)
^^^1 Fan (000=auto, 010=fan1, 100=fan2, 101=fan3, 111=fan4)
11000000
15h off
00000001 = 01
10000010 = 82
10001111 = 8F
00000111 = 07
00000000 = 00
00000100 = 04
00000000 = 00
16h off
00000001 = 01
10110010 = B2
00001111 = 0F
00001000 = 08
00000000 = 00
00000100 = 04
00000000 = 00
24h off
00000001 = 01
10110010 = B2
00001111 = 0F
00000000 = 00
00000000 = 00
00010100 = 14
00000000 = 00
1.5h on
BREAK
00000001 = 01
10010010 = 92
00001111 = 0F
10110000 = B0
00000000 = 00
00000010 = 02
00000000 = 00
3h on
00000001 = 01
10100010 = A2
00001111 = 0F
10000000 = 80
00000001 = 01
00000010 = 02
00000000 = 00
15h on
00000001 = 01
10000010 = 82
00001111 = 0F
10000000 = 80
00000111 = 07
00000010 = 02
00000000 = 00
16h on
00000001 = 01
10110010 = B2
00001111 = 0F
00000000 = 00
00001000 = 08
00000010 = 02
00000000 = 00
24h on
00000001 = 01
10110010 = B2
00001111 = 0F
00000000 = 00
00000000 = 00
00010010 = 12
00000000 = 00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment