Hey there, fellow developer!
Welcome to the repository that houses a comprehensive and user-friendly guide for crafting your very own Flipper Zero application. By simply following along with this curated readme, and customizing it to your preferences along the way, you'll have your app up and published in no time. No need to reinvent the wheel, I've got your back!
Let's build something awesome together! 💪💻
- Previews
- Hardware Requirements
- Hardware Installation
- Firmware Installation
- Software Installation
- Software Guide
- Development Guide
- Flipper Application Catalog
- Contributions
- Special Thanks To
- Donators
- Wrapping Up
Add in-app screenshot previews in this section or GIF's to demonstrate your application in action. You can use ScreenToGif to record GIF's of your application.
[ Back to top ]
Define hardware requirements to run your application here. For example, if your application requires a Flipper Zero GPIO device, you would add a link to the Flipper Zero GPIO device here.
[ Back to top ]
Add hardware installation instructions here. Useful for when you need to demonstrate GPIO device pinout guides and the like.
[ Back to top ]
Add firmware installation instructions here. As an example this would be useful for when you need a guide for flashing a custom firmware to your Flipper Zero GPIO device. Add firmware files to the "firmware/" directory.
[ Back to top ]
Add software installation instructions here.
This repository includes GitHub Actions that lint and compile your application automatically. In the latest GitHub Actions for this repository you will find zip files containing the FAP application compatible with either the "dev" or "release" build of the latest Flipper Zero firmware. To manually install the application (for instance your application is not yet available in the Flipper Application Catalog) you can download those files and manually install them on your Flipper Zero device via USB.
[ Back to top ]
Demonstrate how the application works regarding the Flipper Zero's button layout. You can use this to guide your users on how to use your application more clearly.
Button | Action |
---|---|
🔼 | Up button does __. |
🔽 | Down button does __. |
Left button does __. | |
Right button does __. | |
↩️ | Back button does __. |
🔵 | Center button does __. |
[ Back to top ]
- Make sure you have Git and Visual Studio Code installed on your system.
- Clone the repository and its submodule dependencies using the following command:
git clone https://github.com/CodyTolene/Flipper-Zero-Development-Toolkit.git --recurse-submodules
- Download and install Python.
- Open a new terminal in the "fap" directory of this project.
- Run
py -m pip install --upgrade ufbt
to ensure you have the latest uFBT installed. - Run
ufbt vscode_dist
to download the Windows toolchain and set up Visual Studio Code files. - Open the project "fap" directory ("fap") in Visual Studio Code. Make sure you have "Microsoft C/C++" extension installed and enabled.
- In Visual Studio Code, open the command palette (CTRL+SHIFT+P) and type "C/C++ Edit Configurations (UI)" to find and open its settings. Add the following directory to the "Include path" option:
This includes the Flipper Zero firmware library for your project (you can update it to a custom firmware if needed).
${workspaceFolder}/../.submodules/**
- If Visual Studio Code shows import errors after saving the above settings from step 8, run the build script (see step 10) to resolve them.
- It should now be possible perform various tasks within Visual Studio Code using Ctrl+Shift+B or "Terminal -> Run Task." Alternatively, you can use uFBT scripts in the terminal. Here are some useful commands to get started:
Command Description ufbt cli
Starts a CLI session with the Flipper Zero device. ufbt build
Build the application. ufbt lint
Lint the application. ufbt format
Format the application. ufbt launch
Upload and start application over USB. - You're now ready to begin programming your application within the directory "fap/" with "fap/toolkit.c" ->
toolkit_app(...)
being your entry point. - After making changes, linting, testing, etc., please refer to the contributions section for a guide on how to submit your code for review (to make changes to this repo) or forking for your own use.
[ Back to top ]
Use the following flow to verify build requirements for the Flipper Application Catalog:
- Open a new terminal at the root of this project.
- Run
py -m venv venv
to install a virtual environment for use. - Activate the virtual environment with the command
venv\Scripts\activate
. - Install the required dependencies by running
pip install -r .submodules/flipper-application-catalog/tools/requirements.txt
. - Ensure that "fap\manifest.yml" has the latest commit sha that will be used for submission. Also, verify that the version is correct.
- Run
py .submodules/flipper-application-catalog/tools/bundle.py fap/manifest.yml bundle.zip
to verify and bundle the application. - If the above command succeeds, the application is ready for submission. Otherwise, fix any errors and try again.
- Use
deactivate
to exit the virtual environment and return to your normal terminal.
For more information on Flipper Application Catalog contribution requirements, see here.
[ Back to top ]
To create your own variation:
- Fork the repository.
- Add your code, push.
To add feedback to this repository:
- Fork the repository.
- Create a new branch with a descriptive name:
<username>/[<issue-#>]-<feature-or-bug-fix-desc>
- Refer to the Development Guide to get started. Program, commit changes, and push to your branch.
- Publish a pull request here for review from your branch.
- Wait for review and merge. Thank you for your contribution!
[ Back to top ]
- Flipper Devices for providing the Flipper Application Catalog, uFBT, their firmware, and the incredible Flipper Zero hardware itself.
- Derek Jamison for his insightful YouTube videos on Flipper Zero application development.
- GitHub user leedave for helping me learn more about Flipper Zero development by boilerplate example.
- The Unleashed Firmware community and their valuable contributions.
- WillyJL for your guidance and wisdom, contributions to the F0 community, and the amazing Momentum Firmware!
- TalkingSasquach for your contributions to the F0 community, for all of your helpful YouTube videos, and the Discord community!
- RogueMaster for your contributions to the F0 community, and the amazing RogueMaster Firmware!
- The project images were drawn using the a application called "link-lopaka" by sbrin. Thanks sbrin for your help in creating the images for this project!
- The Flipper Zero community for all your support and feedback!
[ Back to top ]
Below is a list of donators who have contributed to this project:
- rechtsanwalt.okan.dogan
- CodeAllNight (MrDerekJamison)
- RocketGod
Thank you for your support! 🙏
[ Back to top ]
Thanks to all the people and projects that made this possible! I hope you enjoy this project as much as I enjoyed working on it. If you have any questions, please let me know by opening an issue here.
Type | Info |
---|---|
webmaster@codytolene.com | |
https://www.buymeacoffee.com/codytolene | |
bc1qfx3lvspkj0q077u3gnrnxqkqwyvcku2nml86wmudy7yf2u8edmqq0a5vnt |
Fin. Happy programming friend!
Cody Tolene
[ Index ]