Commit graph

360 commits

Author SHA1 Message Date
hedger
9dedcd07b6
api: added lib/nfc/protocols/nfc_util.h (#2674) 2023-05-15 20:55:22 +09:00
MX
c2713eff87
New way of changing device name
Settings scene, char Validator, Idea -> by Willy-JL
Implemented by me

Kod plohoi, ochen plohoi, kto mozhet - sdelaite kak nado, esli smozhete :)
Ya luche varianta ne pridumal poka 4to
2023-05-14 05:38:00 +03:00
MX
c0b3a18316
api 2023-05-14 04:27:25 +03:00
MX
21d4dba03b
Merge branch 'dev' into SubGhz_lib 2023-05-14 03:12:40 +03:00
MX
f08dd2fd03
Text Input improvements, added cursor and ability to set minimal length
thanks to WillyJL
2023-05-14 01:44:00 +03:00
gid9798
d87df3e6c2 Change custom btn sending logic 2023-05-14 01:34:43 +03:00
MX
849f14e480
Bad BT plugin, Submenu locked elements, API updates, etc.
Thanks to WillyJL, ClaraCrazy, and XFW contributors
2023-05-13 00:14:22 +03:00
MX
4693af74e7
Update API, remove direct calls of stream buffers 2023-05-09 18:44:17 +03:00
MX
face4bd3c7
Merge branch 'fz-dev' into dev 2023-05-09 18:28:46 +03:00
g3gg0.de
e1c6e78b2e
added DigitalSequence and PulseReader (#2070)
* added DigitalSequence to chain multiple DigitalSignals
added PulseReader for hardware assisted digital signal sampling
* added send_time option to start a signal at a specific DWT->CYCCNT value
* fixed linter errors and undone function renaming
* fixed renaming
* flagged functions in api_symbols.csv
* allow gpio field to stay uninitialized in digital_signal_prepare_arr()
* fix test cases to match (expected) implementation
* pulse_reader: build as static library
Signed-off-by: g3gg0.de <git@g3gg0.de>
* fix starting level detection in pulse_reader
* added unit test for pulse_reader
* change pulse reader test timings to 1, 10 and 100 ms
* fine tuned timings for pulse_reader test
* pulse_reader_stop now deinits GPIO as recommended by @gornekich
* ran format_py
* pulse_reader: remove from API, allow to link with faps
Signed-off-by: g3gg0.de <git@g3gg0.de>
* remove unit test for pulse_reader again
* pulse_reader: add call to set GPIO pull direction
* make structures private, add C implementation of digital_signal_update_dma()
* digital_signal/pulse_reader: allow parameters for free to be NULL
* digital_signal: show unoptimized and optimized code for digital_signal_update_dma() next to each other
* pulse_reader: further optimize assembly code
* digital_signal: reduce code complexity of digital_signal_update_dma() by only reconfiguring DMA2
* digital_signal: remove assembly code, limiting the performance but increasing portability
* added recovery if the timer already expired
* digital_signal: fix memory leak
* digital_signal: keep lock until all DMA transfers have finished
* DigitalSequence: fix issues with concatenation of same levels and spurious bit flips
* DigitalSignal: use cyclic DMA buffer for sequences
* update api_symbols.csv
* Update api_symbols.csv for f18 target
* Patches from @gornekich to fix linter warnings.
* Remove some redundant if checks
* Remove some magic numbers and reformat.
* Remove forced terminating edge.

Signed-off-by: g3gg0.de <git@g3gg0.de>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: Tiernan Messmer <tiernan.messmer@gmail.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-05-09 09:55:17 +09:00
hedger
241b4ef6e4
[FL-3299] furi_crash: added C2 status; added fw-version gdb command (#2638)
* furi_crash: added C2 status
* debug: Added "fw-version" gdb command; vscode: updated configuration to use new command
* debug: added fw-info command to debug_other session
* Toolbox: versioned structure for Version
* debug: fw-version: no longer needs an ELF file loaded
* debug: flipperversion: removed unused variable
* debug_other: print running fw version

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-05-09 07:31:39 +09:00
hedger
268b88be0d
[FL-3285] Removed STM32CubeWB module (#2608)
* libs: removed STM32CubeWB module; split cube into 3 submodules
* fixed f18 version
* fbt: options: fixed expected stack version
* pvs: updated for new paths
* fbt: ep: multithreaded submodule update
* libs: stm32cubewb: fixed duplicate include path; renamed to stm32wb; codeowners: updated paths; docs: updated paths
* pvs: updated paths
* libs: added cmsis_core from ARM sources, v.5.4.0, from https://github.com/ARM-software/CMSIS_5/tree/develop/CMSIS/Core/Include
* Updated stm32wb_copro structure
* PVS: exclude cmsis core from analysis

---------

Co-authored-by: あく <alleteam@gmail.com>
2023-05-09 06:30:33 +09:00
MX
6b186622cb
Merge branch 'fz-dev' into dev 2023-05-05 16:10:00 +03:00
あく
914129a0d9
[FL-3289] Various Furi/FuriHal bug fixes and improvements (#2637)
* Furi: properly handle thread free before TCB scrapping, add furi_free - more invasive version of free to memmgr. FuriHal: add DWT comparator api to cortex. Updater, RPC: refactor various thread shanenigans. Code cleanup.
* Rollback free macros and related changes
2023-05-05 21:40:55 +09:00
Sergey Gavrilov
ac05387803
[FL-3270] Loader refactoring, part 1 (#2593)
* Loader: menu part
* Settings: remove unused loader api
* Desktop: get loader from record_open
* CLI: remove unneeded loader api
* gitignore: ignore .old files
* Loader: now really a service
* Loader: working service prototype
* Loader: cli, system start hooks
* CI/CD: make happy
* Loader: autorun
* Loader: lock and unlock
* Loader: rearrange code
* Gui, module menu: fix memleak
* Updater test: add timeout
* added update timeouts and max run duration
* Github: revert updater test workflow changes
* Loader: less missleading message in info cli command

Co-authored-by: doomwastaken <k.volkov@flipperdevices.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-05-04 17:46:00 +03:00
Sergey Gavrilov
a7d1ec03e8
[FL-3270] Loader refactoring, part 1 (#2593)
* Loader: menu part
* Settings: remove unused loader api
* Desktop: get loader from record_open
* CLI: remove unneeded loader api
* gitignore: ignore .old files
* Loader: now really a service
* Loader: working service prototype
* Loader: cli, system start hooks
* CI/CD: make happy
* Loader: autorun
* Loader: lock and unlock
* Loader: rearrange code
* Gui, module menu: fix memleak
* Updater test: add timeout
* added update timeouts and max run duration
* Github: revert updater test workflow changes
* Loader: less missleading message in info cli command

Co-authored-by: doomwastaken <k.volkov@flipperdevices.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-05-04 12:48:13 +09:00
MX
cae4790ef2
Merge branch 'fz-dev' into dev 2023-05-03 17:15:59 +03:00
hedger
c3ececcf96
[FL-3174] Dolphin builder in ufbt; minor ufbt/fbt improvements (#2601)
* ufbt: added "dolphin_ext" target (expects "external" subfolder in cwd with dolphin assets); cleaned up unused code
* ufbt: codestyle fixes
* scripts: fixed style according to ruff linter
* scripts: additional cleanup & codestyle fixes
* github: pass target hw code when installing local SDK with ufbt
* ufbt: added error message for missing folder in dolphin builder
* scripts: more linter fixes
* sdk: added flipper_format_stream; ufbt: support for --extra-define
* fbt: reduced amount of global defines
* scripts, fbt: rearranged imports

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-05-03 14:48:49 +09:00
hedger
c5b460b416
[FL-3260] Added API version to device info (#2611)
* hal: device_info: added API version to "firmware.api.major" & "firmware.api.minor"
* FuriHal: bump device info version

Co-authored-by: あく <alleteam@gmail.com>
2023-05-03 12:58:59 +09:00
あく
23c946ef50
Move gauge calibration to separate header, add f18 calibration (#2622) 2023-05-03 06:08:41 +04:00
hedger
1ef70c0bb4
[FL-3280] cubewb: downgraded to v1.15.0 (#2605)
* cubewb: downgraded to v1.15.0
* hal: updated f18 symbols to match LL
* hal: flash: use furi_hal_cortex_timer for timeouts
* scripts: fixed cube version validation from config file
* hal: flash: added 3 seconds timeout when waiting for C2 to unlock flash controller. On timeout, triggers furi_check
* nfc: fixed missing interrupt setup on multiple platformSetIrqCallback() invocations
* hal: gpio: don't trigger furi_check on furi_hal_gpio_add_int_callback() with same parameters
* Reverted NFC fixes - will be in a separate PR
* scripts: storage: fixed exception handler for paths
2023-04-24 16:19:36 +09:00
MX
8cb3b67295
Fix external radio SPI handlers 2023-04-24 01:56:43 +03:00
hedger
3561f79cf4
cubewb: downgraded to v1.15.0 2023-04-22 20:42:27 +03:00
MX
7514bc8b49
Final updates 2023-04-21 15:55:06 +03:00
MX
1bb3ab8715
New option to save signal names with timestamps 2023-04-21 06:46:10 +03:00
MX
57d9cdb3c4
Merge branch 'fz-dev' into dev 2023-04-20 16:08:09 +03:00
hedger
4d015a1106
[FL-3271] cubewb: updated to v1.16.0 (#2595)
* cubewb: updated project to v1.16.0
* hal: updated api_symbols for f18
* FuriHal: add missing enterprise sleep and insomnia
* FuriHal: slightly more paranoic sleep mode

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-04-20 21:57:51 +09:00
MX
2de476b11d
Merge branch 'fz-dev' into dev 2023-04-19 17:03:56 +03:00
Astra
2c7eb53cac
[FL-2505] Active RPC session icon (#2583)
* Active RPC session icon
* Add RpcOwner, don't show the RPC icon when the session was started from BLE
* Fix rpc_test and f18 api
* Bump API version

Co-authored-by: あく <alleteam@gmail.com>
2023-04-19 17:30:26 +09:00
MX
a304e9c3fa
Revert "Revert Deep Sleep due to BLE issues and other random freezes"
This reverts commit addf909287.
2023-04-18 14:35:32 +03:00
MX
addf909287
Revert Deep Sleep due to BLE issues and other random freezes
Waiting for proper fix
2023-04-14 14:45:35 +03:00
MX
6b70e37ae3
Merge branch 'fz-dev' into dev 2023-04-13 20:25:26 +03:00
Georgii Surkov
37fb330b36
[FL-3226] Deep Sleep Idle (#2569)
* Improve RNG error handling
* Sync RTC shadow registers on Stop mode exit
* Implement working STOP2 mode
* Fix formatting
* FuriHal: disable SWD pins if debug is disabled
* Power: cleanup battery info view, handle zero current report from gauge
* Fbt: add command line argument for extra global defines
* FuriHal: cleanup debug defines in power and os, drop deep_insomnia counter.
* Add a setting to disable deep sleep
* Clean up furi_hal_power
* FuriHal,FapLoader,Debug: implement debug in stop mode, workaround resume in stop
* FuriHal: document OS and power subsystems debugging
* Furi: enable debug interface on crash

---------

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-04-14 00:47:38 +10:00
MX
114e8d5b6a
Merge branch 'fz-dev' into dev 2023-04-10 18:41:22 +03:00
あく
0d8518d31d
[FL-3232] FuriHal: fix gpio naming and add explicit pulls for vibro, speaker and ir_tx (#2565)
* FuriHal: fix gpio naming and add explicit pulls for vibro, speaker and ir_tx
* Github: workflow event debug print
* Github: proper PR head commit SHA extraction in get_env.py
2023-04-06 19:06:19 +10:00
MX
53f6ae7a39
Fix after-merge issues 2023-04-06 07:20:56 +03:00
MX
aac7654ca3
Merge branch 'fz-dev' into dev 2023-04-06 07:14:48 +03:00
Skorpionm
d1ad924216
[AVR_ISP]: add AVR ISP Programmer FAP (#2475)
* [AVR_ISP]: add AVR ISP Programmer FAP
* [AVR_ISP]: add auto detect AVR chip
* [AVR_ISP]: fix auto detect chip
* [AVR_ISP]: fix fast write flash
* AVR_ISP: auto set SPI speed
* AVR_ISP: add clock 4Mhz on &gpio_ext_pa4
* AVR_ISP: fix "[CRASH][ISR 4] NULL pointer dereference" with no AVR chip connected
* AVR_ISP: add AVR ISP Reader
* AVR_ISP: add read and check I32HEX file
* AVR_ISP: add write eerom, flash, fuse, lock byte
* AVR_ISP: add gui Reader, Writer
* Github: unshallow on decontamination
* AVR_ISP: move to external
* API: fix api_symbols
* AVR_ISP: add wiring scene
* GUI: model mutex FuriMutexTypeNormal -> FuriMutexTypeRecursive
* AVR_ISP: add chip_detect view
* AVR_ISP: refactoring gui ISP Programmer
* AVR_ISP: add gui "Dump AVR"
* AVR_ISP: add gui "Flash AVR"
* AVR_ISP: fix navigation gui
* GUI: model mutex FuriMutexTypeRecursive -> FuriMutexTypeNormal
* AVR_ISP: fix conflicts
* AVR_ISP: fix build
* AVR_ISP: delete images
* AVR_ISP: add images
* AVR_ISP: fix gui
* AVR_ISP: fix stuck in navigation
* AVR_ISP:  changing the Fuse bit recording logic
* AVR_ISP: fix read/write chips with memory greater than 64Kb
* AVR_ISP: fix auto set speed SPI
* AVR_ISP: fix gui
* ISP: switching on +5 volts to an external GPIO

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-04-06 12:13:30 +08:00
Astra
b4ceb55fd2
[FL-2524] Graphics cleanup and icon rotation (#2561)
* Canvas with rotation
* Full icon rotation, cleanup of unused resources
* F18 API update
* Bitmap draw cleanup
* More cleaning up
* Migrate recovery and DFU to canvas
* Make the internal draw function static
* Remove all calls to u8g2_DrawXBM

Co-authored-by: あく <alleteam@gmail.com>
2023-04-06 11:36:12 +08:00
MX
cb12369b1c
Merge branch 'dev' into custom-buttons 2023-04-01 21:59:22 +03:00
MX
bd78c3b3ea
OFW PR 2475: AVR ISP Programmer FAP by @Skorpionm
merging before OFW, more testing needed!
2023-04-01 21:40:37 +03:00
gid9798
5603ed7ebb Transferring and combining the functionality of "custom buttons" into a separate file. 2023-04-01 21:37:04 +03:00
MX
9165b819f4
fix merge issues 2023-03-22 22:04:04 +03:00
MX
795c8eeef7
Merge branch 'fz-dev' into dev 2023-03-22 21:13:39 +03:00
あく
7bf0a4786c
[FL-3152] Screen streaming improvements (#2498)
* Rpc: reserve some bandwidth when screen streaming
* Move furi_hal_compress to toolbox/comporess
* Lib: heatshrink as external submodule, compile warnings fixes, better buffer management
* Lib: cleanup compressor definitions
* Rpc: add canvas orientation support
* Format Sources
2023-03-23 03:00:48 +10:00
MX
a81b794475
Merge branch 'fz-dev' into dev 2023-03-22 18:36:59 +03:00
Georgii Surkov
8b224ecb15
[FL-3179] 1-Wire Overdrive Mode (#2522)
* Separate ibutton to its own module, add one_wire to f18
* Move onewire cli to a separate app
* Add definitions for normal and overdrive timings
* Update api definitions
* Add rough overdrive timings definition for onewire emulation
* Remove one_wire_host_timing.h
* Add rough overdrive timings for onewire host
* Improve overdrive mode
* Working overdrive mode from flipper to flipper
* Update thermometer example app
* Turn on otg power when running thermometer example app
* Implement reset overdrive switching
* Always exit out of overdrive mode
* Improve overdrive timings
* Fix typos
* Fix reset behaviour
* Use overdrive mode everywhere in DS1996
* Improve comments
* Bump API version

Co-authored-by: あく <alleteam@gmail.com>
2023-03-22 23:54:06 +09:00
MX
0d03039c19
Merge branch 'fz-dev' into dev 2023-03-21 18:05:13 +03:00
Nikolay Minaylov
ce50b09b28
Remove hmac_sha256 from public API (#2519)
Co-authored-by: あく <alleteam@gmail.com>
2023-03-21 21:29:54 +09:00
MX
5660111b28
Merge branch 'fz-dev' into dev 2023-03-20 20:04:22 +03:00
Georgii Surkov
0917494a80
[FL-3168] Add one_wire lib to f18, separate ibutton (#2509)
* Separate ibutton to its own module, add one_wire to f18
* Move onewire cli to a separate app

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-03-21 01:23:17 +09:00
MX
2cefc9aab0
Security+ 2.0 custom buttons 2023-03-16 18:14:39 +03:00
MX
dd99c22792
Merge branch 'fz-dev' into dev 2023-03-14 19:55:16 +03:00
hedger
53435579b3
[FL-3097] fbt, faploader: minimal app module implementation (#2420)
* fbt, faploader: minimal app module implementation
* faploader, libs: moved API hashtable core to flipper_application
* example: compound api
* lib: flipper_application: naming fixes, doxygen comments
* fbt: changed `requires` manifest field behavior for app extensions
* examples: refactored plugin apps; faploader: changed new API naming; fbt: changed PLUGIN app type meaning
* loader: dropped support for debug apps & plugin menus
* moved applications/plugins -> applications/external
* Restored x bit on chiplist_convert.py
* git: fixed free-dap submodule path
* pvs: updated submodule paths
* examples: example_advanced_plugins.c: removed potential memory leak on errors
* examples: example_plugins: refined requires
* fbt: not deploying app modules for debug/sample apps; extra validation for .PLUGIN-type apps
* apps: removed cdefines for external apps
* fbt: moved ext app path definition
* fbt: reworked fap_dist handling; f18: synced api_symbols.csv
* fbt: removed resources_paths for extapps
* scripts: reworked storage
* scripts: reworked runfap.py & selfupdate.py to use new api
* wip: fal runner
* fbt: moved file packaging into separate module
* scripts: storage: fixes
* scripts: storage: minor fixes for new api
* fbt: changed internal artifact storage details for external apps
* scripts: storage: additional fixes and better error reporting; examples: using APP_DATA_PATH()
* fbt, scripts: reworked launch_app to deploy plugins; moved old runfap.py to distfap.py
* fbt: extra check for plugins descriptors
* fbt: additional checks in emitter
* fbt: better info message on SDK rebuild
* scripts: removed requirements.txt
* loader: removed remnants of plugins & debug menus
* post-review fixes
2023-03-14 23:29:28 +09:00
Sergey Gavrilov
c5db1aaaf5
Revert "Revert "Embed assets in elf file (#2466)""
This reverts commit a04c01a2fd.
2023-03-10 13:57:44 +03:00
Sergey Gavrilov
a04c01a2fd
Revert "Embed assets in elf file (#2466)"
This reverts commit 4fd043398a.
2023-03-10 01:43:46 +03:00
MX
68fed0e03d
Merge branch 'fz-dev' into dev 2023-03-09 21:17:57 +03:00
Sergey Gavrilov
4fd043398a
Embed assets in elf file (#2466)
* FBT: file_assets generator
* Elf file: process manifest section externally
* FBT, file_assets generator: add assets signature
* Storage: assets path alias
* Flipper application: assets unpacker
* Apps, Storage: use '/data' alias for apps data
* Storage: copy file to file
* Assets: log flag, fixes
* Update f18 api
* Assets: asserts
* Assets: fix signature_data check
* App assets: example
* Example assets: fix folder structure in readme
* Assets: fix error handling
* Assets builder: use ansii instead of utf-8, use .fapassets section instead of .fapfiles, add assets path to signature
* Elf file: comment strange places
* Storage: totaly optimized storage_file_copy_to_file
2023-03-10 01:01:53 +10:00
MX
1249ce9b94
Option to disable auto 5v power for external radio module
Now you can use 3.3v modules without wasting a battery (bonus a bit low noise on power line)
2023-03-09 04:02:31 +03:00
MX
7a413f390d
NFC Magic fix - reinit nfc at start 2023-03-09 02:18:51 +03:00
MX
ab91dc1882
External module 5v power issues fixes 2023-03-08 01:09:17 +03:00
MX
cad2f2a065
Merge branch 'fz-dev' into dev 2023-03-08 00:46:38 +03:00
AloneLiberty
eb5dae1cda
NFC: Support reading Mifare Classic key B from sector trailer, reading sector with B key where A key can't read block, Nfc Magic app not using NFC folder by default (in file select) (#2437)
* NFC: Support reading Mifare Classic key B from sector trailer and reusing it for other sectors
* NFC: Fix my pointer typo
* NFC: Fix reading sector with B key where A key can't read block (fixes #2413) and fix Nfc Magic app not using NFC folder by default (in file select)
* NFC: Fix strange bug

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-03-08 03:33:59 +09:00
MX
f0471a62e5
Merge branch 'fz-dev' into dev 2023-03-07 16:45:40 +03:00
Astra
9819306731
[Fl-3147] Remove ValueMutex (#2467)
* Move keypad_test to furi_mutex
* Move text_box_test to furi_mutex
* Move snake_game to furi_mutex
* Remove ValueMutex completely
* Snake Game: simplify code and fix PVS warning
* F18: sync API symbols

Co-authored-by: あく <alleteam@gmail.com>
2023-03-07 22:09:45 +09:00
MX
b90060e574
Merge branch 'fz-dev' into dev 2023-03-03 23:22:40 +03:00
Skorpionm
72ca6b25e9
[FL-3106] SubGhz: better and more verbose error handling in protocols, stricter CAME validation (#2443)
* SubGhz: add error protocol
* WS: add error protocol
* SubGhz: error processing
* SubGhz: more stringent CAME protocol restrictions
* SubGhz: fix header duration CAME protocol
* SubGhz: delete comments
* SubGhz: sync SubGhzProtocolStatus with FuriStatus
* SubGhz: update documentation and bump api_version

Co-authored-by: あく <alleteam@gmail.com>
2023-03-04 00:09:13 +09:00
MX
f3ab4bc292
Merge branch 'fz-dev' into dev 2023-03-02 21:18:35 +03:00
Georgii Surkov
806428efeb
[FL-3070] iButton system and app refactoring (#2388)
* Add 1-wire thermometer example app stub
* Working 1-wire thermometer app
* Refactor app to use threads
* Clean up code, add comments
* Add CRC checking
* Increase update period
* Fix error in fbt
* Revert the old update period
* Use settable pin in onewire_host
* Use settable pin for onewire_slave
* Clear EXTI flag after callback, make private methods static in onewire_slave
* Do not hardcode GPIO pin number
* Remove iButton hal from furi_hal_rfid
* Remove most of furi_hal_ibutton
* Add some of furi_hal_ibutton back
* Slightly neater code
* Update CODEOWNERS
* Add furi_hal_gpio_get_ext_pin_number
* Create README.md
* Temporary get Metakom and Cyfral keys out of the way
* Better enum name
* Syncing work, does not compile
* Syncing work, now compiles
* Working read impl for DS1990 and DS1992
* Add the ability to display extended key data
* Get rid of DialogEx
* Add save and load API
* Better iButtonKey encapsulation
* Fix crash
* Load key code boilerplate
* More load key code boilerplate
* Minor code cleanup
* Implement loading and saving DS1990 keys
* Implement the Info scene
* Implement loading & saving for DS1992
* Implement read error scene stub
* Implement delete confirmation screen
* Better error messages (protocol-dependent)
* Minor old code cleanup
* Remove iButtonDevice, add command callback to iButtonSlave
* Implement draft emulation for DS1990
* Better emulation for DS1990
* Initial emulation implementation for DS1992
* Better common command definitions
* Use common submenu callback, add protocol list
* Improve ViewData screen
* Improve scene_add_type
* Add stubs for write functionality
* Improve naming consistency
* Implement writing a DS1992 onto another one
* Improve DS1992 write code
* Improve DS1992 write code once more
* Prepare write_blank for DS1990, delete ibutton_writer
* Implement writing DS1990 onto blanks
* Fix reading DS1990
* Partially implement writing DS1992 onto blanks
* Implement GUI for writing keys
* Implement GUI for emulating keys
* Reduce memory usage for pretty_format
* Automatically truncate data more than 256 bytes
* Initial implementation of DS1996 (not tested)
* Fix crash due to missing virtual function
* Improve emulation code
* Improve DS1992 emulation code
* Correct return value for onewire_slave_send
* Correct return value for onewire_slave_receive
* Implement emulation for DS1992 & DS1996
* Better constant names
* Simplify & optimise the emulation code
* Remove duplicate code
* Add skip rom command emulation
* Show loading animation for large keys
* Implement manual adding & editing of keys
* Use buffered file streams to speed up saving & loading
* Reset key name before adding a new one
* Sync a buffered file stream before saving
* Use the DSGeneric protocol as a fallback option
* Implement emulation via RPC
* Refactor iButton code in preparation for comparator keys
* Refactor iButton code in preparation for comparator keys once more
* Make some functions static
* Make protocols not rely on one_wire classes
* Improve ProtocolDict usage
* Improve ProtocolDict usage more
* Implement reading Metakom & Cyfral keys
* Rename some files
* Better file structure
* Implement a unified interface for misc protocols
* Implement a unified interface for dallas protocols
* Concrete types for Dallas protocols
* Implement a unified interface for all key types
* Improved type naming
* Improved private types
* Proper types in protocol definitions
* Implement emulation for Cyfral & Metakom keys
* Implement save&load for Metakom & Cyfral keys
* Better type names
* Rename files, better names
* Allocate iButtonProtocols like a normal class
* Reset the key each time the start scene is selected
* Improve comments and constants
* Add ibutton_protocols to SDK headers
* Add ibutton_key to SDK headers
* Add ibutton_key to SDK headers
* Implement reading via cli
* Implement emulation via cli
* Implement writing Dallas blanks via cli
* Correctly revert the editing if cancelled by the user
* Correct committing mishap
* Elide the long text on the info screen
* Change key name for data in Misc keys
* Update iButtonFileFormat.md
* Remember the key's folder
* Save menu position in ReadKeyMenu and SavedKeyMenu
* Correct use of preselected path in file browser

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-03-02 22:23:33 +09:00
Sergey Gavrilov
777a4d109d
[FL-3055] Getter for application data path (#2181)
* Threads: application id
* Unit tests: appsdata getter test
* Unit tests: moar test cases for appsdata getter
* Unit tests: remove folders after test
* Storage: dir_is_exist, migrate, + unit_tests
* Plugins: migration
* Storage: common_exists, moar unit_tests 4 "common_migrate", "common_migrate" and "common_merge" bugfixes
* Storage: use FuriString for path handling
* Storage API: send caller thread id with path
* Storage: remove StorageType field in storage file list
* Storage: simplify processing
* Storage API: send caller thread id with path everywhere
* Storage: /app alias, unit tests and path creation
* Storage, path helper: remove unused
* Examples: app data example
* App plugins: use new VFS path
* Storage: file_info_is_dir
* Services: handle alias if the service accepts a path.
* App plugins: fixes
* Make PVS happy
* Storage: fix storage_merge_recursive
* Storage: rename process_aliases to resolve_path. Rename APPS_DATA to APP_DATA.
* Apps: use predefined macro instead of raw paths. Example Apps Data: README fixes.
* Storage: rename storage_common_resolve_path to storage_common_resolve_path_and_ensure_app_directory
* Api: fix version
* Storage: rename alias message
* Storage: do not create app folders in path resolving process in certain cases.

---------

Co-authored-by: Astra <93453568+Astrrra@users.noreply.github.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-03-02 03:57:27 +10:00
MX
9c9688dd5b
Nice One manual adding support 2023-02-28 00:41:14 +03:00
MX
2c95a7cba4
Somfy Telis - Custom buttons + Prog mode 2023-02-28 00:02:30 +03:00
MX
182296d8af
Nice flor s - custom buttons 2023-02-27 01:13:21 +03:00
MX
5b0c5a82c0
Merge branch 'fz-dev' into dev 2023-02-26 21:24:38 +03:00
あく
b054912167
F8, F18: bump API symbols version (#2435) 2023-02-27 03:39:26 +10:00
Shane Synan
09edf66a2a
FuriHal, Power, UnitTests: fix, rename battery charging voltage limit API (#2228)
* FuriHal, Power, UnitTests: rename battery charge voltage limit API
* FuriHal: bump API, power info major versions
* Power: fix battery charge voltage limit for > 7.935v

Co-authored-by: あく <alleteam@gmail.com>
2023-02-27 02:23:39 +09:00
MX
b53924c27a
Infrared debug settings - output pin 2023-02-26 05:23:26 +03:00
MX
ba09da107a
Worst code ever
subghz imporvements

- hold right to delete signal in read
- extra buttons in saved signals
- ability to change counter increase value in debug
2023-02-25 22:28:35 +03:00
MX
7d4bffb575
Merge branch 'fz-dev' into dev 2023-02-21 03:00:48 +03:00
Astra
b15c4afea1
[FL-3122] Re-init NFC when starting the worker (#2399)
* Re-init NFC when starting the worker
* FuriHal: cleanup nfc init/deinit sequence
* FuriHal: a little bit more defensive nfc init

Co-authored-by: あく <alleteam@gmail.com>
2023-02-20 23:44:03 +09:00
MX
f4af57d15a
Revert "Temp fix of broken ibutton emulation"
This reverts commit 1831902fbd.
2023-02-13 19:29:48 +03:00
MX
1831902fbd
Temp fix of broken ibutton emulation
Reverted lib changes and added old api

TODO: Find what causes that issue, issue also present in official dev branch
2023-02-11 21:09:39 +03:00
MX
bd2d7bf42f
Small fixes 2023-02-10 22:48:35 +03:00
MX
e9df7c9b72
Merge pull request #322 from assasinfil/alutech_at_4n
Alutech at 4n
2023-02-10 22:33:04 +03:00
assasinfil
727c21d60a
Merge branch 'dev' into kinggates_stylo_4k 2023-02-09 22:47:53 +03:00
assasinfil
2bd80f510a
Init encoder 2023-02-09 22:45:02 +03:00
MX
539c4e2dd0
Fixes & imporvements
Use our custom icon for Bin RAW
2023-02-09 17:49:28 +03:00
MX
b9351649ed
Merge branch 'fz-dev' into dev 2023-02-09 17:48:50 +03:00
MX
ba36f4672c
Throw away Kostily & Velosipedy
Ne bag a ficha, bolshe ne nuzhna
2023-02-09 17:21:40 +03:00
assasinfil
e17877b6a1
Kinggates stylo 4k tx realization
Co-authored-by: MX <10697207+xMasterX@users.noreply.github.com>
2023-02-09 12:57:22 +03:00
Petr Portnov | PROgrm_JARvis
4265057ee8
feat: add missing const qualifiers (#2233)
* feat: make `ViewPort` getters const
* feat: make tx-buffers const
* feat: make `canvas_get_buffer_size` const
* feat: make `canvas` methods const
* feat: make `icon_animation` methods const
* feat: make `scene_manager` methods const
* feat: make `loader` method const
* feat: make `canvas_get_font_params` const

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-02-09 13:58:01 +09:00
Skorpionm
163be139eb
SubGhz: add protocol BinRAW (binarization of data quantized by the minimum correlated duration) (#2322)
* SubGhz: add protocol DataRAW (binarization of data quantized by the minimum correlated duration)
* SubGhz: fix name history
* SubGhz: add encoder Data_RAW protocol
* SubGhz: decreasing the size of the LevelDuration structure
* SubGhz: history, added check that there is free RAM
* SubGhz: checking for free memory, support to pass without gap
* SubGhz: add running average to average the result, auto cut noise at the end of a burst
* SubGhz: support for repeating sequences
* SubGhz: fix secplus_v2 decoder
* SubGhz: bin_RAW fix add history
* SubGhz: add debug
* SubGhz: debug refactoring
* FURI_LOG: add FURI_LOG_RAW_x formatted string output like printf
* SubGhz: fix new FURI_LOG metod
* FURI_LOG: fix unit test
* SubGhz: add enable/disable BinRAW protocol decoding
* SubGhz: fix PVS
* SubGhz: forcibly turn off the speaker when exiting SubGhz
* SubGhz: adaptive adjustment to the noise level

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-02-09 13:48:06 +09:00
MX
6f44900e05
Update API symbols 2023-02-08 21:24:21 +03:00
MX
ed78c4ca04
Fixes 2023-02-08 20:49:06 +03:00
MX
bbc1ba62fc
Merge branch 'fz-dev' into dev 2023-02-08 20:12:10 +03:00
Skorpionm
31259d5304
[FL-3091] SubGhz: add protocol Alutech at-4n (#2352)
* GubGhz: add protocol Alutech at-4n
* SubGhz: fix syntax
* SubGhz: fix subghz_protocol_decoder_alutech_at_4n_get_hash_data
* SubGhz: add unit test alutech at-4n
* SubGhz: add name key

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-02-09 01:59:49 +09:00
MX
0dccbe28bb
Merge branch 'fz-dev' into dev 2023-02-08 17:15:17 +03:00
Skorpionm
99253a0e28
[FL-3093, FL-3087] SubGhz: Fix Raw write, add short duration filter setting (#2300)
* SubGhz: Fix recording RAW files, sometimes could not start at a high level
* SubGhz:  subghz_worker, add short duration filter setting
* SubGhz: capture raw timings in cli. Furi: clear pending interrupts on ISR set/reset
* SubGhz: fix start  duration in furi_hal_subghz_start_async_rx
* [FL-3093] SubGhz: hopping issue in some regions
* [FL-3087] SubGhz: fix delete-ok issue
* SubGhz: remove copypasta from rx_raw cli command

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-02-08 22:20:42 +09:00
LTVA1
23ecc186c2
Custom font set function (#2261)
* custom font set function
* update API symbols
* add example of custom font usage
* delete u8g2 dependency in example custom font
* rename to canvas_set_custom_u8g2_font
* now change the name in ALL places

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: hedger <hedger@users.noreply.github.com>
2023-02-08 18:26:17 +09:00
MX
b7c2b9eff1
Change API version back 2023-02-08 12:23:04 +03:00
MX
81316255f9
Fix after merge issues pt1 2023-02-08 12:22:11 +03:00
MX
6c768f2019
Merge branch 'fz-dev' into dev 2023-02-08 12:09:57 +03:00
Georgii Surkov
7a3a1aaf0d
[FL-3057] Allow use of any suitable pin for 1-Wire devices (#2350)
* Add 1-wire thermometer example app stub
* Working 1-wire thermometer app
* Refactor app to use threads
* Clean up code, add comments
* Add CRC checking
* Increase update period
* Fix error in fbt
* Revert the old update period
* Use settable pin in onewire_host
* Use settable pin for onewire_slave
* Clear EXTI flag after callback, make private methods static in onewire_slave
* Do not hardcode GPIO pin number
* Remove iButton hal from furi_hal_rfid
* Remove most of furi_hal_ibutton
* Add some of furi_hal_ibutton back
* Slightly neater code
* Fix formatting
* Fix PVS-studio warnings
* Update CODEOWNERS
* Add furi_hal_gpio_get_ext_pin_number
* Create README.md
* FuriHal: move furi_hal_gpio_get_ext_pin_number to resources

---------

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-02-08 14:40:44 +09:00
Sergey Gavrilov
e3d473bf42
[FL-2435] SD over SPI improvements (#2204)
* get rid of BSP layer
* sector_cache: init in any case
* new sd-spi driver: init
* Delete stm32_adafruit_sd.c.old
* Delete spi_sd_hal.c.old
* Storage: faster api lock primitive
* Threads: priority control
* Flags: correct error code
* Spi: dma mode
* SD-card: use DMA for big blocks of SPI data
* Fix wrong SD_TOKEN_START_DATA_MULTIPLE_BLOCK_WRITE value
* do not memset cache if it is NULL
* remove top-level timeouts
* sd hal: disable debug
* Furi HAL: DMA
* Furi HAL RFID: use furi_hal_dma
* Furi HAL DMA: tests
* Furi HAL DMA: docs
* rollback "Furi HAL RFID: use furi_hal_dma"
* 4 channels taken from DMA manager for core HAL.
* Furi HAL DMA: live fast, die young
* RPC tests: increase message buffer
* SPI HAL: use second DMA instance
* sd hal: new CID getter
* SPI hal: use non-DMA version if kernel is not running
* IR hal: generalize DMA definition
* storage: add CID data to sd info
* RFID hal: generalize DMA definition
* SUBGHZ hal: generalize DMA definition. Core hal moved to DMA2.
* Storage: small optimizations, removal of extra mutex
* Storage: redundant macro
* SD hal: more timeouts
* SPI hal: DMA init
* Target: make furi_hal_spi_dma_init symbol private
* Update F18 api symbols

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-02-08 13:41:22 +09:00
hedger
224d0aefe4
[FL-2733] multitarget support for fbt (#2209)
* First part of multitarget porting
* Delete firmware/targets/f7/Inc directory
* Delete firmware/targets/f7/Src directory
* gpio: cli fixes; about: using version from HAL
* sdk: path fixes
* gui: include fixes
* applications: more include fixes
* gpio: ported to new apis
* hal: introduced furi_hal_target_hw.h; libs: added one_wire
* hal: f18 target
* github: also build f18 by default
* typo fix
* fbt: removed extra checks on app list
* api: explicitly bundling select mlib headers with sdk
* hal: f18: changed INPUT_DEBOUNCE_TICKS to match f7
* cleaned up commented out code
* docs: added info on hw targets
* docs: targets: formatting fixes
* f18: fixed link error
* f18: fixed API version to match f7
* docs: hardware: minor wording fixes
* faploader: added fw target check
* docs: typo fixes
* github: not building komi target by default
* fbt: support for `targets` field for built-in apps
* github: reworked build flow to exclude app_set; fbt: removed komi-specific appset; added additional target buildset check
* github: fixed build; nfc: fixed pvs warnings
* attempt to fix target id
* f7, f18: removed certain HAL function from public API
* apps: debug: enabled bt_debug_app for f18
* Targets: backport input pins configuration routine from F7 to F18

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-02-08 01:33:05 +09:00
MX
0ee04fb968
Merge branch 'fz-dev' into dev 2023-02-07 18:36:02 +03:00
Krzysztof Zdulski
d035872cf6
nfc: Add mifare classic value block commands (#2317)
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2023-02-07 12:21:25 +09:00
MX
cc8066d9a0
???
for some reason fbt says it should be removed
need to find why it differs from ofw
2023-02-04 16:09:40 +03:00
MX
425f8f0254
Merge branch 'fz-dev' into dev 2023-02-03 23:45:57 +03:00
あく
52680fd14e
FreeRTOS: update to 10.5.1 (#2353) 2023-02-04 04:09:20 +10:00
Victor
5458157924 Added external CC1101 support 2023-02-02 22:47:50 +03:00
MX
ed4b2b3362
Merge remote-tracking branch 'LTVA1/patch-custom-font' into dev 2023-02-02 14:27:17 +03:00
MX
16f8f2c2df
Merge branch 'fz-dev' into dev 2023-02-02 11:54:20 +03:00
あく
bf2ab1f4d5
Merge branch 'dev' into patch-custom-font 2023-01-30 15:30:54 +07:00
Milk-Cool
b1496ee9bd
Furi: getter for current thread stdout write callback (#2344) 2023-01-30 14:54:15 +07:00
Petr Portnov | PROgrm_JARvis
f5fe0ff694
Furi: make furi_is_irq_context public (#2276)
* Furi: make `furi_is_irq_context` public
* Furi: proper name and documentation for furi_kernel_is_irq_or_masked.
* Target: bump symbol table version
* Furi: proper doxygen context for warnings

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-01-29 17:12:24 +07:00
Emily Trau
24a23e5dc7
debug apps: made runnable as .faps; sdk: resolved additional APIs in use by faps (#2333)
* sdk: resolve additional APIs in use by faps
* debug tools: fixed battery_test, bt_debug, display_test, rpc_debug

Co-authored-by: hedger <hedger@nanode.su>
Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2023-01-27 16:41:55 +07:00
Giacomo Ferretti
126a9efd09
NFC: change from int8_t to uint8_t (#2302)
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2023-01-27 15:21:52 +07:00
LTVA1
34ff250eea rename to canvas_set_custom_u8g2_font 2023-01-25 08:18:32 +03:00
MX
792b035cac
Not bumping api version 2023-01-19 20:03:02 +03:00
assasinfil
3dd76f5c2f
Added somfy keytis encoder 2023-01-19 14:49:00 +03:00
MX
27826f95ca
Merge branch 'dev' into somfy_encoder_new 2023-01-18 19:01:22 +03:00
MX
c708a301f5
Merge branch 'fz-dev' into dev 2023-01-18 18:26:49 +03:00
TQMatvey
729a1b5788 somfy_telis: encoder is almost done
Co-authored-by: assasinfil <nfa57643@gmail.com>
2023-01-16 19:41:16 +07:00
Georgii Surkov
75e9de12b0
[FL-3078] Per protocol signal repeat count (#2293)
* Better Infrared protocol file structure
* Rename InfraredProtocolSpec to InfraredProtocolVariant
* Slightly better names
* Add repeat count field to protocol variant description
* Repeat the signal the appropriate number of times when brute-forcing
* Repeat the signal the appropriate number of times when sending via worker
* Better signal count logic in infrared_transmit
* Better variable names
* Convert some raw signals to messages in tv.ir

Co-authored-by: あく <alleteam@gmail.com>
2023-01-13 16:50:19 +03:00
TQMatvey
b30aa890e6 initial Somfy Telis Encoder (doesnt work) 2023-01-11 19:47:45 +07:00
MX
a94c553c5a
Merge branch 'fz-dev' into dev 2023-01-07 01:59:20 +03:00
LTVA1
50ee2eb8aa
update API symbols 2023-01-06 22:32:50 +03:00
あく
41c43f4805
Various improvements: Toolbox, Updater and Unit Tests. (#2250)
* Toolbox: add seek to character stream method. UpdateUtils: reverse manifest iterator. UnitTests: more unit tests.
* Target: bump API version. Updater: delete empty folders from manifest before resource deployment.
* UnitTests: use manifest from unit_tests folder instead of global one
* Make PVS happy
* sector cache: allocate always
* Better PVS config for manifest.c
* PVS: Move exception outside of condition
* PVS: remove confusing condition

Co-authored-by: SG <who.just.the.doctor@gmail.com>
2023-01-06 16:31:17 +10:00
MX
6eb6297ab7
Merge branch 'fz-dev' into dev 2022-12-30 16:34:20 +03:00
Georgii Surkov
95f8895b43
Add float_tools to SDK api (#2225) 2022-12-30 15:52:53 +03:00
MX
e8e000d17b
Merge branch 'fz-dev' into dev 2022-12-29 18:08:51 +03:00
あく
b11b9f1b38
Gui: Direct Draw API (#2215)
* Furi: allow on-fly thread priority change. Gui: Direct Draw API. DirectDraw debug app.
* Gui: drop input in direct draw
* Furi: handle priority change for starting threads
* DirectDraw: rollback to FreeRTOS primitives for priority change
2022-12-29 21:35:26 +10:00
Thomas Roth
26e5527a93
Mifare dictionary attack performance improvements. (#2173)
* NFC dictionary attack performance improvements.
* Remove unnecessary assignment
2022-12-29 14:20:01 +09:00
MX
4e3506ab2e
Show OTP flipper region on debug and about screens
but keep region zero for ble and usb hardware info report
2022-12-29 01:43:24 +03:00
MX
5db9238331
Update API 2022-12-27 16:09:23 +03:00
MX
473f9c0e44
Merge branch 'fz-dev' into dev 2022-12-27 16:06:27 +03:00
Astra
ded7e727d0
[FL-3060] New MFC Bruteforce animation (#2190)
* Change the wording in the headers
* Add support for text in the progress bar
* New MFC key bruteforce screen
* Typo fix
* nfc: rename Flipper Dict to System Dict
* elements: fix types
* Display the correct key attack sector

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-12-27 18:14:03 +09:00
MX
0bfaaa0fe1
SubGHz: Add manually +2 new remotes
Allow manual creation of Nice Flor S, Nice Smilo
2022-12-21 15:11:12 +03:00
MX
7e049d185f
Merge branch 'fz-dev' into dev 2022-12-20 16:19:43 +03:00
gornekich
4cee550cc6
[FL-2809] Rework BLE key storage (#2154)
* bt: disconnect first on profile change
* bt keys: rework bt keys
* saved struct: add payload size getter to API
* bt: rework bt with new key storage API
* bt: add keys storage operation to bt API
* hid: save bt keys on sd card
* bt: add unit tests for key storage
* bt: working profile switch
* bt: cleanup
* bt hid: change keys storage path

Co-authored-by: あく <alleteam@gmail.com>
2022-12-20 21:32:24 +09:00
あく
e7107e39f7
Gui: scrollable long file names in FileBrowser and Archive Browser (#2159)
* Gui: scrollable long file names in FileBrowser
* Archive: scroll long file names
* Gui: elements code cleanup
2022-12-20 20:11:52 +09:00
MX
084cdc6ad0
Merge branch 'fz-dev' into dev 2022-12-19 16:57:00 +03:00
Nikolay Minaylov
f10e82c64d
[FL-3024] Locale settings (#2137)
* Locale settings
* Time/date format fix
* Locale: add docs, enums for HAL, cleanup.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-12-19 18:38:20 +09:00
MX
96a97f1bfb
Merge branch 'fz-dev' into dev 2022-12-17 07:25:49 +03:00
Skorpionm
2dea6969fe
[FL-3040] Audio support for SubGhz (#2131)
* Furi_hal_speaker: multiple resource usage
* Furi_hal_speaker: fix multiple resource usage
* Furi_hal_speaker: fix music_player_worker
* Furi_hal_speaker: fix mutex release queue handling
* SubGhz: add furi_hal_subghz_set_debug_pin
* SubGhz: add sound SubGhz Read, SubGhz Read RAW
* furi_hal_speaker: add __attribute__((warn_unused_result)) for furi_hal_speaker_acquire()
* Furi_hal_speaker: fix review comments
* SubGhz: cleanup naming and locking timings
* SubGhz,FuriHal: fix speaker deinit logic and subghz speaker release sequence
* FuriHal: crash on speaker acquire/release from IRQ
* Furi, FuriHal: FURI_WARN_UNUSED and documentation update
* Bump api symbols version: fix broken speaker

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-12-17 07:20:10 +09:00
MX
d56e399ae5
Update readme 2022-12-16 00:48:15 +03:00
MX
17ea9315e0
Fix incompatibility with OFW in subghz part + improve speed
SubGHz app launch times improved, also setting_user file no longer added by firmware, this update will remove this file, be sure to backup!
Now this file is actually should be created by user and will be not removed every update!
2022-12-11 00:42:26 +03:00
MX
8794aad5d0
Merge branch 'fz-dev' into dev 2022-12-08 21:41:45 +03:00
Shane Synan
5c3a5cd8f7
FuriHal, Power, UnitTests: battery charging voltage limit API (#2063) 2022-12-08 15:57:49 +09:00