Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/csBlueChip/FlipperZero_plugin_howto
A simple plugin for the FlipperZero written as a tutorial example [ie. excessive documentation & error handling]
https://github.com/csBlueChip/FlipperZero_plugin_howto
Last synced: about 1 month ago
JSON representation
A simple plugin for the FlipperZero written as a tutorial example [ie. excessive documentation & error handling]
- Host: GitHub
- URL: https://github.com/csBlueChip/FlipperZero_plugin_howto
- Owner: csBlueChip
- License: mit
- Created: 2022-08-17T20:18:40.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-03T14:24:17.000Z (7 months ago)
- Last Synced: 2024-05-03T17:17:15.691Z (7 months ago)
- Language: C
- Size: 88.9 KB
- Stars: 276
- Watchers: 6
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- fucking-awesome-flipperzero - `Flipper-Plugin-Tutorial` Updated plugin tutorial based on new build methods.
- awesome-flipperzero - `Flipper-Plugin-Tutorial` Updated plugin tutorial based on new build methods.
- awesome-flipperzero-withModules - `Flipper-Plugin-Tutorial` Updated plugin tutorial based on new build methods.
README
# FlipperZero_plugin_howto
A simple plugin for the FlipperZero written as a tutorial example [ie. excessive documentation & error handling]# FAP Support Has Arrived! :) [Sept 2022]
Since the move to FAP, your "plugins" are now known as "applications"
* "Plugins" are
* Compiled in to the kernel
* Flashed as part of the firmware in the main SoC
* Require the developer to edit/maintain `/applications/meta/applications.fam`
* "Applications" are
* Compiled as separate programs
* Live on the SDCard
* Do NOT require code edits outside their own directoryThe upshot is easier development, and (essentailly) unlimited features on your Flipper!
# If you have not yet installed the FlipperZero devkit
On an x86[1] computer, at a Linux[2] command prompt, type:
```
mkdir -p ~/flipperZero/official/
cd ~/flipperZero/official/
git clone --recursive https://github.com/flipperdevices/flipperzero-firmware.git ./
( cd assets/protobuf/ && git fetch )
./fbt
```
...and wait while it downloads all the required tools and performs the first build of the code.[1] The FlipperZero Toolchain is ONLY available for x86 PCs. EG. You will NOT be able to do this on a RaspberyyPi.
[2] You CAN write FAPs under Windows. Perahps a friendly windows user would like to write a tutorial on this?# Install the cutting-edge firmware on your Flipper
`./fbt flash_usb_full`Note:
* `flash_usb` is used to install JUST the firmware
* `flash_usb_full` also installs the "resources" (images and such)Be aware that since the introdcution of FAP [Sept 2022], Applications are Resources (in the same way that Images are Resources).
# After the devkit is installed
Assuming your devkit is in: `~/flipperZero/official/`
...checkout this demo with:
```
cd ~/flipperZero/official//applications_user
mkdir bc_demo
cd bc_demo
git clone https://github.com/csBlueChip/FlipperZero_plugin_howto.git ./
```# After bc_demo is downloaded
Compile with:
```
cd ~/flipperZero/official/
./fbt fap_bc_demo
```
...And/Or (Compile and) Upload with:
```
cd ~/flipperZero/official/
./fbt launch APPSRC=bc_demo
```
...Flashing will fail if the FlipperZero is in the applications menu, or running an application!# About the bc_demo code & documentation
* Review the `README.txt` file for an overview of the code, and how to get started.
* Take a look in `bc_demo.c` for, frankly, an abusive amount of commenting; and overkill error-handling.The code is all M.I.T. Licensed ...take it ...use it ...butcher it ...polish it ...whatever.
...If you do anything cool with it, I'd love to see your creation :)# Footnotes
## The change from Plugin -> Application
If you wish to review this repository at the last point before the FAP update, use [this link](https://github.com/csBlueChip/FlipperZero_plugin_howto/tree/21f2620035728cd04e1951c3f6a30de1cfe8a280)If you wish to review the (trivial) change[s] required to convert from the old "plugin" system to the new "FAP"/"Application" system, see [this link](https://github.com/csBlueChip/FlipperZero_plugin_howto/commit/91e06b53d5b9499edd7247b9b87b73e867f1a841#diff-277dc3e809211402bcdb4976c80cd9f172ede7d3c4f8b95137c00b51c236d71d) ...the addition of an icon and a sub-folder are optional.
## The change from `ValueMutex` -> `FuriMutex`
In March 2023 the mutex API was "broken"/superceded. Due to changes in the Speaker API (which happened (essentially) at the same time) (and the fact that I didn't really think things through properly) the update to this repository wasn't 'clean'.
If you'd like to see a 'clean' update to an app that uses mutex'es, check out [the patch to my WiiEC FAP](https://github.com/csBlueChip/FlipperZero_WiiEC/commit/8ff921b4f8b69fdf60737bdd2b170f0726b719cc)