{"id":21417983,"url":"https://github.com/esonhugh/flipperzero_ufbt_application_howto","last_synced_at":"2025-03-16T19:21:24.198Z","repository":{"id":214191489,"uuid":"725195828","full_name":"Esonhugh/flipperzero_ufbt_application_howto","owner":"Esonhugh","description":"flipperzero ufbt vscode project how to with no canvas hack? Howto: raw project github.com:csBlueChip/FlipperZero_plugin_howto.git","archived":false,"fork":false,"pushed_at":"2023-12-26T13:18:55.000Z","size":40,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T05:46:49.642Z","etag":null,"topics":["demo","flipperzero","flipperzero-dev","flipperzero-development","guide"],"latest_commit_sha":null,"homepage":"https://github.com/csBlueChip/FlipperZero_plugin_howto.git","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Esonhugh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-11-29T16:26:59.000Z","updated_at":"2024-07-03T09:47:50.000Z","dependencies_parsed_at":"2023-12-26T15:34:05.310Z","dependency_job_id":"e7cdb560-b7bf-4fee-8de6-0926d5866204","html_url":"https://github.com/Esonhugh/flipperzero_ufbt_application_howto","commit_stats":null,"previous_names":["esonhugh/flipperzero_ufbt_application_howto"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Esonhugh%2Fflipperzero_ufbt_application_howto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Esonhugh%2Fflipperzero_ufbt_application_howto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Esonhugh%2Fflipperzero_ufbt_application_howto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Esonhugh%2Fflipperzero_ufbt_application_howto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Esonhugh","download_url":"https://codeload.github.com/Esonhugh/flipperzero_ufbt_application_howto/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243918629,"owners_count":20368745,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["demo","flipperzero","flipperzero-dev","flipperzero-development","guide"],"created_at":"2024-11-22T19:18:25.464Z","updated_at":"2025-03-16T19:21:24.177Z","avatar_url":"https://github.com/Esonhugh.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FlipperZero_plugin_howto\nA simple plugin for the FlipperZero written as a tutorial example [ie. excessive documentation \u0026amp; error handling]\n\n# FAP Support Has Arrived! :) \u003csub\u003e\u003csup\u003e[Sept 2022]\u003c/sup\u003e\u003c/sub\u003e\nSince the move to FAP, your \"plugins\" are now known as \"applications\"\n* \"Plugins\" are \n  * Compiled in to the kernel\n  * Flashed as part of the firmware in the main SoC\n  * Require the developer to edit/maintain `/applications/meta/applications.fam`\n* \"Applications\" are \n  * Compiled as separate programs\n  * Live on the SDCard\n  * Do NOT require code edits outside their own directory\n\nThe upshot is easier development, and (essentailly) unlimited features on your Flipper!\n\n# If you have not yet installed the FlipperZero devkit\nOn an x86\u003csup\u003e[1]\u003c/sup\u003e computer, at a Linux\u003csup\u003e[2]\u003c/sup\u003e command prompt, type:\n```\nmkdir -p ~/flipperZero/official/\ncd ~/flipperZero/official/\ngit clone --recursive  https://github.com/flipperdevices/flipperzero-firmware.git  ./\n./fbt\n```\n...and wait while it downloads all the required tools and performs the first build of the code.\n\n\u003csub\u003e\u003csup\u003e[1]\u003c/sup\u003e The FlipperZero Toolchain is ONLY available for x86 PCs. EG. You will NOT be able to do this on a RaspberyyPi.\u003c/sub\u003e\u003cbr/\u003e\n\u003csub\u003e\u003csup\u003e[2]\u003c/sup\u003e You CAN write FAPs under Windows. Perahps a friendly windows user would like to write a tutorial on this?\u003c/sub\u003e\n\n# Install the cutting-edge firmware on your Flipper\n`./fbt flash_usb_full`\n\nNote:\n* `flash_usb` is used to install JUST the firmware\u003cbr/\u003e\n* `flash_usb_full` also installs the \"resources\" (images and such)\u003cbr/\u003e\n\nBe aware that since the introdcution of FAP \u003csub\u003e\u003csup\u003e[Sept 2022]\u003c/sup\u003e\u003c/sub\u003e, Applications are Resources (in the same way that Images are Resources).\n\n# After the devkit is installed\nAssuming your devkit is in: `~/flipperZero/official/`\u003cbr/\u003e\n...checkout this demo with:\n```\ncd ~/flipperZero/official//applications_user\nmkdir bc_demo\ncd bc_demo\ngit clone https://github.com/csBlueChip/FlipperZero_plugin_howto.git ./\n```\n\n# After bc_demo is downloaded\nCompile with:\n```\ncd ~/flipperZero/official/\n./fbt fap_bc_demo\n```\n...And/Or (Compile and) Upload with:\n```\ncd ~/flipperZero/official/\n./fbt launch_app APPSRC=bc_demo\n```\n...Flashing will fail if the FlipperZero is in the applications menu, or running an application!\n\n# About the bc_demo code \u0026 documentation\n* Review the `README.txt` file for an overview of the code, and how to get started.\n* Take a look in `bc_demo.c` for, frankly, an abusive amount of commenting; and overkill error-handling.\n\nThe code is all M.I.T. Licensed ...take it ...use it ...butcher it ...polish it ...whatever. \u003cbr/\u003e\n...If you do anything cool with it, I'd love to see your creation :)\n\n# Footnotes\n## The change from Plugin -\u0026gt; Application\nIf 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)\n\nIf 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.\n\n## The change from `ValueMutex` -\u0026gt; `FuriMutex`\nIn 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'.\nIf 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)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesonhugh%2Fflipperzero_ufbt_application_howto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesonhugh%2Fflipperzero_ufbt_application_howto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesonhugh%2Fflipperzero_ufbt_application_howto/lists"}