All Projects → flipperdevices → flipperzero-firmware

flipperdevices / flipperzero-firmware

Licence: GPL-3.0 license
Flipper Zero firmware source code

Programming Languages

c
50402 projects - #5 most used programming language
HTML
75241 projects
C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
PHP
23972 projects - #3 most used programming language
assembly
5116 projects

Projects that are alternatives of or similar to flipperzero-firmware

IOsonata
IOsonata multi-platform multi-architecture power & performance optimized software library for fast and easy IoT MCU firmware development. Object Oriented design, no board package to define, just pure plug & play any boards
Stars: ✭ 40 (-98.43%)
Mutual labels:  firmware, stm32, ble
Chameleonmini Rebooted
Chameleon Mini revE rebooted - Iceman Fork, the ChameleonMini is a versatile contactless smartcard emulator (NFC/RFID)
Stars: ✭ 208 (-91.85%)
Mutual labels:  firmware, nfc
Platform Ststm32
ST STM32: development platform for PlatformIO
Stars: ✭ 201 (-92.12%)
Mutual labels:  firmware, stm32
ChameleonMini
The ChameleonMini is a versatile contactless smartcard emulator compliant to NFC. The ChameleonMini was first developed by KAOS. This is NOT the official repo for KAOS's ChameleonMini. For further information see the Getting Started Page
Stars: ✭ 350 (-86.28%)
Mutual labels:  rfid, nfc
Nf Interpreter
⚙️ nanoFramework Interpreter, CLR, HAL, PAL and reference target boards
Stars: ✭ 168 (-93.41%)
Mutual labels:  firmware, stm32
Mongoose Os
Mongoose OS - an IoT Firmware Development Framework. Supported microcontrollers: ESP32, ESP8266, CC3220, CC3200, STM32F4, STM32L4, STM32F7. Amazon AWS IoT, Microsoft Azure, Google IoT Core integrated. Code in C or JavaScript.
Stars: ✭ 2,234 (-12.43%)
Mutual labels:  firmware, stm32
FASTUSBasp
This is the fast avr programmer for AVR MCUs based on cheap stm32f103c8t6 board with usb-to-serial support.
Stars: ✭ 78 (-96.94%)
Mutual labels:  firmware, stm32
Nanovna
Very Tiny Palmtop Vector Network Analyzer
Stars: ✭ 539 (-78.87%)
Mutual labels:  firmware, stm32
TonUINO
Alternative TonUINO Firmware
Stars: ✭ 112 (-95.61%)
Mutual labels:  rfid, nfc
Tasmota-specials
Tasmota unofficial firmware builds. Install via Tasmota WebInstaller
Stars: ✭ 54 (-97.88%)
Mutual labels:  firmware, ble
arduino-primo-tutorials
Here some tutorials to explain and show how to make use of the new features of the Arduino Primo and Arduino Primo Core, such as Wifi, BLE, NFC, InfraRed and various sensors. Hope you can find this helpful to create amazing stuff, save the planet or make a cool project to look smart at the dinning table with your uncles.
Stars: ✭ 12 (-99.53%)
Mutual labels:  nfc, infrared
Dap42
CMSIS-DAP debugger firmware for STM32F042Fx and STM32F103xx
Stars: ✭ 115 (-95.49%)
Mutual labels:  firmware, stm32
Stm32 Bootloader
UART bootloader for STM32 microcontroller.
Stars: ✭ 97 (-96.2%)
Mutual labels:  firmware, stm32
Dirtyjtag
JTAG probe firmware for STM32F1
Stars: ✭ 183 (-92.83%)
Mutual labels:  firmware, stm32
Stm32f103 Usb Cdc Cmsis
STM32F103 USB CDC CMSIS
Stars: ✭ 40 (-98.43%)
Mutual labels:  firmware, stm32
STBlueMS Android
"ST BLE Sensor" Android application source code.
Stars: ✭ 93 (-96.35%)
Mutual labels:  stm32, ble
kikpad
KiKPad : the Midiplus SmartPad reinvented !
Stars: ✭ 31 (-98.78%)
Mutual labels:  firmware, stm32
Internalblue
Bluetooth experimentation framework for Broadcom and Cypress chips.
Stars: ✭ 373 (-85.38%)
Mutual labels:  firmware, ble
Stm32 Bootloader
Customizable Bootloader for STM32 microcontrollers. This example demonstrates how to perform in-application-programming of a firmware located on an external SD card with FAT32 file system.
Stars: ✭ 541 (-78.79%)
Mutual labels:  firmware, stm32
Open-Home-Automation
Open Home Automation with Home Assistant, ESP8266/ESP32 and MQTT
Stars: ✭ 905 (-64.52%)
Mutual labels:  nfc, ble

Flipper Zero Firmware

Discord

Show me the code

Welcome to Flipper Zero's Firmware repo! Our goal is to create nice and clean code with good documentation, to make it a pleasure for everyone to work with.

Clone the Repository

You should clone with

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

Update firmware

Get Latest Firmware from Update Server

Flipper Zero's firmware consists of two components:

  • Core2 firmware set - proprietary components by ST: FUS + radio stack. FUS is flashed at factory and you should never update it.
  • Core1 Firmware - HAL + OS + Drivers + Applications.

They both must be flashed in the order described.

With offline update package

With Flipper attached over USB:

./fbt flash_usb

Just building the package:

./fbt updater_package

To update, copy the resulting directory to Flipper's SD card and navigate to update.fuf file in Archive app.

With STLink

Core1 Firmware

Prerequisites:

One liner: ./fbt firmware_flash

With USB DFU

  1. Download latest Firmware

  2. Reboot Flipper to Bootloader

  • Press and hold ← Left + ↩ Back for reset
  • Release ↩ Back and keep holding ← Left until blue LED lights up
  • Release ← Left
  1. Run dfu-util -D full.dfu -a 0

Build with Docker

Prerequisites

  1. Install Docker Engine and Docker Compose
  2. Prepare the container:
docker-compose up -d

Compile everything

docker-compose exec dev ./fbt

Check dist/ for build outputs.

Use flipper-z-{target}-full-{suffix}.dfu to flash your device.

If compilation fails, make sure all submodules are all initialized. Either clone with --recursive or use git submodule update --init --recursive.

Build on Linux/macOS

Check out documentation/fbt.md for details on building and flashing firmware.

macOS Prerequisites

Make sure you have brew and install all the dependencies:

brew bundle --verbose

Linux Prerequisites

gcc-arm-none-eabi

toolchain="gcc-arm-none-eabi-10.3-2021.10"
toolchain_package="$toolchain-$(uname -m)-linux"

wget -P /opt "https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/$toolchain_package.tar.bz2"

tar xjf /opt/$toolchain_package.tar.bz2 -C /opt
rm /opt/$toolchain_package.tar.bz2

for file in /opt/$toolchain/bin/* ; do ln -s "${file}" "/usr/bin/$(basename ${file})" ; done

Optional dependencies

  • openocd (debugging/flashing over SWD)
  • heatshrink (compiling image assets)
  • clang-format (code formatting)
  • dfu-util (flashing over USB DFU)
  • protobuf (compiling proto sources)

For example, to install them on Debian, use:

apt update
apt install openocd clang-format-13 dfu-util protobuf-compiler

heatshrink has to be compiled from sources.

Compile everything

./fbt

Check dist/ for build outputs.

Use flipper-z-{target}-full-{suffix}.dfu to flash your device.

Flash everything

Connect your device via ST-Link and run:

./fbt firmware_flash

Links

Project structure

  • applications - Applications and services used in firmware
  • assets - Assets used by applications and services
  • furi - Furi Core: os level primitives and helpers
  • debug - Debug tool: GDB-plugins, SVD-file and etc
  • docker - Docker image sources (used for firmware build automation)
  • documentation - Documentation generation system configs and input files
  • firmware - Firmware source code
  • lib - Our and 3rd party libraries, drivers and etc...
  • scripts - Supplementary scripts and python libraries home

Also pay attention to ReadMe.md files inside of those directories.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].