Commit Graph

99 Commits

Author SHA1 Message Date
Albert Kharisov
13c5a8cb20
[FL-1505] Add RAW format (#576)
* Add RAW format
* F5 stubs for build to pass
* Fix saving decoded signal error
* Irda: set ISR before starting timer, remove explicit NVIC configuration

Co-authored-by: あく <alleteam@gmail.com>
2021-07-16 19:43:54 +03:00
Skorpionm
a2dfa33a9f
SubGhz: update capture configuration (#583)
* SubGhz: CC1101 setting, Rx Filter BW 270kHz, Tx Power 10dBm, AGC modification
* SubGhz: fix merge artifacts, add missing keystore.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-07-16 18:51:47 +03:00
Skorpionm
1a039a86f8
Skorp sub ghz add protocol (#581)
* SubGhz: Add Star Line protocol
* Rollback ReadMe changes
* SubGhz: add shared keystore for keeloq derived protocols.
* SubGhz: add missing key load routine

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-07-16 18:37:48 +03:00
あく
851a44dc59
[FL-1528] SubGhz: dma send (#579)
* Gui: input injection in screen stream
* Cli: expose ASCII table in public header
* SubGhz: dma output draft
* SubGhz: output initialization cleanup
* SubGhz: update dma send routine, add subghz_tx cli command.
* SubGhz: proper register address for DMA
* SubGhz: proper, fully working dma+tim2 configuration
* SubGhz: transmit PT with cli.
* Drivers: fix invalid size in CC1101 PA_TABLE loading routine.
* Interrupts: configurable DMA isrs.
* F5: backport fixes.
* SubGhz: free buffer after use
* SubGhz: use sleep instead of reset at the end
* SubGhz: async tx repeat with circular DMA
* SubGhz: disable dma channel on complete, adjust PT send timings
* SubGhz: backport function singature change to F5
* SubGhz: add tx debug gpio
2021-07-15 16:54:11 +03:00
Skorpionm
5df346aebe
Skorp sub ghz add protocol (#578)
* SubGhz: add HCS101 protocol
* SubGhz: add GateTx protocol
* GubGHz: keeLog, key re-acceptance check, do not decrypt repeated messages
* SubGhz: add iDo 117/111 protocol
* SubGhz: add Faac SLH protocol
* SubGhz: fix KeeLog, serial number on display
* SubGhz: fix Faac SLH, serial number on display. Refactoring code parser
* SubGhz: add Nero Sketch protocol
* SubGhz: fix showing serial key, Gate Tx protocol

Co-authored-by: あく <alleteam@gmail.com>
2021-07-13 14:47:27 +03:00
gornekich
3571b58d0a
[FL-1448], [FL-1529] Introducing Scene Manager, NFC App refactoring and bug fixes (#575)
* gui: refactore ViewNavigator -> SceneManager
* view_dispatcher: remove scene controller, add custom and navigation cb
* scene_manager: rework scene controller, move AppScene from lib
* nfc: rework nfc scenes with new scene controller API
* view_dispatcher: crash on free if not all views were freed
* nfc: introduce scene declaration
* scene_manager: allocate and configure application scenes
* nfc: rework nfc with new Scene Manager API
* scene_manager: remove dublicated scene handlers allocation
* nfc: rework nfc app with new scene manager API
* view_dispatcher: add tick event
* scene_manager: add tick event type and handler
* nfc: rework notifications with tick event
* scene_manager: remove scene id from scene structure
* scene_manager: rename array -> stack, add documentation
* api-hal-nfc: remove listen activation processing
* nfc_scene_start: shorter submenu call
* nfc: fix nfc file name
* nfc: fix Retry in mifare ul success read
* nfc_cli: fix read timeout in nfc_detect CLI command

Co-authored-by: あく <alleteam@gmail.com>
2021-07-12 21:56:14 +03:00
gornekich
20fe544b4f
[FL-1501] NFC: read Mifare Ultralight (#571)
* nfc: add scripts menu scene
* canvas: add glyph width api
* app_scene: add state to Scene template
* gui: introduce TextBox view
* nfc: add mifare ultralight read scenes
* nfc: add mifare ultralight menu scene
* nfc: fix scene functions declaration
* Gui: use size_t for sizes.

Co-authored-by: あく <alleteam@gmail.com>
2021-07-08 23:41:34 +03:00
Albert Kharisov
9f6e14d005
[FL-1398] IRDA: Implement timings encoder, add RC-6 (#570)
* Add RC-6 protocol
* Implement timings Encoder
* Remove Unit-tests from build
2021-07-08 21:20:13 +03:00
Skorpionm
4ce41a3e6f
Skorp subghz capture refactoring (#569)
* SubGhz: changing the operation of the capture timer, and the logic of the work of parsers
* Add toolbox lib. Move levels to toolbox. Subghz switch to levels.
* Subghz: update worker signatures
* SubGhz: pluggable level duration implementations.
* SubGhz : test drawing pictures in Gui
* SubGhz: Added a callback with the parser structure as argument
* SubGhz: copy protocol data to model
* SubGhz: refactoing code
* SubGhz: cleanup and format sources
* SubGhz: remove comments

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-07-07 22:49:45 +03:00
あく
a7283280ef
GUI: Icons and IconsAnimation refactoring. Switch assets to new Icon Api (#566)
* GUI: Icons and IconsAnimation refactoring. Switch assets to new Icon API.
* Gui: icon and animation draw now do not accept null pointer
* Format Sources
* Fix no debug build
* Furi: stricter checks in memmgr
2021-07-07 11:57:49 +03:00
Skorpionm
88be176fcf
SubGhz: Nice FlooR S improvements, cli stack overflow fix, code documentation, new key data formatting (#559) 2021-07-02 16:25:49 +03:00
Albert Kharisov
df9a6673da
[FL-1513] Fix IRDA crash (#557) 2021-07-02 15:46:13 +03:00
gornekich
a0e1e42f2d
[FL-1479] New NFC app (#544)
* view: add custom event callback
* nfc: rework nfc worker
* gui: introduce view navigator
* nfc_scences: introduce nfc scenes
* nfc: add start scene
* lib: add C application scene template
* nfc: move nfc views to separate directory
* view_dispatcher: add support for view_navigator
* nfc views: rework nfc views
* nfc scenes: add nfc application scenes
* nfc: rework nfc main thread
* view_dispatcher: add separate event for search back scene
* nfc: set worker result address at worker start
* nfc: update read nfc scenes
* view_navigator: rework with M-LIB container
* view_dispatcher: check that all views were freed
* nfc: add debug menu with all functions
* nfc read scene: add notification on success
* api-hal-nfc: add API for UID emulation
* nfc: add nfc emulation UID scene
* assets: add NFC assets
* nfc: update read and emulate scenes UI
* nfc: fix memory leak
* rfal: set custom analog configuration
2021-06-30 20:43:29 +03:00
SG
7a13391b2b
[FL-1371] New LF-RFID app. Second encounter. (#547)
* File worker: file operations helper.
* Notification app: removed yield
* File worker: write operations, calls to system file widgets
* App ibutton: use file worker
* Lfrfid: generic key loading, add path helper and hex conversion to lib
* FileWorker: plain C verison
* FileWorker: add to lib.mk
* FileWorker: add to C sources, instead of CPP
* Lfrfid: save scene
* App lfrfid: add key scene, saved key menu
* App lfrfid: saved key info scene
* App lfrfid: delete key scene
2021-06-30 15:02:46 +03:00
あく
e8211226f3
[FL-1496] SubGhz: Library, Cli, Application (#543)
* ApiHal: set frequency and path in one go. Drivers: proper frequency registers calculation for CC1101. Update subghz cli to match new api.
* SubGhz: preparation for parsers porting, tim2 sharing
* ApiHal: add interrupts API, move all TIM2 related things there.
* SubGhz: refactor protocol lib and add keeloq.
* SubGhz: proper init_set for keeloq manafacture key
* SubGhz: port more protocols to lib
* SubGhz: load keeloq manufacture keys from sd card (if any).
* SubGhz: format output from protocols.
* SubGhz: use default frequency in subghz_rx cli command.
* SubGhz: keeloq key types
* Fix compillation error when internal storage disabled
* SubGhz: minor cleanup
* SubGhz: properly handle timeout and reset signal in subghz_rx
* SubGhz: Worker, Capture View. Furi: emulate thread join.
* SubGhz: free strings on keeloq key load end
* SubGhz: update protocols reporting API, app refactoring and capture view, update API HAL usage.
* SubGhz: update dump formatting
* ApiHal: backport subghz preset to F5
* ApiHal: backport subghz frequency range to F5
2021-06-30 00:19:20 +03:00
SG
dce3665f63
File worker helper. Slightly optimized iButton app code size. (#545)
* File worker: file operations helper
* Notification app: removed yield
* File worker: write operations, calls to system file widgets
* App ibutton: use file worker
* App ibutton: small save fix, forgotten byte
2021-06-29 16:08:45 +03:00
SG
22e1ecb642
New LF-RFID app (#534)
* Hal lfrfid: add read timer pulse and period config fns
* New debug application for lfrfid subsystem
* New lfrfid: app, fix naming
* App lfrfid: assets
* Container view module
* App ibutton: remove unused header
* App lfrfid scenes
* App notification, add yield to blocking operations, add speaker volume control
* App lfrfid: reading key scene
* Assets: placeholder icon
* App lfrfid: reworked container view module
* App lfrfid: new scenes
* App lfrfid: write scene
* App lfrfid: write hid
* App lfrfid: emulate scene
* App lfrfid: save name scene
* App lfrfid: add missing file
2021-06-28 17:42:30 +03:00
Albert Kharisov
c583cce5bd
[FL-1401] Add Universal TV remote (#539)
* Remove excess headers
* Add ButtonPanel
* Add Popup
* Move FileReader to standalone object
* Universal remote (part 1)
* Universal remote (part 2)
* Global rename tranciever/file_parser
* Compile assets
* syntax fix
* English: rename tranceiver to transceiver.

Co-authored-by: あく <alleteam@gmail.com>
2021-06-25 16:52:27 +03:00
あく
4cf000f270
[FL-1465] Archive application bug fixes. Gui: update TextInput API. (#530)
* Update MLib to latest master.
* Archive: update string_t usage, add unsafe usage TODO, change model type to blocking and fix invalid usage.
* Gui: update text_input API and it's usage.
* fix blocking model issues
* fix  unsafe string_t usage

Co-authored-by: Igor Baranov <bedtimeposts@gmail.com>
Co-authored-by: its your bedtime <23366927+itsyourbedtime@users.noreply.github.com>
2021-06-24 00:46:52 +03:00
its your bedtime
6ec9c6cc49
[FL-1404] iButton long names fix (#528)
* ibutton: long names partial fix\
* ibutton: limit max filename length to 22 chars
* elwrapping long names to a new line
* Proper m-string size usage

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-06-22 12:56:57 +03:00
gornekich
a0fdc559c9
[FL-662] Read Mifare Ultralight (#518)
* nfc: add read mifare ultralight to menu
* emv_decoder: add pragma once
* nfc: add mifare ultralight reader
* nfc: add mifare ultralight read draw
* nfc: add mifare ultralight type checker
* nfc: rework menu callback
* mifare ultralight: change type names

Co-authored-by: あく <alleteam@gmail.com>
2021-06-15 17:54:09 +03:00
SG
0b14db4fb3
C++ apps: templated scene controller (#517)
* C++ apps: templated scene controller
* templated app: fix type names
* templated app: text store component
* Applications: add "Templated Scene" application
* templated app: refractoring
* Gui module byte input: fix docs
* templated app: new byte input scene
* templated app: dialog ex view module
* templated app: popup view module
* templated app: dialog-ex view module, fix docs
* templated app: text input view module
* Gui module text input: fix docs
* Furi: duplicated include
* templated app: record holder (controller) class
* templated app: view modules can now be accessed via cast
* templated app: remove unused includes
* templated app: fix return code
2021-06-15 14:01:56 +03:00
SG
4ad5245969
[FL-1063} LF-RFID Cli (#515)
* App lfrfid: update emulator to process external data.
* App lfrfid: cleanup emulator
* App lfrfid: cli interface
* Lib: arguments parser lib

Co-authored-by: あく <alleteam@gmail.com>
2021-06-10 14:53:59 +03:00
Albert Kharisov
6c74ea65c2
[FL-1369, FL-1397, FL-1420] IRDA + SDcard (#513)
* Add saving to SD-Card (not ready yet)
* Add saving to SD-card (done)
* Select previous menu item
* Fix central button
* Fix current_button
* Refactoring
* Add notifications
* [FL-1417] Add IRDA CLI
  CLI commands:
  1) ir_rx
  Receives all IR-trafic, decodes and prints result to stdout
  2) ir_tx <protocol> <address> <command>
  Transmits IR-signal. Address and command are hex-formatted
* Fix BUG with random memory corruption at random time in random place in random universe in random unknown space and time forever amen
* Fix submenu set_selected_item
* Bring protocol order back
* Add TODO sdcard check
2021-06-09 16:04:49 +03:00
gornekich
498ffe8d2c
Subghz packet test (#512)
* subghz: add cli support for packet tx rx

* api-hal-subghz: add comments

* subghz_cli: fix typo

Co-authored-by: あく <alleteam@gmail.com>
2021-06-08 12:51:16 +03:00
Albert Kharisov
31c31db479
[FL-1250, FL-1252, FL-1323, FL-1324] New IRDA Application (part 1) (#497)
* Add new IrdaApp (half ready), add ButtonMenu

* Fix NEC's extension

* clang-format

* Fix leak

* Add submenu optional header

* IRDA: add Edit button

* clang-format

* IrdaApp: Fix scene flow

* Add IRDA NEC extended protocol

* IRDA: Add address/command length

Co-authored-by: SG <who.just.the.doctor@gmail.com>
2021-06-02 18:16:05 +03:00
SG
7e6a97c3a3
[FL-1307] iButton key files: ASCII encoding and .ibtn extension (#493)
* GUI module submenu: fix documentation
* GUI module submenu: add submenu_set_selected_item fn
* App iButton: use submenu_set_selected_item to store and set selected item in submenu
* App iButton: swap write and emulate in "saved key menu" scene
* App iButton: file select can now switch to the previous selected file
* App iButton: swap write and emulate indexes in "saved key menu" scene
* Gui module file_select: work with separate extension
* iButton app: separate file managment, file error handling
* SD card api: custom error message
* iButton app: better file error handling

Co-authored-by: あく <alleteam@gmail.com>
2021-05-26 19:50:16 +03:00
gornekich
e620b310b7
[FL-1039] Emv emulation (#491)
* nfc: add emulate emv to submenu
* api-hal-nfc: add emv emulation
2021-05-26 02:54:44 +03:00
SG
fc5c48edef
[FL-1300] iButton app: save selected menu item and selected file position. (#489)
* GUI module submenu: fix documentation
* GUI module submenu: add submenu_set_selected_item fn
* App iButton: use submenu_set_selected_item to store and set selected item in submenu
* App iButton: swap write and emulate in "saved key menu" scene
* App iButton: file select can now switch to the previous selected file
* App iButton: swap write and emulate indexes in "saved key menu" scene

Co-authored-by: あく <alleteam@gmail.com>
2021-05-25 14:04:22 +03:00
SG
2daf65b62b
[FL-1237] Notifications app (#476)
* Notification app: init
* Notification app: separate message sequences
* Notification app: rename notifications to notification
* Notification app: rework api
* Notification app: new sequences for charger
* Power app: add state for better led handling
* Power app: NotificationSequence type, notification led process
* Blink app: use notifications
* Notification app: sound and vibro notifications
* Notification app: note messages
* Notification app: more messages
* Notification app: update note message generator
* Blink app: fix state counter
* Notification app: fix delay event
* App sd-filesystem: notifications
* App notifications: headers c++ compatibility
* App notifications: Cmaj success chord sequence
* App iButton: use notifications
* App notification: display backlight notifications
* App notification: add "display on" message to success and error sequences
* App accessor: use notifications
* App ibutton: guard onewire key read
* Lib-RFAL: remove api_hal_light usage
* App notification: add blocking mode, rework display api
* Cli led command: use internal notification instead of direc access to leds.
* App unit test: use notifications
* App lfrfid: use notifications
* Apps: close notification record
* App subghz: rough use of notifications
* App notificaton: ignore reset flag
* App strobe: removed
* Lib irda decoder: fix nec decoding
* App irda: fix assert, use notifications
* Apps: use notifications
* Fix IRDA tests
* Cli: better var naming
* App notification: readable sources

Co-authored-by: Albert Kharisov <albert@flipperdevices.com>
Co-authored-by: あく <alleteam@gmail.com>
2021-05-24 16:44:14 +03:00
its your bedtime
c97d766e5b
[FL-1181] Archive app (#458)
* fix stack size, file listing works
* fix scrollbar, update docs
* cut long filenames
* Dolphin: overhaul unlocking logic, unlocked message added
* furi - added common_defines.h, minor macro cleanup; fix scrollbar type conversion
* remove door opening animation
* adaptive long file name shortening, item icons, invert selection
* archive: browser tab, file types (beta);  scenes: fix sleep emote
* dont trim unknown extensions
* fix string_size usage
* array container for file list, fixes
* better path handling
* archive: renaming, adding to favorites worksl scrollbar fix: limit min bar height to 1px to prevent disappearance on large lists

Co-authored-by: あく <alleteam@gmail.com>
2021-05-18 21:54:56 +03:00
gornekich
725981f431
[FL-663] Read EMV cards (#460)
* nfc: add emv decoder
* api-hal-nfc: add data exchange api
* nfc_worker: add read emv routine
* nfc: add emv reader view
* nfc: add support for Mastercard reading
* api-hal-nfc: fix incorrect merge changes
* nfc_worker: set to zero emv app object on each cycle
* api-hal-nfc: add api for f6 target
* nfc: move emv_decoder to lib folder

Co-authored-by: あく <alleteam@gmail.com>
2021-05-18 21:12:01 +03:00
gornekich
df4a170213
[FL-1268] Gauge re-calibration (#471)
* bq27220: add new battery profile parameters
* bq27220: add gauging configuration
* power: change poweroff condition depending on remain capacity
* api-hal-power: update api for f6 target
2021-05-18 17:59:16 +03:00
Albert Kharisov
3114a2d4b8
[FL-1156, FL-1249] Add IRDA encoder/decoder library (#451)
* Add cscope db generation
* Add api-hal-irda, TIM2: HAL->LL
* Add libirda: pwm decoding
* Universal state machine
* Add irda decoder library
* Move IRDA capture to standalone tool
* Add encoder/decoder samsung32, NEC, fix bugs
* Port current App to new Irda lib
* Fix clang format for test data
* Port IRDA api-hal to f6

Co-authored-by: あく <alleteam@gmail.com>
2021-05-18 13:51:00 +03:00
あく
aa24484b99
[FL-977] Internal Storage (#455)
* Add littlefs submodule
* Furi: add mutex in logging, fix issues with corrupted printf
* ApiHal: disable debug traces in ble glue
* App-loader: more logs
* Passport: fix invalid DolphinState usage
* ApiHal, linker script: flash API is now aware of free space, complete abstraction layer for storage
* Internal Storage: littlefs based storage services with key value API. Migrate dolphin state to new storage API.
2021-05-11 11:29:44 +03:00
あく
a975fb6dc5
[FL-1146] GD0 self-test 2021-05-08 22:24:05 +03:00
gornekich
fb73d3bd52
[FL-1214] NFC application (#448)
* platform: include only used api-hal files
* api-hal-nfc: introduce nfc hal
* nfc_worker: rework nfc worker
* nfc: move nfc from services to applications, add startup hook
* api-hal-nfc: init nfc worker in api_hal_detect
* nfc: rework nfc application
* nfc: fix app exit
* api-hal-nfc: init nfc worker only once
2021-05-06 22:51:20 +03:00
あく
c880f90eb5
Update code owners and remove obsolete code (#446) 2021-05-05 17:53:07 +03:00
あく
b90d72fadf
Recator application build system: cleaner flags naming, set release flag to yes by default, include unit test and debug apps (#443) 2021-04-30 14:07:13 +03:00
あく
eb82748d50
Drivers: skip initialization if bq27220 is unresponsive (#435) 2021-04-30 07:47:02 +03:00
gornekich
b405a22cd1
[FL-1167] Rework GPIO and EXTI with LL lib (#424)
* api-hal-gpio: rework gpio on ll
* one_wire_slave: rework gpio initialization
* interrupts: add attribute weak to hal exti interrupts handlers
* api-hal-gpio: add exti interrupt handlers
* input: rework with api-hal-gpio interrupts
* one_wire_slave: rework with api-hal-gpio interrupts
* api-hal-gpio: fix incorrect exti line config
* api-hal-gpio: add doxygen documentation
* api-hal-gpio: add enable / disable interrupts
* api-hal-gpio: add get_rfid_level
* core: remove api-gpio
* applications: rework gpio with api-hal-gpio
* lib: rework gpio with api-hal-gpio
* rfal: disable exti interrupt when rfal is inactive
* rfal: add interrupt gpio reinitialization
* api-hal-gpio: hide setting speed and pull mode LL implementation
* stm32wbxx_it: remove unused EXTI handlers
* api-hal-gpio: guard set, enable, disable and remove interrupt
* Drop F4 target
* Accessor: update gpio api usage

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-04-29 11:51:48 +03:00
gornekich
577606afb9
[FL-1190] Enable OTG pullup for reading and writing keys (#423) 2021-04-24 01:23:16 +03:00
gornekich
0c0e5b6c6d
[FL-1153] ibutton: add otg pullup support (#415)
Co-authored-by: あく <alleteam@gmail.com>
2021-04-21 14:21:57 +03:00
gornekich
72d4290c21
[FL-948] iButton Dallas timings tuning (#420) 2021-04-21 14:14:39 +03:00
Albert Kharisov
aa20a78b0e
[FL-164] Add bootloader version (#417)
* Add bootloader versioning
* Move some logic to api-hal-version
* Backport to f4
* Dolphin: update version screen layout, make it more readable

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-04-19 19:30:25 +03:00
あく
a9d227c2b7
[FL-1150] RFAL: fix start without NFC board (#414) 2021-04-18 13:47:14 +03:00
gornekich
b4addbdade
[FL-1137] one_wire_slave: disable exti interrupt after emulation (#412)
Co-authored-by: あく <alleteam@gmail.com>
2021-04-18 12:49:22 +03:00
gornekich
eae9cb3514
[FL-1107] OS CLI command for threads info listing (#405)
* cli_commands: add os_info command for threads info listing
* cli_commands: add total and minimal heap size in os_info
* common-api: add task control block type
* cli: print thread allocated stack size
* CLI: convert free stack size to bytes in os_info command

Co-authored-by: あく <alleteam@gmail.com>
2021-04-13 09:46:35 +03:00
gornekich
8ce5af1be2
[FL-1050] SD card error view (#399)
* sd-filesystem: add check error to api
* sd-filesystem: call error check from file select
* ibutton: process sd card error on key saving

Co-authored-by: rusdacent <57439765+rusdacent@users.noreply.github.com>
Co-authored-by: あく <alleteam@gmail.com>
2021-04-07 10:37:10 +03:00
あく
0c3a0a3312
[FL-1104] Fix NFC crash and missing NfcMessageTypeDeviceNotFound event (#400)
* Remove asserts from platformProtectST25RComm, fix issue with concurrent access.
* NFC Worker: fix bug in nfc_worker_poll causing worker to skip sending ofNfcMessageTypeDeviceNotFound event
* Fix python linter: stick to old beta
2021-04-04 13:45:55 +03:00