flipperzero-firmware README

The project's README from github.com/flipperdevices/flipperzero-firmware. As one markdown file: README.md.

A pixel art of a Dophin with text: Flipper Zero Official Repo

Flipper Zero Firmware

Contributing

Our main goal is to build a healthy and sustainable community around Flipper, so we're open to any new ideas and contributions. We also have some rules and taboos here, so please read this page and our Code of Conduct carefully.

I need help

The best place to search for answers is our User Documentation. If you can't find the answer there, check our Discord Server. If you want to contribute to the firmware development or modify it for your own needs, you can also check our Developer Documentation.

I want to report an issue

If you've found an issue and want to report it, please check our Issues page. Make sure the description contains information about the firmware version you're using, your platform, and a clear explanation of the steps to reproduce the issue.

I want to propose a new feature

If you have a feature request or want to vote on an existing one, please use Discussions and follow our Discussion Guidelines.

I want to contribute code

Before opening a PR, please confirm that your changes must be contained in the firmware. Many ideas can easily be implemented as external applications and published in the Flipper Application Catalog. If you are unsure, reach out to us on the Discord Server or the Issues page, and we'll help you find the right place for your code.

Also, please read our Contribution Guide and our Coding Style, and make sure your code is compatible with our Project License.

Finally, open a Pull Request and make sure that CI/CD statuses are all green.

Development

Flipper Zero Firmware is written in C, with some bits and pieces written in C++ and armv7m assembly languages. An intermediate level of C knowledge is recommended for comfortable programming. C, C++, and armv7m assembly languages are supported for Flipper applications.

Requirements

Supported development platforms:

Supported in-circuit debuggers (optional but highly recommended):

Flipper Build System will take care of all the other dependencies.

Cloning source code

Make sure you have enough space and clone the source code:

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

Building

Build firmware using Flipper Build Tool:

./fbt

Flashing firmware using an in-circuit debugger

Connect your in-circuit debugger to your Flipper and flash firmware using Flipper Build Tool:

./fbt flash

Flashing firmware using USB

Make sure your Flipper is on, and your firmware is functioning. Connect your Flipper with a USB cable and flash firmware using Flipper Build Tool:

./fbt flash_usb

Documentation

Project structure

Also, see ReadMe.md files inside those directories for further details.

Links

SAST Tools

flipperzero-firmware (flipperdevices/flipperzero-firmware)

Searching Database…

What is this?The official open-source firmware that runs on the Flipper Zero — a pocket-sized multi-tool device (the dolphin) that talks to radios, cards and readers around you.
Does this run on my computer, or on the device itself?On the device: this repo is the source code of the firmware that lives on the Flipper Zero itself. Your computer is only used to build the code and flash it onto the dolphin.
How do I get the firmware onto my Flipper?Clone this repo and build it with the Flipper Build Tool, then flash it either over USB while the Flipper is on, or with an in-circuit debugger.
What do I need installed before I can build it?Windows 10+, macOS 12+ or Ubuntu 20.04+ with Git and basic build tools; the Flipper Build System takes care of all other dependencies. An in-circuit debugger (ST-Link, J-Link, CMSIS-DAP probe or the Wi-Fi Dev Board) is optional but highly recommended.
Do I need to be an experienced C developer to work with it?An intermediate level of C is recommended for comfortable programming; Flipper applications themselves can be written in C, C++ or armv7m assembly.
Can I modify the firmware and flash my own builds?Yes — the code is GPL-3.0, so custom builds are fine as long as they keep the same license. Changes meant for the mainline must be compatible with the project license and pass CI.
What can the Flipper actually do with this firmware?It drives the device's radios and readers: Sub-GHz radio, RFID, NFC, infrared, one-wire iButton and Bluetooth LE, per the repo's topics. There is also a universal infrared remote database you can contribute your own remotes to.
Can I add my own apps without forking the whole firmware?Yes. There is an applications_user folder for your own apps and services, and the maintainers note that many ideas are better implemented as external applications published in the Flipper Application Catalog rather than merged into the firmware.
What is Furi?Furi Core is the OS-level layer of the firmware — the primitives and helpers everything else builds on. In the source tree it sits in its own furi directory, next to lib for shared libraries and targets for platform-specific code.
What happens if a bad flash bricks my Flipper?The developer documentation covers hardware combos and un-bricking for recovering the device from the nastiest states — one reason an in-circuit debugger is recommended for low-level work.
Size
78.4 MB
Stars
16.7K
Age
6y
Commits · 90 Days