Flipper Zero Unleashed Firmware
Go to file
Vadim Kaushan 1bec8dd23a
Install Rust in docker image, add Rust library and build rules (#41)
* Install Rust in docker image

* Also install thumbv7em-none-eabi target

* Install Rust in docker image

* Also install thumbv7em-none-eabi target

* Add Rust example

* Link to the Rust example

* Call function from the Rust lib

* Move PROJECT_DIR to the 'paths' section

* Fix target_f1 build

* Link to the Rust library in target_f1

* Generate cbindgen bindings

* Add forgotten dependency line

* Use panic=abort instead of eh_personality lang item

* Install Rust in docker image

* Also install thumbv7em-none-eabi target

* Add Rust example

* Link to the Rust example

* Call function from the Rust lib

* Move PROJECT_DIR to the 'paths' section

* Link to the Rust library in target_f1

* Generate cbindgen bindings

* Add forgotten dependency line

* Use panic=abort instead of eh_personality lang item

* add rust call test

Co-authored-by: aanper <mail@s3f.ru>
2020-08-26 13:08:20 +03:00
.github/ISSUE_TEMPLATE Update issue templates 2020-08-21 07:14:04 +03:00
applications Install Rust in docker image, add Rust library and build rules (#41) 2020-08-26 13:08:20 +03:00
core Blink f1 (#50) 2020-08-26 11:43:18 +03:00
core-rs Install Rust in docker image, add Rust library and build rules (#41) 2020-08-26 13:08:20 +03:00
target_f1 Install Rust in docker image, add Rust library and build rules (#41) 2020-08-26 13:08:20 +03:00
target_lo Install Rust in docker image, add Rust library and build rules (#41) 2020-08-26 13:08:20 +03:00
wiki fix blink app example copyright (#51) 2020-08-26 12:46:58 +03:00
wiki_static Blink f1 (#50) 2020-08-26 11:43:18 +03:00
.gitattributes add wiki static as lfs files 2020-08-24 20:17:08 +03:00
docker-compose.yml WIP target lo 2020-08-17 18:23:28 +03:00
Dockerfile Install Rust in docker image, add Rust library and build rules (#41) 2020-08-26 13:08:20 +03:00
flipper-zero-cla.md Update flipper-zero-cla.md 2020-08-01 19:42:32 +03:00
README.md Discord server added to README 2020-08-21 15:41:14 +03:00
wiki-deploy.sh add dummy wiki deploy script 2020-08-15 10:08:29 +03:00

Flipper Zero Firmware community repo

Welcome to Flipper Zero'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.

Current state of Flipper developement

Hardware

Current Flipper Zero prototype is based on board Version 0 (F1B1C0.0) that have a lots of bugs. We have finished the next version of PCB, where these bugs are fixed, and now waiting for it its manufacturing. This new board will be used as Developer Kit for early firmware development and will be sent to developers.

Firmware

During the early prototyping stages of Flipper Zero, we have used a lot of 3rd-party code, sketches, and dirty demos just as proof of concept, and didn't think too much about architecture. This code splits into many incompatible pieces of code, and some of them dont even have an UI. This repo is cleaned from all the dirty demos and prepared for contributors, so we will start porting all the legacy code here, following the new architecture.

Right now we are working on clean architecture and documentation for contributors. You can run firmware locally (with HAL stub).

  • docker-compose exec dev make -C target_lo for build
  • docker-compose exec dev target_lo/build/target_lo for run

Read more in building instructions.

Flipper developement roadmap

  • Phase 0 (compelete) Preparing for Kickstarter, prototyping UI, checkng hardware, prototype protocol sniffer, tag readers, etc.
  • Phase 1. (Current) Set up developing routines for massive contributors activity, architecture and documentation. Building hardware rig for remote testing.
  • Phase 2. Start massive contributors program. Preparing Developments Kits for sending to few developers.
  • Phase 3. Next PCB release Version 1 (F2B0C1) and sending it to more contributos.
  • Phase 4. Release PCB based on STM32WB55RB and sending it to developers.
  • Phase 5. Making all repositories publicly open.

Tasks for phase 1: (Doing right now)

  • Finalize firmware core architecture and document it for contributors onboarding. You can see progress in Core project
  • Set up a test environment and CI. You can see progress in Environment project
  • Create Flipper Zero software emulator with display and buttons Task #22
  • Set up integration between wiki and issues, configure wiki generator from doc files: Task #16
  • Finish the basic wiki pages: create feature description, UI sketches, links to related project/code, documentation for protocols/
  • Make basic code examples Task #15
  • Transfer old code to new architecture

We are open for changes! You can suggest changes to any part of the code, wiki, guidelines, workflow, automation, etc.

If you are deary to start, please read contribution guide about creating issue, editing wiki, improving codebase and configuring environment.

Firmware

Firmware page

Flipper consists of the two main parts:

  • Core: OS, HAL, FS, bootloader, FURI
  • Applications: features like RFID or Tamagotchi, and also background tasks like button debouncing and backlight control.

UI

Common UI feature (menu, screens...) at UI page

Features

Hardware

Hardware page

Links