54 Commits

Author SHA1 Message Date
WillyJL d38a3635f4 Merge remote-tracking branch 'fork-ofw/fix/noisy-uart-hang' into mntm-dev --nobuild 2025-07-02 08:38:04 +01:00
WillyJL 556edd086f Expansion: Stop UART async rx early 2025-07-02 07:14:13 +01:00
WillyJL b048546356 Expansion: Wake thread on UART error flag 2025-07-02 07:13:53 +01:00
Willy-JL 49d7ce7349 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-04-12 10:36:13 +01:00
Anna Antonenko 3d02063bce fbt: Deterministic STARTUP order & additional checks (#4179)
* unit_tests: clear startup order

* fam: ensure unique STARTUP order

* fbt: warn on same .order values within a group leading to non-determinitic builds

* fbt: better formatting for app order warning

---------

Co-authored-by: hedger <hedger@nanode.su>
2025-04-07 16:45:09 +04:00
Willy-JL bd2ee18e48 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2025-02-28 02:03:45 +00:00
Astra 2817666eb9 [FL-3774] Fix 5V on GPIO (#4103)
* Move OTG controls to the power service
* Accessor: add missing power service import
* Power: add is_otg_enabled to info and properly handle OTG enable with VBUS voltage present
* Power: method naming
* Power: add backward compatibility with old-style use of furi_hal_power
* Scripts: lower MIN_GAP_PAGES to 1
* SubGhz: fix incorrect logging tag
* SubGhz: delegate OTG management to power service
* Power: fix condition race, various improvements

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2025-02-20 12:37:52 +09:00
Willy-JL 26959f73d8 Merge remote-tracking branch 'ul/dev' into mntm-dev --nobuild 2024-09-10 01:03:42 +02:00
MX 80ad381eef extra checks [ci skip] 2024-09-09 05:13:02 +03:00
Willy-JL e60b0180ec Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-09-05 18:15:25 +02:00
Georgii Surkov fa2d611652 [FL-3889] 5V on GPIO control for ext. modules (#3830)
* Make file extensions case-insensitive
* Bump protobuf version
* Add support for 5V control via RPC
* Add support for 5V control via Expansion protocol
* Update running instructions
* Update expansion module documentation
* Prettify condition
* Test RPC OTG control as well
* Assets: bump protobuf version
* Disable PVS license expiration check, fix PVS warnings

Co-authored-by: あく <alleteam@gmail.com>
2024-09-05 15:40:14 +01:00
Willy-JL 0ccc9c077f Don't save settings on load, only on edit 2024-08-11 02:30:45 +02:00
Willy-JL 6acfd65697 Cleanup API symbols
Services expose same sdk_headers as OFW
Since settings apps use some of those symbols, need to include them
Workaround is mock imports by #include the .c code
Not ideal, but we only need access to basic load/save functions, and these apps are bundled with firmware anyway, so should be fine
Not exposing via API and instead bundling via FAP also means less flash used, and RAM is not a concern with settings apps
2024-08-10 03:01:40 +02:00
Willy-JL 083c17f09d Revert some settings handling to how they work in OFW 2024-08-07 02:15:39 +02:00
Willy-JL b8a6579379 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-08-05 20:05:13 +02:00
あく 4d985ba8f8 Storage: remove LFS (#3577)
* Storage: drop internal storage

* Storage: rollback some unnecessary changes

* Storage: rollback some unnecessary changes part 2

* Storage: cleanup various defines and int handling. Ble: allow short connection interval if internal flash is not used.

* Storage: do not return storage if it is not ready

* Save PIN code to RTC, update settings

* Simplify the code, clean up includes

* Rearrange some code

* apps: storage_move_to_sd: conditionally enable with --extra-define=STORAGE_INT_ON_LFS

* Load Desktop settings automatically

* Redirect /any to /ext

* Abolish storage_move_to_sd app

* Remove as many mentions of ANY_PATH as possible

* Fix desktop settings wrongly not loading

* Improve desktop settings handling and strings

* Load BLE settings and keys automatically

* Improve BLE configuration procedure

* Do not load bluetooth keys twice if they were already loaded

* Load dolphin state automatically

* Fix merge artifact

* Load notification settings automatically

* Update desktop settings strings

* Load expansion settings automatically

* Do not use thread signals to reload desktop settings

* Load region data automatically, separate to its own hook

* Improve ble behaviour with no keys

* Fix Dolphin state not resetting correctly

* Add a status check

* Make Desktop save its own settings

* Check result when taking and releasing mutex

* Improve default thread signal handling in FuriEventLoop

* Make bt service in charge of saving settings, add settings api

* Fix a deadlock due to timer thread not receiving time

* Lock core2 when reinitialising bt

* Update clang-format

* Revert "Update clang-format"

This reverts commit d61295ac063c6ec879375ceeab54d6ff2c90a9a1.

* Format sources with clang-format

* Revert old stack size for desktop settings

* Allocate big struct dynamically

* Simplify PIN comparison

* Save pointer to storage in Desktop object

* Fix region provisioning for hardware regions

* Remove stale TODO + siimplify code

* Clean up region.c

* Use sizeof instead of macro define

* Limit PIN length to 10 for consistency

* Emit a warning upon usage of /any

* Add delay after finding flipper

* Remove unnecessary delay

* Remove all mentions of STORAGE_INT_ON_LFS

* Remove littlefs and internal storage

* Remove all possible LittleFS mentions

* Fix browser tab in Archive

* Ble: fix connection interval explanation

* Bump API Symbols

* BLE: Update comments interval connection comments

* Storage: clear FuriHalRtcFlagStorageFormatInternal if set

---------

Co-authored-by: Georgii Surkov <georgii.surkov@outlook.com>
Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: Georgii Surkov <37121527+gsurkov@users.noreply.github.com>
2024-08-04 10:54:02 +01:00
Willy-JL 02f7207d28 Merge remote-tracking branch 'ofw/dev' into mntm-dev 2024-07-15 22:18:35 +01:00
hedger ffa3996a5e [FL-3867] Code formatting update (#3765)
* clang-format: AllowShortEnumsOnASingleLine: false
* clang-format: InsertNewlineAtEOF: true
* clang-format: Standard:        c++20
* clang-format: AlignConsecutiveBitFields
* clang-format: AlignConsecutiveMacros
* clang-format: RemoveParentheses: ReturnStatement
* clang-format: RemoveSemicolon: true
* Restored RemoveParentheses: Leave, retained general changes for it
* formatting: fixed logging TAGs
* Formatting update for dev

Co-authored-by: あく <alleteam@gmail.com>
2024-07-15 13:38:49 +09:00
Willy-JL 9fd3f70636 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into mntm-dev 2024-03-29 03:55:30 +00:00
Silent 8ec1c74baf SavedStruct: Introduce saved_struct_get_metadata (#3392)
* SavedStruct: Replace saved_struct_get_payload_size with saved_struct_get_metadata
  This new function can obtain the magic value, version and payload size
  all at once. This makes the function useful e.g.
  for backwards compatibility.
* SavedStruct: const-qualify saved_struct_save
* Toolbox: add saved struct documentation

Co-authored-by: あく <alleteam@gmail.com>
2024-03-26 03:48:18 +09:00
Willy-JL 06aea09169 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into mntm-dev 2024-03-20 04:18:26 +00:00
あく acc39a4bc0 Api Symbols: replace asserts with checks (#3507)
* Api Symbols: replace asserts with checks
* Api Symbols: replace asserts with checks part 2
* Update no args function signatures with void, to help compiler to track incorrect usage
* More unavoidable void
* Update PVS config and code to make it happy
* Format sources
* nfc: fix checks
* dead code cleanup & include fixes

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: hedger <hedger@nanode.su>
2024-03-19 23:43:52 +09:00
Willy-JL 25965abed3 Expansion is_connected in event queue 2024-03-05 22:19:08 +00:00
Willy-JL e79e49edc6 Improve some naming for expansion is connected 2024-03-05 22:08:29 +00:00
HaxSam fdd88ea823 return command added 2024-03-01 15:42:12 +01:00
HaxSam 25d686fdfb add is_connected api for expansion \w @Willy-JL 2024-03-01 09:49:39 +01:00
Willy-JL b7220237de Small bump in the road
- Update assets and references for new project
- Revert DFU image and CLI motd
- Remove NSFW text and flag
- Remove credits animation (will be replaced with a setting menu soon)
- New EvilPortal example HTML and better error message
- Initial standalone naming for asset packs and mainmenu apps
- File migration fixes/improvements
- Remove hotfix workflow
2024-03-01 06:11:16 +00:00
Willy-JL acc352e61f Make settings menus external -21.7kb DFU 2024-02-14 04:36:48 +00:00
Georgii Surkov 6836a7b7c5 [FL-3764] Expansion module service improvements (#3429)
* Separate expansion control and worker threads
* Add edge case checks
* Reduce expansion control thread stack size, add comments
* Fix crash when disabling expansion modules
* Show a different RPC icon for expansion modules
* Restore expansion interrupt on changing logging settings
* Improve responsiveness in heavy games at the expense of dropped frames
* Improve furi_hal_serial API
* Fix a typo
* Remove too optimistic furi_check, replace with condition
* Fix premature RX interrupt during serial configuration
* Disable expansion interrupt if the handle was acquired
* Do not use a timer callback

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2024-02-12 09:16:34 +07:00
Willy-JL fe22543f19 Merge branch 'gsurkov/3764_expansion_control' of https://github.com/flipperdevices/flipperzero-firmware into xfw-dev 2024-02-09 16:16:13 +00:00
Georgii Surkov 73deff8863 Do not use a timer callback 2024-02-09 16:31:45 +03:00
Willy-JL 9131f59938 Merge branch 'gsurkov/3764_expansion_control' of https://github.com/flipperdevices/flipperzero-firmware into xfw-dev 2024-02-08 23:46:31 +00:00
Georgii Surkov 534fe2fb26 Remove too optimistic furi_check, replace with condition 2024-02-08 14:50:39 +03:00
Willy-JL df3f9484f6 Merge branch 'gsurkov/3764_expansion_control' of https://github.com/flipperdevices/flipperzero-firmware into xfw-dev 2024-02-08 01:00:13 +00:00
Georgii Surkov c489c956e7 Improve furi_hal_serial API 2024-02-07 21:13:38 +03:00
Georgii Surkov fee6f12684 Improve responsiveness in heavy games at the expense of dropped frames 2024-02-07 11:43:58 +03:00
Georgii Surkov 962a7b1ba7 Restore expansion interrupt on changing logging settings 2024-02-06 19:40:56 +03:00
Georgii Surkov ff28c23f64 Fix crash when disabling expansion modules 2024-02-06 17:10:14 +03:00
Georgii Surkov 3721a71eab Reduce expansion control thread stack size, add comments 2024-02-06 16:38:54 +03:00
Georgii Surkov 6846e808cf Add edge case checks 2024-02-06 16:02:46 +03:00
Georgii Surkov 2f0adf73c7 Separate expansion control and worker threads 2024-02-06 15:41:59 +03:00
Willy-JL f3763b2681 Merge branch 'dev' of https://github.com/DarkFlippers/unleashed-firmware into dev 2024-01-31 01:59:45 +00:00
MX c31052848a expansion settings read and store in ram
by @Willy-JL
2024-01-30 23:26:08 +03:00
Willy-JL 18579abbcf Revert "Default expansion UART listen to off for now"
This reverts commit bbcff48517.
2024-01-30 19:25:12 +00:00
Willy-JL b96c9c4550 Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into dev 2024-01-30 19:21:44 +00:00
MX d3dcc1d27d Merge branch 'ofw_dev' into dev 2024-01-30 17:14:38 +03:00
Georgii Surkov e6f078eeb7 [FL-3759] Fix expansion protocol crash when fed lots of garbage (#3409)
* Fix crash caused by garbage input
* Add unit tests for garbage input
* Enable applications to disable and then restore expansion module support
* GPIO App: disable expansion on app start and re-enable on exit

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2024-01-30 22:54:25 +09:00
Willy-JL 3b4832cfca Easy expansion resume as configured -- nobuild 2024-01-30 00:43:59 +00:00
Willy-JL 9243cf8eaf Expansion settings singleton 2024-01-30 00:40:38 +00:00
MX cbc0231461 disable expansion and reset some flags for release builds
there is no expansion modules yet, so we can disable uart listen for them being enabled 24/7
p.s. some parts of code was taken from Willy-JL's solution
todo: revert force reset part if there are real use cases for expansion protocol appears
2024-01-27 19:05:52 +03:00