2020-09-17 10:43:04 +03:00
# Flipper Zero Firmware community repo
[![Discord ](https://img.shields.io/discord/740930220399525928.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2 )](http://flipperzero.one/discord)
2020-08-18 01:10:34 +03:00
2020-11-04 12:49:35 +03:00
< img src = "https://habrastorage.org/webt/eo/m0/e4/eom0e4btudte7nrhnyic-laiog0.png" / >
2020-08-01 22:54:58 +03:00
2021-01-29 14:18:10 +03:00
Welcome to [Flipper Zero ](https://flipperzero.one/ )'s Firmware repo!
Our goal is to create nice and clean code along with good documentation, to make it a pleasure for everyone to work with.
This repo will become completely public closer to the device shipping date.
2020-08-01 22:47:07 +03:00
2020-11-04 12:49:35 +03:00
# Update firmware
2020-08-07 09:51:41 +03:00
2021-02-15 02:53:17 +03:00
< a href = "https://update.flipperzero.one/master/full.dfu" > < img width = "300" src = "https://update.flipperzero.one/latest-firmware-banner.png" / > < / a >
2020-08-07 09:51:41 +03:00
2020-10-23 11:42:53 +03:00
2021-01-29 14:18:10 +03:00
Flipper Zero's firmware consists of three components:
- Core2 firmware - proprietary componenets by ST: FUS + radio stack.
- Core1 Bootloader - controls basic hardware initialization and loads firmware
- Core1 Firmware - HAL + OS + Drivers + Applications
All 3 of them must be flashed in order described.
## With STLink
### Core2 flashing procedures
Prerequisites:
- Linux / MacOs
- Terminal
- STM32_Programmer_CLI added to $PATH
One liner: `./flash_core2_ble.sh`
### Core1 Bootloader + Firmware
Prerequisites:
- Linux / MacOs
- Terminal
- Arm gcc noneabi
- openocd
One liner: `./flash_core1_main.sh`
## With USB DFU
2020-10-23 11:42:53 +03:00
2020-11-04 12:49:35 +03:00
1. Download latest [Firmware ](https://update.flipperzero.one/full_firmware_latest.bin )
2020-10-23 11:42:53 +03:00
2020-11-04 12:49:35 +03:00
2. Reboot Flipper to Bootloader
- Press and hold `← Left` + `↩ Back` for reset
- Release `← Left` and keep holding `↩ Back` until blue LED lights up
- Release `↩ Back`
< img src = "https://habrastorage.org/webt/uu/c3/g2/uuc3g2n36f2sju19rskcvjzjf6w.png" / >
2020-10-23 11:42:53 +03:00
2021-01-29 14:18:10 +03:00
1. Run `dfu-util -D full_firmware_latest.bin -a 0 -s 0x08000000:leave`
2020-10-23 11:42:53 +03:00
2021-01-29 14:18:10 +03:00
# Build from source
2020-08-18 20:18:09 +03:00
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
`docker-compose exec dev make -C firmware TARGET=f4 APP_RELEASE=1 flash` for build and flash dev board (see `applications/applications.mk` for list of applications/examples)
2020-08-18 20:18:09 +03:00
2020-08-15 09:59:22 +03:00
# Links
2020-11-04 12:49:35 +03:00
* Task tracker: [Jira ](https://flipperzero.atlassian.net/ )
2020-08-21 15:41:14 +03:00
* Discord server: [flipperzero.one/discord ](https://flipperzero.one/discord )
2020-08-15 09:59:22 +03:00
* Project website: [flipperzero.one ](https://flipperzero.one )
* Kickstarter page: [kickstarter.com ](https://www.kickstarter.com/projects/flipper-devices/flipper-zero-tamagochi-for-hackers )
2020-08-17 12:02:31 +03:00
* Forum: [forum.flipperzero.one ](https://forum.flipperzero.one/ )