• Stars
    star
    1,147
  • Rank 40,664 (Top 0.9 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created over 3 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

qFlipper β€” desktop application for updating Flipper Zero firmware via PC

qFlipper

Graphical desktop application for updating Flipper Zero firmware via PC

qFlipper is completely open source and based on Qt framework. Runs on Windows, macOS, Linux.

qFlipper

Download

Download official qFlipper builds here: update.flipperzero.one

download qFlipper Button

Features

  • Update Flipper's firmware and supplemental data with a press of one button
  • Repair a broken firmware installation
  • Stream Flipper's display and control it remotely
  • Install firmware from a .dfu file
  • Backup and restore settings, progress and pairing data
  • Automatic self-update feature
  • Command line interface

Build from sources

Cloning

Make sure to clone the project together with submodules:

git clone https://github.com/flipperdevices/qFlipper.git --recursive

Windows

Build requirements:

  • MS Visual Studio 2019 or newer
  • Qt5 (MSVC build) >= 5.15.0 or Qt6 >= 6.3.0
  • NSIS (to generate the installer)

Edit build_windows.bat to adjust to your build environment and then run:

build_windows.bat

Note: STM32 Bootloader driver is not provided in this repository.

Linux

Docker build (AppImage, official)

Setup dev container by running:

docker compose up -d

Compile qFlipper by running:

docker compose exec dev ./build_linux.sh

Standalone build

Build requirements:

  • Qt5 >= 5.15.0 or Qt6 >= 6.3.0
  • libusb >= 1.0.16
  • zlib >= 1.2.0

Make sure to install the following Qt modules (the exact package names might differ slightly depending on your Linux distribution):

base, tools, serialport, declarative,  wayland, [quickcontrols2, graphicaleffects] (Qt5 only), qt5-compat (Qt6 only)

Then run:

mkdir build && cd build
qmake ../qFlipper.pro PREFIX=/path/to/install/dir -spec linux-g++ CONFIG+=qtquickcompiler && 
make qmake_all && make && make install

Caution: make installing to the system prefix is not recommended. Instead, use this method for building distro-specific packages. In this case, it is possible to disable the built-in application update feature by passing DEFINES+=DISABLE_APPLICATION_UPDATES to the qmake call.

MacOS

Build requirements:

If you want to sign binaries, set SIGNING_KEY environment variable:

export SIGNING_KEY="Your Developer Key ID"

Building, signing and creating package:

./build_mac.sh

Resulting image can be found in: build_mac/qFlipper.dmg

Run

Linux

./build/qFlipper-x86_64.AppImage

or just launch the file above from your favourite file manager. You will likely need to set up udev rules in order to use qFlipper as a normal user:

./qFlipper-x86_64.AppImage rules install [/optional/path/to/rules/dir]

Package managers support

See contrib for available options.

Project structure

  • application - The main graphical application, written mostly in QML.
  • cli - The command line interface, provides nearly all main application's functionality.
  • backend - The backend library, written in C++. Takes care of most of the logic.
  • dfu - Low level library for accessing USB and DFU devices.
  • plugins - Protobuf-based communication protocol support.
  • 3rdparty - Third-party libraries.
  • contrib - Contributed packages and scripts.
  • driver-tool - DFU driver installation tool for Windows (based on libwdi).
  • docker - Docker configuration files.
  • installer-assets - Supplementary data for deployment.

Reporting bugs

qFlipper is a project under active development. Please report any encountered bugs to make it better!

The (mostly) complete guide is located here.

Known bugs

  • Sometimes Flipper's serial port doesn't get recognised by the OS, which leads to firmware update errors. This is a firmware issue.
  • On some systems, there is noticeable flicker during opening, closing or resizing of the log area.
  • Release source archives are automatically generated by Github and are unsuitable for building as they do not contain submodules.

More Repositories

1

flipperzero-firmware

Flipper Zero firmware source code
C
12,714
star
2

Flipper-Android-App

Android Mobile app to rule all Flipper's family
Kotlin
1,519
star
3

Flipper-iOS-App

iOS Mobile App to rule all Flipper's family
Swift
723
star
4

flipper-application-catalog

Flipper Application Catalog
Python
579
star
5

flipperzero-ufbt

Compact tool for building and debugging applications for Flipper Zero.
Python
562
star
6

flipperzero-3d-models

Flipper Zero 3D models
510
star
7

blackmagic-esp32-s2

C
493
star
8

flipperzero-good-faps

Flipper Zero Official Apps maintained by Flipper Team and Friends
C
297
star
9

docs

Flipper Zero documentation repo
Python
182
star
10

flipperzero-sd-card-examples

Examples of all types of files stored on Flipper Zero SD card
166
star
11

lab.flipper.net

JavaScript
146
star
12

flipperzero-devboard-stlinkv3

Devboard for Flipper Zero based on ST-Link V3
108
star
13

flipperzero-nfc-tools

Repository contains nfc tools for Flipper companions
C
106
star
14

flipperzero-toolchain

Flipper Zero Embedded Toolchain
Shell
101
star
15

flipperzero-ufbt-action

Official ufbt Action wrapper for building Flipper Zero applications
95
star
16

flipperzero-game-engine

C
89
star
17

flipperzero-protobuf

This repository contains Flipper Zero RPC protocol protobuf description
77
star
18

flipperzero-catalog-sample-app

C
60
star
19

flipperzero_protobuf_py

Python
58
star
20

video-game-module

C
58
star
21

go-flipper

Go
56
star
22

flipperzero-remote-testbench-front

Remote testbench for Flipper zero - Frontend
JavaScript
43
star
23

flipperzero-nfc-rpc

Examples for control NFC over RPC
Python
41
star
24

webdfu

Driver for working with DFU in a browser over WebUSB
TypeScript
36
star
25

flipper-hackathon-moscow

Flipper Hackathon Moscow 2021
36
star
26

flipper-menu-generator

Generates menu tree image from markdown code
JavaScript
36
star
27

update.flipperzero.one

JavaScript
28
star
28

flipperzero-documentation

CSS
28
star
29

Casper-flipper-blog-theme

Handlebars
26
star
30

flipperzero-game-engine-example

Flipper Zero game engine example project
C
25
star
31

flipper-questions-and-answers

Flipper Question and Answer sessions archive
22
star
32

stm32wb_copro_scripts

Python
22
star
33

homebrew-flipper

Ruby
21
star
34

webflipper

Web client
JavaScript
20
star
35

flipper-update-indexer

Flipper update file uploader and indexer
Python
20
star
36

flipper-documentation-indexer

Python
17
star
37

map-gcc-parser-python

Python
14
star
38

.github

14
star
39

flipper-update-server

Go
13
star
40

flpr.app

HTML
11
star
41

stm32wb_copro

C++
11
star
42

flipper-tilda-webserver

Tilda exporter and webserver
Python
11
star
43

flipperzero-protobuf-jvm

9
star
44

floopper-bloopper

C
9
star
45

welcomer-bot

Python
9
star
46

IRDB

Flipper IR database with device catalogs
9
star
47

flipper-map-reporter

Map file analyser CI/CD
Shell
9
star
48

flipper-k8s-db-backuper

Make backups of databases in k8s
Python
9
star
49

docker-rsync-server

Shell
8
star
50

flipper-factory-reset

Fully reset flipper and set it to the shipping state
Python
8
star
51

sub-sync

Sync Ghost and Sendinblue subscribers
Go
8
star
52

discord-backers-bot

Go
7
star
53

inotify-safe-mv

Dockerfile
7
star
54

flipperzero-protobuf-metric

Protobuf for flipper metrics
7
star
55

discord-notifier

Go
6
star
56

thumbnail-autogen

Dockerfile
5
star
57

chmocker

Chroot-based Docker-like pseudo-containers for MacOS
Python
5
star
58

firmware-report-server

Flipper Zero FW build report analyzer backend
Python
5
star
59

QA-flipper-units

Simple script to run the unit tests inside flipper and validate the result
Python
5
star
60

go-metric

Server for metric from application
Go
4
star
61

firmware-report-client

Svelte
3
star
62

flipper-url-shortener

Python
3
star
63

ship-flipp

Go
2
star
64

flipper-catalog-apps-downloader

Python
1
star
65

IRDB-Backend

Backend for IRDB database
Kotlin
1
star
66

flipper-github-runner-docker-qa

Self-hosted github actions runners for QA
Python
1
star
67

flipper-local-ssl

Flipper LAN SSL Deployer
Python
1
star