Open-source project
flipperdevices/flipperzero-firmware avatar
flipperdevices/flipperzero-firmware

Flipper Zero Official Firmware: What the flipperdevices Repository Actually Ships

Flipper Zero firmware source code

16,647 stars3,478 forksCGPL-3.0

At a glance

What is it?
The stock firmware source for the Flipper Zero is a C codebase built with Flipper Build Tool, licensed GPL-3.0. Here is what it contains, how to build and flash it, and where it stops being the right choice.
Who is it for?
Adopt this repository if you want the stock, signed firmware path, or if you are writing an application that has to run on unmodified devices and pass the official application catalog. Do not adopt it if your goal is a custom firmware image with features the upstream project has not merged; the README's own contribution guidance points such work at external applications first, and the community forks exist precisely because that boundary is enforced.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 25 days ago.
What is it written in?
Mainly C, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What the official Flipper Zero firmware repository is for

This is the source of the firmware that ships on Flipper Zero units, not a community fork. The README describes it as the official repo and points users at flipper.net for releases and upgrade tools, and at docs.flipper.net for usage documentation. The distinction matters because most search traffic around this device is about alternative images, and the upstream repository is the baseline those alternatives diverge from.

The audience is narrow and specific. You are a C developer who wants to modify device behaviour at the firmware level, or an application author who needs to know exactly which APIs and build rules the stock image exposes. The README recommends an intermediate level of C knowledge for comfortable programming and states that C, C++, and armv7m assembly are supported for Flipper applications. If you only want to update a retail device, this repository is the wrong entry point; the README sends you to the downloads page instead.

Furi, targets and the split between firmware and applications

The repository layout tells you how the system is layered. furi holds Furi Core, described in the README as OS-level primitives and helpers. targets holds platform specific code for firmware targets. lib collects first and third party libraries and drivers. applications holds the applications and services compiled into the firmware, while applications_user is explicitly the place for your additional applications and services.

That last directory is the important one for anyone deciding whether to fork. The build system treats user applications as an overlay rather than a patch, so you can add code without touching the upstream tree. The README reinforces this in its contribution section: before opening a pull request, confirm the change must live in the firmware, because many ideas can be implemented as external applications and published in the Flipper Application Catalog. The practical consequence is that the upstream project deliberately keeps its surface small and pushes feature work outward. If your idea is a new radio protocol or a new menu, expect to be redirected to an application rather than merged into applications.

The build system is SCons-based. SConstruct, firmware.scons and the site_scons directory hold the configuration, and fbt is the wrapper you actually invoke. The README states that Flipper Build System takes care of all other dependencies, which is why the requirements list is short: a supported host OS and Git.

Building and flashing the stock firmware with fbt

The README gives a short, complete sequence. Clone with submodules, because the tree depends on them, then build with the Flipper Build Tool wrapper.

shell
git clone --recursive https://github.com/flipperdevices/flipperzero-firmware.git

A plain ./fbt with no arguments builds the firmware. The README shows exactly this as the build step, and the first run is where the toolchain bootstraps itself, so expect the initial invocation to take considerably longer than later ones.

shell
./fbt

Flashing depends on your hardware. With an in-circuit debugger connected, the README gives ./fbt flash. Supported debuggers are listed as the Flipper Zero Wi-Fi Development Board, CMSIS-DAP compatible devices such as the Raspberry Pi Debug Probe, ST-Link v2, v3 and v3mods, and J-Link. Debuggers are optional but the README calls them highly recommended.

shell
./fbt flash

Without a debugger, USB flashing requires the device to be powered on and running functioning firmware. That precondition is stated in the README and it is not decorative: if the device is already bricked, this path is unavailable and you fall back to the recovery documentation.

shell
./fbt flash_usb

For deeper work, the README links a dedicated Flipper Build Tool document at documentation/fbt.md covering building, flashing and debugging, plus separate pages for application manifests and SD card deployment.

Where the official firmware is the wrong tool

The most common mismatch is expecting upstream to be a superset of the community images. It is not, and the contribution rules make that structural rather than temporary. Work that the maintainers consider out of scope for the stock image is directed to external applications or to forks. If a feature only exists in a third party image, this repository will not grow it on your schedule.

A second limit is toolchain and platform. The README lists Windows 10+ with PowerShell and Git, macOS 12+ with Command Line tools, and Ubuntu 20.04+ with build-essential and Git. Other distributions are not listed. Nothing in the README promises that an arbitrary Linux host will work, and the build system's dependency bootstrap is not documented as configurable for unsupported hosts.

Recovery is the third area to think about before you start. The README links documentation on hardware combos and un-bricking, which implies recovery is possible, but it does not describe the procedure inline. If you are flashing a device you depend on, read that page before the first flash rather than after. The README does not document rollback to a previous firmware version.

Official firmware compared with Unleashed, Momentum and Xtreme

The alternative images that dominate search results for this device are forks of this codebase, and the difference in approach is governance rather than architecture. The official repository is maintained by the device vendor and its contribution guide, code of conduct and coding style are enforced through pull requests with CI status checks. Forks trade that review process for a faster path to features the upstream project declines to merge.

That trade has a concrete cost. A fork's firmware is not the image the vendor signs and distributes through flipper.net, and the README's application catalog is the upstream distribution channel. If you publish an application, targeting the official firmware is what makes it installable by the widest set of users on stock devices. If you need behaviour that upstream will not accept, a fork is the honest answer, and you accept that you now track someone else's release cadence instead of the vendor's.

There is no comparison table in the README, and this repository does not document the forks at all. Any claim about which fork is better would have to come from those projects, not from here.

Licence, releases and the cost of tracking upstream

The project is GPL-3.0. The README points contributors at the LICENSE file and asks that code be compatible with it. The practical implication for anyone modifying and redistributing firmware is that derivative images carry the same licence obligations; the README states the requirement to check compatibility but does not interpret it, and this is not legal advice.

Release cadence is visible in the tags. 1.4.2 and 1.4.3 landed in late 2025, and 1.5.0-rc appeared on 2026-09-11. The last push to the default dev branch was on 2026-09-04, so the repository is active and the release candidate is the newest published artifact. Note the rc suffix: a release candidate is not a stable release, and the README does not describe a support policy for rc builds.

The upgrade cost is mostly in the toolchain and the submodules. Because the build system fetches its own dependencies, a clean clone on a new machine re-bootstraps everything, and a long-lived clone needs its submodules kept in sync with the branch. If you maintain a fork or a downstream application, budget for rebasing onto dev rather than assuming the stable tags are where development happens.

Editorial conclusion

Adopt this repository if you want the stock, signed firmware path, or if you are writing an application that has to run on unmodified devices and pass the official application catalog. Do not adopt it if your goal is a custom firmware image with features the upstream project has not merged; the README's own contribution guidance points such work at external applications first, and the community forks exist precisely because that boundary is enforced. Before you commit to a build, verify two things in the repository itself: that your host platform matches the supported list (Windows 10+, macOS 12+, or Ubuntu 20.04+), and that you have a recovery path, since the README documents un-bricking only through the KeyCombo documentation. Then run ./fbt and confirm the toolchain bootstraps before you connect a debugger.

Frequently asked questions

What is the latest firmware for the Flipper Zero?

The most recent release listed in the repository is 1.5.0-rc, dated 2026-09-11, which is a release candidate rather than a stable build. The last stable releases shown are 1.4.3 from 2025-12-05 and 1.4.2 from 2025-11-29. The README directs users to flipper.net/pages/downloads for the latest firmware releases and upgrade tools.

How to install firmware on Flipper Zero from this repository?

Clone the repository with git clone --recursive, build with ./fbt, then flash with ./fbt flash if you have an in-circuit debugger or ./fbt flash_usb over USB. The README notes that USB flashing requires the Flipper to be on and its firmware to be functioning.

What is flipper zero firmware?

In this repository it is the C source code for the software running on the Flipper Zero, with some parts in C++ and armv7m assembly. It is organised into Furi Core, platform targets, libraries, and the applications compiled into the image.

What is the best firmware for Flipper Zero?

This repository does not compare itself with other firmware images, so it provides no basis for that ranking. It is the vendor's official firmware, and the community forks that appear in search results are separate projects with their own governance and release cadence.

Official sources

  1. flipperdevices/flipperzero-firmware on GitHub
  2. License: GPL-3.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/flipperdevices-flipperzero-firmware.svg)](https://hysenlabs.com/projects/flipperdevices-flipperzero-firmware)