Samsung AC Remote (Flipper Zero FAP)

June 5, 2026 · View on GitHub

Infrared remote for Samsung air conditioners. Every button press sends the full Samsung A/C state frame: power, mode, temperature, fan and swing.

The protocol (timings, byte-field layout, the dual-section checksum) comes from the reverse engineering in IRremoteESP8266 ir_Samsung.cpp, originally worked out in issue #1538.

Controls

  • Power: on / off
  • Mode: cool, heat, dry, fan, auto
  • Temp +/-: 16 to 30 °C (locked in fan mode)
  • Fan: auto, low, med, high
  • Swing: vertical swing on / off

Samsung A/C is stateful. There are no one-shot command codes, so the whole current state gets retransmitted on every press.

Protocol notes

  • Carrier 38 kHz, 50% duty
  • Header 690 / 17844 µs, then two 7-byte sections
  • Per section: 3086 / 8864 µs lead, 56 bits LSB-first (bit mark 586, one 1432, zero 436), footer mark 586 plus a 2886 µs gap
  • Each section carries its own checksum: count the set bits over the section (excluding the checksum nibbles) and negate it. Verified against IRremoteESP8266's validChecksum test vectors.

Build

The flake gives you the pinned fbt toolchain (reused from wlipurk-appkit) plus a just harness that symlinks this app into a firmware tree and builds the fap:

nix develop                 # toolchain, just, python(pyserial), usb tools
just build                  # f6/az0v fork (default): TARGET_HW=6 FIRMWARE_ORIGIN=az0v
just target=7 origin= build # stock f7: TARGET_HW=7
just install                # build and deploy over USB to /ext/apps/Infrared/

Each step on its own: just link, just build, just deploy, just clean. Override the firmware path or device port inline, e.g. just fw=/path/to/fw port=/dev/cu.usbmodemX build.

The toolchain doesn't care about the target. The same gcc/python bundle builds f6 or f7, only TARGET_HW changes. The fap lands at <fw>/build/f<target>-firmware-D/.extapps/samsung_ac_remote.fap, copy it to apps/Infrared/ on the SD card.

Without the flake: symlink the app into a firmware tree's applications_user/ and run ./fbt fap_samsung_ac_remote.

UI and panel code are adapted from flipperzero-midea-ac-remote (GPL), see LICENSE.