Commit Graph

377 Commits

Author SHA1 Message Date
MX 3bbb326c9c Merge branch 'ofw_dev' into nfcrefactoring 2023-10-24 14:42:49 +03:00
gornekich d92b0a82cc NFC refactoring (#3050)
"A long time ago in a galaxy far, far away...." we started NFC subsystem refactoring.

Starring:

- @gornekich - NFC refactoring project lead, architect, senior developer
- @gsurkov - architect, senior developer
- @RebornedBrain - senior developer

Supporting roles:

- @skotopes, @DrZlo13, @hedger - general architecture advisors, code review
- @Astrrra, @doomwastaken, @Hellitron, @ImagineVagon333 - quality assurance

Special thanks:

@bettse, @pcunning, @nxv, @noproto, @AloneLiberty and everyone else who has been helping us all this time and contributing valuable knowledges, ideas and source code.
2023-10-24 12:08:09 +09:00
MX 76e5a1c087 Merge branch 'ofw_dev' into dev 2023-10-09 22:21:49 +03:00
hedger 4ae9a02efa FuriHal ble: length fix for fw version prop (#3136)
* hal ble: length fix for fw version prop
* hal ble: dev_info char: setting data after setup is done
* api: storage: enabled storage_file_sync
2023-10-09 21:53:20 +09:00
MX 8666cdc5ef Merge branch 'ofw_dev' into dev 2023-09-21 22:43:48 +03:00
Filipe Paz Rodrigues a089aeb2bd Add Initial CCID support (#3048)
* Add Initial CCID support
* Sync api symbols
* Format sources

Co-authored-by: あく <alleteam@gmail.com>
2023-09-21 18:09:00 +09:00
agarof f46018b204 Add extended I2C HAL functions (#3037)
* Add extended I2C HAL functions
* Rename I2CEndClockStretch to I2CEndAwaitRestart
* Address review comments
* Update f18 api_symbols.csv
* FuriHal: check input values in cortex timer
* FuriHal: cleanup I2C documentation
* Properly bump api symbols
* FuriHal: fix incorrect cast in I2C write_reg methods, fix spelling and naming
* FuriHal: cleanup const usage in I2C, sync declaration and implementation
* Format Sources
* FuriHal: more i2c docs
* Add I2C Restart and Pause / Resume test
* Add I2C auto-reload test
* UnitTests: skip furi_hal_i2c_ext_eeprom if eeprom is not connected
* UnitTest: cleanup subghz test output
* FuriHal: classic timeouts in i2c

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2023-09-21 16:54:25 +09:00
MX 8f5ea2be83 Merge branch 'ofw_dev' into dev 2023-09-19 17:27:48 +03:00
あく 338fc3afea New clock switch schema, fixes random core2 crashes (#3008)
* Updated stack to 1.17.0

* hal: ble: Fixed stack config

* Bumped stack version in config

* scripts: added validation of copro stack version in update bundles

* Copro: update to 1.17.2

* FuriHal: adjust tick frequency for HSE as sys clk

* FuriHal: adjust systick reload on sys clock change

* Sync api and format sources

* scripts: updated ob.data for newer stack

* FuriHal: return core2 hse pll transition on deep sleep

* FuriHal: cleanup ble glue

* FuriHal: rework ble glue, allow shci_send in critical section

* FuriHal: sync api symbols

* FuriHal: cleanup BLE glue, remove unused garbage and duplicate declarations

* FuriHal: BLE glue cleanup, 2nd iteration

* FuriHal: hide tick drift reports under FURI_HAL_OS_DEBUG

* Lib: sync stm32wb_copro with latest dev

* FuriHal: ble-glue, slightly less editable device name and duplicate definition cleanup

* FuriHal: update ble config options, enable some optimizations and ext adv

* FuriHal: update clock switch method documentation

* FuriHal: better SNBRSA bug workaround fix

* FuriHal: complete comment about tick skew

* FuriHal: proper condition in clock hsi2hse transition

* FuriHal: move PLL start to hse2pll routine, fix lockup caused by core2 switching to HSE before us

* FuriHal: explicit HSE start before switch

* FuriHal: fix documentation and move flash latency change to later stage, remove duplicate LL_RCC_SetRFWKPClockSource call

---------

Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: hedger <hedger@users.noreply.github.com>
2023-09-19 18:22:21 +04:00
MX eb2607f308 Merge branch 'ofw_dev' into dev 2023-09-11 15:26:26 +03:00
Sergey Gavrilov 4705812d24 SD-Card: proper HAL (#3058)
* Storage: remove unused error from SDInfo
* FatFS: remove sd_spi_io
* HAL: sd card api
* Update: use sd hal
* FatFS: use sd hal
* Storage: use sd hal
* API: sd hal
* Fix TODO workflow
* SD Hal: Fix source buffer overflow
* fix for fix!
* HAL: cleanup sd detection api
* HAL: FURI_HAL_SD_SPI_DEBUG flag
* HAL: FuriHalSdStatus -> FuriStatus
* API: downgrade
* Change define logic
* HAL: presence
2023-09-11 18:30:56 +09:00
あく 1c0276a0be Various Fixes and Improvements (#3059)
* FuriHal: lower MGG display contrast by 4 points
* FuriHal: unify external gpio resources initialization
* Infrared: parse raw in universal TV file, cleanup it with new ifrared script. Other minor changes.
* Gui: fix elements_multiline_text_aligned eating symbols
* Lib: human readable errors in flipper application package
* Special request from marketing team
2023-09-11 16:23:00 +10:00
MX 1df2fc035f New bt beacon api
by Willy-JL
2023-09-07 13:45:37 +03:00
MX d40f664342 API for BLE Beacon app
thanks to Willy-JL
2023-09-05 16:22:14 +03:00
Eng1n33r cfc5caca63 Merge branch 'DarkFlippers:dev' into dev 2023-09-04 20:50:46 +03:00
MX 9c6e20356f Merge branch 'ofw-dev' into dev 2023-09-04 16:47:08 +03:00
Sergey Gavrilov 0b806c2360 Storage: force mount (#3033)
* Storage: count opened files
* Storage: sd mount
* Storage: prompt to mount SD card if not mounted
* F18: update API
* F18: update API version
* Fix logger naming scheme
* Storage: storage_files_count -> storage_open_files_count

Co-authored-by: あく <alleteam@gmail.com>
2023-09-04 14:10:07 +09:00
MX bd2cfb55df Merge branch 'dev' into eng_dev 2023-09-02 14:28:49 +03:00
MX 15c480b68a Merge branch 'ofw-dev' into dev 2023-09-02 13:33:32 +03:00
Max 52b5966262 Add File Naming setting for more detailed naming (#3002)
* added filename mode setting
* added furi_flag checks for when filename_mode is set
* changed naming for ibutton, lfrfid and subghz
* requested changes from PR
* Lib: gather all naming bits and pieces under name generator module. Properly bump api version. FuriHal: fix RTC flag enum.
* PR requested changes
* bug fix for arg type
* added functionality for other application scenes
* Lib: cleanup name generator API, simplify usage. Sync API symbols.
* Lib: proper size type in name_generator. Cleanup.
* FuriHal: cleanup rtc api usage across firmware

Co-authored-by: あく <alleteam@gmail.com>
2023-09-01 14:57:49 +09:00
Eng1n33r a772408ee6 Good Monday
[SubGhz / RadioSettings] More flexible rolling counter rate;
Remove unused stuff & small UI revisal
2023-08-28 00:02:48 +03:00
Eng1n33r 32fb94f5db Cnt value edit [in progress] 2023-08-24 19:23:05 +03:00
MX 0660329ae5 Merge branch 'ofw-dev' into dev 2023-08-23 23:47:03 +03:00
Astra 60182aa2cd [FL-3564] New IR universal remote graphics (#3006)
* New IR universal remote layout
* Remove redundant checks

Co-authored-by: あく <alleteam@gmail.com>
2023-08-24 03:24:47 +09:00
MX 20593d56c0 Merge branch 'ofw-dev' into dev 2023-08-22 21:53:50 +03:00
hedger ace0901125 [FL-3486,FL-3392] fbt: various improvements and bug fixes (#2982)
* fbt: extapps: compact debug format for .faps
* fbt: sdk: fixed symbol cache regen logic for removed-only symbols
* lib: elf_file: early .fap file handle release
* fbt: extapps: added FAP_VERSION define for application environments
* github: added appsymbols artifact
* api: updates for f18
* github: fixed early fap_dist
* fbt: added flash_dap
* ufbt: added flash_dap
* fbt: reworked flash target; scripts: program.py->fwflash.py and changes
* vscode: updated configuration
* scripts: fwflash.py: ugly fixes for ufbt
* scripts: fwflash.py: cleanup
* fbt: flash: always use .elf file
* scripts: fwflash: fixed elf file path

Co-authored-by: あく <alleteam@gmail.com>
2023-08-23 03:33:10 +09:00
MMX 196edb5d05 Merge pull request #571 from DarkFlippers/nfc_mfclassic_custom_uid
NFC App: Add manual MF Classic custom UID
2023-08-14 03:11:20 +03:00
MX 4164932044 remove 2023-08-11 23:23:06 +03:00
MX 4b81046b6f Merge branch 'ofw-dev' into dev 2023-08-11 18:08:12 +03:00
MX 09d5b3b1ed Expose additional functions of the crypto engine to user (#2923)
* Allow loading user supplied keys and add CTR mode
* Add GCM mode to furi_hal_crypto
* Split up CTR and GCM code, add flag for adv crypto
* Add convenience functions for GCM crypto
* Run fbt format
* Update GCM to support additional auth data
* Update APIs
* FuriHal: update crypto documentation, method names and usage
* Clean up code for key (un)loading, GCM and CTR
  - get rid of goto
  - do not use furi_hal_bt_is_alive() when not using secure enclave
  - give defines a type and wrap in ()
* Add unit test for CTR and GCM crypto
* FuriHal: const in crypto unit tests, cortex timer for crypto operations timeouts
* FuriHal: update crypto docs

Co-authored-by: twisted_pear <twstd@posteo.net>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2023-08-11 17:55:40 +03:00
MMX f75fcd4e34 UI: Clock on Desktop (#2891)
* Clock on desktop
* Gui: gui_active_view_port_count
* Gui: move gui_active_view_port_count to private header, update docs
* Desktop: simplify desktop clock code
* Desktop: refactor clock
* Desktop: optimize clock code
* Desktop: 3rd cleanup round
* Desktop: 4th cleanup round, missing bits and pieces

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2023-08-11 01:10:15 +09:00
twisted-pear c976ff11bf Expose additional functions of the crypto engine to user (#2923)
* Allow loading user supplied keys and add CTR mode
* Add GCM mode to furi_hal_crypto
* Split up CTR and GCM code, add flag for adv crypto
* Add convenience functions for GCM crypto
* Run fbt format
* Update GCM to support additional auth data
* Update APIs
* FuriHal: update crypto documentation, method names and usage
* Clean up code for key (un)loading, GCM and CTR
  - get rid of goto
  - do not use furi_hal_bt_is_alive() when not using secure enclave
  - give defines a type and wrap in ()
* Add unit test for CTR and GCM crypto
* FuriHal: const in crypto unit tests, cortex timer for crypto operations timeouts
* FuriHal: update crypto docs

Co-authored-by: twisted_pear <twstd@posteo.net>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2023-08-10 17:44:46 +09:00
MX 7027f6a4c4 Merge branch 'ofw-dev' into dev 2023-08-09 15:05:12 +03:00
Astra a39ef50fdb [FL-3433] Add compressor.h to the SDK (#2962) 2023-08-09 16:52:41 +09:00
gid9798 8936c02487 NFC App: Add manual MF Classic custom UID 2023-08-08 14:16:35 +03:00
MX 0f9c6ba847 Remake it more properly
still has problems, need to rewrite subghz_devices tx/rx switch code, checking strcmp every time is not good too, but better than loading whole config from microsd
2023-07-29 03:51:46 +03:00
MX 2f532a547e Merge branch 'ofw-dev' into dev 2023-07-18 22:53:16 +03:00
あく 76e97b8d35 [FL-3051] Gauge initialization routine refactoring, new DataMemory layout, configuration update (#2887)
* FuriHal: refactor power gauge config

* Format sources and move gauge DM load to separate method

* FuriHal: bq27220 refactoring part 1

* Power: use SYSDWN battery status flag for system shutdown

* Libs: bq27220 read DM before write, fix incorrect shift

* FuriHal: cleanup gauge config, add flags, add ptr DM type, update symbols

* FuriHal: 2 stage gauge DM verification and update, better detection routine

* FuriHal: update gauge configuration, lower sleep current and deadband

* FuriHal: gauge and charger health reporting

* Lib: cleanup bq27220 sources

* FuriHal: correct documentation for furi_hal_power_is_shutdown_requested

* FuriHal: proper gauge config for f7
2023-07-18 14:46:38 +04:00
MX 2c8350818c Merge branch 'ofw-dev' into dev 2023-07-17 20:33:26 +03:00
hedger 20f6394ad8 [FL-3431] Radio headers in SDK (#2881) 2023-07-17 11:51:15 +04:00
gid9798 d3c0fbef3b GUI module: SubMenu fix vertical orientation 2023-07-13 13:31:01 +03:00
MX 4a2cae23ca Merge branch 'ofw-dev' into dev 2023-07-11 15:49:01 +03:00
Astra 8bccfd6fd8 [FL-3363] More descriptive error messages for the log command (#2835)
* More descriptive error messages for the log command
* Log level description improvements
* Log help changes

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-07-11 15:41:16 +04:00
MX 5897b8278b api 2023-07-10 22:46:57 +03:00
MX 9f9664f6ca Merge branch 'dev' into cc1101_ext 2023-07-10 22:44:17 +03:00
gid9798 0e1a54141e Fix SubGhz Apps & LF RFID 2023-07-10 19:59:25 +03:00
MX 5fa0706d70 Merge branch 'dev' into cc1101_ext 2023-07-10 17:04:53 +03:00
MX bb7ffd6ff5 Merge branch 'ofw-dev' into dev 2023-07-10 16:55:28 +03:00
Sergey Gavrilov 9b2d80d6b7 [FL-3400] External menu apps (#2849)
* FBT, applications: add MENUEXTERNAL app type
* FBT, uFBT: build MENUEXTERNAL as EXTERNAL app
* Loader menu: show external menu apps
* LFRFID: move to sd card
* FBT: always build External Applications list
* Archive: look for external apps path
* Infrared: move to sd card
* Apps: add "start" apps
* iButton: move to sd card
* BadUSB: move to sd card
* External apps: update icons
* GPIO: move to sd card
* Loader: look for external apps path
* U2F: move to sd
* SubGHz: move to sd
* Apps: "on_start" metapackage
* NFC: move to sd
* Sync f7 and f18

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-07-10 12:03:41 +04:00
Astra 0195f8bf00 [FL-3350] Device Info update (#2840)
* Update F18 version info
* Certification info for F18

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-07-10 10:48:00 +04:00