Building a Fujitsu AC Remote for Flipper Zero

Dmitriy,flipper-zeroinfraredhvaccembedded

A while back I picked up a Flipper Zero (opens in a new tab), and one of its coolest features is its built-in infrared transceiver. I've been using it to learn and replay signals from various remotes around the house, but I wanted to take things a step further and write a proper application that could act as a full-featured remote control for my Fujitsu ASU9RLF mini-split — the kind of thing you can actually use day-to-day instead of hunting down the OEM remote.

Standing on the Shoulders of Giants

Rather than starting from scratch, I found a great open-source project by achistyakov (opens in a new tab) that implements a Mitsubishi AC remote for the Flipper Zero. The structure was solid — scenes, views, a dedicated HVAC library — and the overall architecture was exactly what I had in mind. I forked it and used it as the foundation for a Fujitsu-compatible version.

The Fujitsu protocol is quite different from Mitsubishi's, so while the application skeleton carried over well, essentially the entire IR communication layer needed to be rewritten. I used my AR-RAH1U remote (which uses the AR-REB1E protocol) as my source of truth, capturing signals with the Flipper and cross-referencing them against the Fujitsu protocol documentation I was able to track down.

What the App Does

The finished app covers the full set of controls you'd expect from the real remote:

One thing worth calling out is the Fahrenheit temperature display. I live in the US, so I wanted the UI to show °F even though the protocol speaks Celsius. This required building a mapping from each Fahrenheit step (60, 62, 64, ... 88) to its correct Celsius equivalent, computing the checksum for each, and embedding those as precomputed values in the library. It's a small thing but it makes daily use a lot more comfortable.

Project Structure

The codebase follows the same general layout as the upstream project, adapted for Fujitsu:

Building and Installing

There are two ways to build and deploy the app depending on your Flipper's firmware situation.

Standalone with ufbt (standard firmware)

# Build
ufbt build
 
# Deploy and launch on a connected Flipper Zero
ufbt launch

If you're running custom firmware and hit an ApiTooNew or ApiTooOld error, you need to point ufbt at the SDK that matches your firmware exactly:

# In your firmware repo, build and package the SDK
./fbt fw_dist
 
# Point ufbt at the local SDK zip
ufbt update --hw-target f7 --local /path/to/flipperzero-firmware/dist/f7-D/flipper-z-f7-sdk-local.zip
 
# Clean and relaunch
ufbt -c
ufbt launch

This comes up pretty frequently when running third-party firmware builds, so it's worth knowing about.

Inside the Firmware Tree with fbt (custom firmware)

# Copy the project into the firmware's applications_user directory
cp -R flipperzero-fujitsu-ac-remote /path/to/flipperzero-firmware/applications_user/fujitsu_ac_remote
 
# Build and launch from the firmware repo root
./fbt launch APPSRC=fujitsu_ac_remote

Adding It to Favorites

Once it's deployed, the .fap file lives at /ext/apps/Infrared/fujitsu_ac_remote.fap on the SD card. To pin it to your Favorites tab, you can either:

  1. Via the GUI: Open the Archive → Apps → Infrared, highlight the app, long-press OK, and select Pin.
  2. Manually: Edit /ext/favorites.txt on the SD card and append:
    /ext/apps/Infrared/fujitsu_ac_remote.fap

Wrapping Up

This was a fun project that combined a bit of reverse-engineering, embedded C, and some pixel art. If you have a Fujitsu mini-split and a Flipper Zero sitting around, give it a try. The source is up on GitHub at nijine/flipperzero-fujitsu-ac-remote (opens in a new tab).