Commit graph

3489 commits

Author SHA1 Message Date
gornekich
23ff6723cf
[FL-2204] Bluetooth forget devices (#967)
* bt: update connection parameters
* bt: set correct connection latency and timeout
* gui popup: add clean method
* furi_hal_bt: add connection parameters request, clear database
* bt: add forget bonded devices API
* bt_settings: add forget bonded devices GUI
* bt: rework pin code show with view port to hide view
* bt: support conn parameters for different profiles
* furi_hal_bt: sync f6 target
* target f6: fix build
* bt: format sources
* furi_hal_bt: update connection parameters
* bt: update connection params, fix GUI
* FuriHal: fix spelling
* Refactoring: rename _clean to _reset

Co-authored-by: あく <alleteam@gmail.com>
2022-01-21 20:32:03 +03:00
Nikolay Minaylov
d4787e859e
[FL-1506, FL-2197] Power, USB, LED driver improvements (#966)
* Power, USB, LED driver improvements
* u2f hid descriptor fix
* variable_item_list: value alignment fix
* InputTypeRepeat handling in menu/submenu/var_item_list
* lp5562: fix bugs on 400khz i2c
* Scripts: lint in parallel.
* FuriHal: rename some USB structure to match naming convention. Drivers: update magic values in LP5562.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-01-21 19:55:44 +03:00
Skorpionm
d4d87aa6a8
[FL-2045] SubGhz: new protocol (GSN , Beninca/Allmatic, Elmes) and validator (#958)
* SubGhz: add new method of obtaining a manufactory code subghz_protocol_keeloq_common_magic_xor_type1_learning
* TextInput: checking for a lock on a file with the same name
* TextInput:  fix checking for a lock on a file with the same name
* Assets: rename and recompile
* TextInput: added picture and timer to turn off blob
* TextInput: Fix graphics
* TextInput:  fix validator
* Validators: Add validator is file
* TextInput: fix callback validator_is_file_alloc
* SubGhz: add propocol GNS (dimamic), Beninca/Alcatic,  Elmes
* SubGhz: fix function description
* Gui: correct timer routine on deallocation
* Format sources

Co-authored-by: あく <alleteam@gmail.com>
2022-01-21 16:55:09 +03:00
Albert Kharisov
8f8aba2a34
[FL-2203] Fix CLI RPC stall (#961)
* [FL-2203] Fix CLI RPC stall
2022-01-14 17:09:43 +03:00
Albert Kharisov
17d0d19348
[FL-2116] RPC: stop session on decode error (#959)
* [FL-2116] RPC: stop session on decode error
* Rollback protobuf
* Send only DECODE_ERR, fix session tests
* Tests: replace asserts with checks. Fix broken production build

Co-authored-by: あく <alleteam@gmail.com>
2022-01-14 12:58:26 +03:00
Nikolay Minaylov
a3aaf50ecd
[FL-2084] I2C memory read/write (#951)
* furi_hal_i2c: read/write registers
* remove i2c_acqure/release
* i2c_is_device_ready without reading data

Co-authored-by: あく <alleteam@gmail.com>
2022-01-12 18:29:28 +03:00
gornekich
407f68c08a
[FL-2182] NFC-V UID show fix (#955)
* nfc: rework static inline functions
* nfc: show uid for NFC-B,F,V
2022-01-12 17:02:20 +03:00
Albert Kharisov
a0c16e8a19
Add protobuf versioning (#954)
* Add protobuf versioning
* Add protobuf version unit test
* Change pb version providing
* Remove redundant 'call'
2022-01-12 16:12:40 +03:00
gornekich
1d31000516
iButton fix data layout (#953)
* ibutton: fix info and delete scenes layout
* loader: fix incorrect heap allocation memory calc
* ibutton: cleanup
2022-01-11 20:45:49 +03:00
Albert Kharisov
9ade2349ad
[FL-2188] Fix Desktop crush: stub dolphin stats (#950)
* Fix Desktop crush: stub dolphin stats

Fix Desktop crash on butthurt > 11, so hardcoded animations
are always available. Stub good dolphin stats till
correct deeds management implemented.

* Update ReadMe to match real project structure.

Co-authored-by: あく <alleteam@gmail.com>
2022-01-10 22:46:20 +03:00
Albert Kharisov
990a065bd0
[FL-1929, FL-2164] IR App migrate to FFF (#949)
* IR app move to FFF
* [FL-2164] Hide unimplemented submenus
* Fix brute force fail
* Fix FFF endless reading
* Reformat TV bruteforce lib to FFF
* fixes & cleanup
* Infrared: switch to constexpr.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-01-10 20:13:41 +03:00
あく
389ff92cc1
Naming and coding style convention, new linter tool. (#945)
* Makefile, Scripts: new linter
* About: remove ID from IC
* Firmware: remove double define for DIVC/DIVR
* Scripts: check folder names too. Docker: replace syntax check with make lint.
* Reformat Sources and Migrate to new file naming convention
* Docker: symlink clang-format-12 to clang-format
* Add coding style guide
2022-01-05 19:10:18 +03:00
gornekich
c98e54da10
[FL-1849] NFC and iButton gui fixes (#943)
* nfc: fix spaces between lines in delete and info scenes
* gui widget: add extern c
* ibutton: rework gui in info and delete scenes
* Loader, Desktop: fix debug apps and plugins start from cli, fix deadlock in archive

Co-authored-by: あく <alleteam@gmail.com>
2022-01-03 03:01:54 +03:00
Nikolay Minaylov
7e2f0fcc22
[FL-2121] U2F GUI (#942)
* U2F: new gui
* U2F: user cert key encryption
* FuriCore: move type casting to dangerous_defines
* FuriCore: exclude dangerous things from furi.h

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-01-03 02:33:28 +03:00
gornekich
2cbf99e15a
[FL-2019] Battery test application (#940)
* Power: rework API
* Applications: introduce battery test application
* Power: fix typo
* Desktop: cleanup merge artifacts

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-01-03 01:52:45 +03:00
gornekich
7522b111c2
[FL-1220] BLE scan MAC addresses test (#939)
* bt: refactore cli commands
* bt: add radio stack control, add scan mac addresses
* bt: refactore with new furi-hal-bt API
* bt: f6 targer sync
* bt: code cleanup, update documentation
* Bt: new command names, proper radio stack handling

Co-authored-by: あく <alleteam@gmail.com>
2022-01-03 01:36:42 +03:00
Albert Kharisov
a39002ce22
[FL-2150] Dolphin animation refactoring (#938)
* Dolphin Animation Refactoring, part 1
* Remove animations from desktop
* Remove excess, first start
* Split animation_manager with callbacks
* allocate view inside animation_view
* Work on ViewComposed
* Draw white rectangles under bubble corners
* Fix bubbles sequence
* RPC: remove obsolete include "status.pb.h"
* Add animations manifest decoding
* Flipper file: add strict mode
* FFF: Animation structures parsing
* Assembling structure of animation
* Lot of view fixes:
  Add multi-line bubbles
  Add support for passive bubbles (frame_order values starts from passive now)
  Add hard-coded delay (active_shift) for active state enabling
  Fix active state handling
  Fix leaks
  Fix parsing uncorrect bubble_animation meta file
  Fix bubble rules of showing
* Animation load/unload & view freeze/unfreeze
* Blocking & system animations, fixes:
  View correct activation
  Refactoring + blocking animation
  Freeze first passive/active frames
  Many insert/eject SD tests fixes
  Add system animations
  Add Loader events app started/finished
  Add system no_sd animation
* Assets: dolphin packer. Scripts: minor refactoring.
* Desktop: update logging tags. Scripts: add metadata to dolphin bundling process, extra sorting for fs traversing. Make: phony assets rules.
* Github: rebuild assets on build
* Docker: add missing dependencies for assets compilation
* Docker: fix run command syntax
* ReadMe: update naming rules with link to source
* Assets: recompile icons
* Loader: add loader event
* Desktop, Gui, Furi Core: const shenanigans macros

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2022-01-03 00:39:56 +03:00
Nikolay Minaylov
1202f9b82d
[FL-2159] BadUSB alt codes (#935)
* badusb: alt code commands
* badusb: demo script update
* usb hid: consumer control descriptor
* BadUsb: remove dangerous type casting, rename variable to match codding style guide

Co-authored-by: あく <alleteam@gmail.com>
2022-01-02 20:34:39 +03:00
Albert Kharisov
5b1f50e63a
Much better crash handling. So wow.
* Furi, FuriHal, Desktop: much better crash handling. So wow.
* FuriHal: add missing include in FreeRTOSConfig.h

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-31 20:32:49 +03:00
Anna Prosvetova
475fa91ba6
☦️ Rpc: implement SystemPlayAudiovisualAlert (#937)
* Rpc: update protobuf sources
* Notification: allow user settings override
* Notification: add audiovisual alert sequence
* Rpc: implement SystemPlayAudiovisualAlert
2021-12-28 18:46:08 +03:00
あく
5252b207c8
SubGhz: replace incorrect frequency value (#933) 2021-12-26 18:31:48 +03:00
Skorpionm
fb7cc1dd60
[FL-2162] SubGhz: Cli refactoring (#926)
* [FL-2162] SubGhz: Cli refactoring
* SubGhz: power reduction for Australia
* SubGhz: add frequencies for testing the Japanese region
* Desktop: fix fav app

Co-authored-by: Anna Prosvetova <anna@prosvetova.me>
Co-authored-by: あく <alleteam@gmail.com>
2021-12-25 16:19:30 +03:00
Nikolay Minaylov
f061b937d0
[FL-2133, FL-2151] charging icon, fix gui buttons size (#925)
Co-authored-by: あく <alleteam@gmail.com>
2021-12-24 23:00:45 +03:00
Anna Prosvetova
f6d4e8fa84
CI: conditional compact build (#930)
* CI: conditional compact build
* Rpc: fix log line ending
2021-12-24 22:35:25 +03:00
Anna Prosvetova
46a25c295c
Decouple apps to allow smaller builds. Loader deadlock fix and refactoring. (#929)
* Lib: always include rfal
* Gui: remove screen_stream
* Input: decouple from Cli
* Loader: decouple from Cli
* Desktop: ignore missing favorite app, decouple from Archive
* Make: make Notification a Gui dependency
* Make: embed debugging information into elfs
* Loader: hide Plugins submenu when plugins ga arimasen
* Applications: update on start hook usage
* Loader: fix dead lock on menu rebuild with open rpc, new cli command.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-24 21:47:48 +03:00
あく
7cea359be8
Storage: lfs config fingerprinting. RTC: fix data collision in lock register, refactor and cleanup. (#928) 2021-12-24 17:33:58 +03:00
Nikolay Minaylov
9e62f08e4d
[FL-1958] U2F prototype (#879)
* U2F implementation prototype
* U2F data encryption and store, user confirmation request
* remove debug prints
* fix notification bug in chrome
* split u2f_alloc into u2f_init and u2f_alloc
* typo fix, furi-hal-trng -> furi-hal-random
* rand/srand redefinition
* SubGhz: a little bit of Dante.
* u2f_data naming fix

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-22 23:04:08 +03:00
Skorpionm
9b62b557b4
SubGhz: fix transmission frequency (#922) 2021-12-22 22:35:53 +03:00
Skorpionm
3a86da5526
[FL-2139] SubGhz: refactoring GUI SubGhz (#910)
* SubGhz: refactoring GUI ReadRAW
* SubGhz: replacing memcpy with strcpy
* SubGhz: fix button name "Mode",  fix delete scene, fix show name when loading a key
* SubGhz: refactoring GUI SubGhz
* scene_manager: add exit from last scene API
* subghz: stop scene manager before stopping view dispatcher

Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2021-12-22 16:01:20 +03:00
Skorpionm
51aa169c3b
[FL-2149] SubGhz: Additional frequencies for testing (#920)
* SubGhz: add new frequency for testing
* [FL-2149] SubGhz: power reduction for Australia

Co-authored-by: あく <alleteam@gmail.com>
2021-12-22 14:05:14 +03:00
Albert Kharisov
cdfc420ddf
Replace Laptop animation text (#919)
* Fix Laptop animation bubble
* Correct new animation select
2021-12-21 17:10:34 +03:00
Albert Kharisov
b4a49cdb30
[FL-2148] Infrared - fast erase when rename (#914)
Erase whole string during renaming remote/button in Infrared app

Co-authored-by: あく <alleteam@gmail.com>
2021-12-21 15:53:57 +03:00
Nikolay Minaylov
51b823d1ca
[FL-2115][FL-2122] BadUSB demo scripts (#915)
* BadUSB: support for dual-modifier key commands, demo script for windows
* BadUSB: ALT-GUI command, demo script for macOS

Co-authored-by: あく <alleteam@gmail.com>
2021-12-21 15:49:57 +03:00
gornekich
b0f582df99
[FL-1972], [FL-1920] Mifare Ultralight and NTAG separation (#918)
* nfc: rename read mifare ultralight menu
* nfc: separate ntag and mifare ultralight
* nfc: save Mifare Ultralight type
* nfc: add valid ack and nack messages
* nfc: add compatible write command implementation
* nfc: support f6 target
2021-12-21 15:33:17 +03:00
あく
439fb9c18d
[FL-1910, FL-2146] Update to new FreeRTOS, fix CMSIS thread flags collision with stream buffer. New cube. (#917)
* Libs: add FreeRTOS submodule. FuriHal: replace ST provided FreeRTOS with original one. FuriHal: for cmsis os hal and patch it for better compatibility with stream buffer.
* Makefile: fix svd plugin on blackmagic
* Lib: update STM32CubeWB package. Project: update project to match new cube package.
* Lib: properly rebase and upload STM32CubeWB
* BleGlue: switch ack logging level to trace
2021-12-21 15:16:25 +03:00
Vlad Roskov
26b2d07dd6
Round up the charge % when drawing battery icon (#912)
Causes anxious urge to recharge otherwise
2021-12-18 14:11:18 +03:00
gornekich
93871f9425
BT hid navigation fix (#911)
* bt: fix bt hid navigation
* Cli: change datetime format to more ISO-ish, add datetime validation.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-17 16:24:37 +03:00
Anna Prosvetova
4013da5b59
Rpc: implement SystemGetDateTime, SystemSetDateTime, update GuiStartVirtualDisplay (#908)
* Rpc: update protobuf sources
* Rpc: implement SystemGetDateTime, SystemSetDateTime
* Rpc: add first frame parameter to GuiStartVirtualDisplay
2021-12-16 18:41:55 +03:00
gornekich
36089c7472
Change NFC log messaged level (#906)
* nfc: change nfc worker log messaged to debug level
* FuriHal: switch logging level to trace in nfc

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-15 22:07:37 +03:00
ghettorce
de006aa06a
NFC: fixes & improvements (#897)
* nfc: (mf_ul) fix overflow while reading
* nfc: (mf_ul) fix FAST_READ command emulation
* nfc: (mf_ul) implement non-strict PWD_AUTH command emulation for NTAG21x
* nfc: (mf_ul) improve emulation stability by removing frequent furi_hal_console_put() calls that cause delays or something
* nfc: (mf_ul) remove calls to blocking functions from emulation worker

Co-authored-by: あく <alleteam@gmail.com>
2021-12-15 21:27:25 +03:00
gornekich
f0d4584b40
[FL-2119] BT HID App (#888)
* view_dispatcher: add default back processing for Long events
* assets: add ble connected and disconnected assets
* bt keyboard: introduce new application
* bt keyboard: add logic to keyboard mode
* bt: remove debug ble hid application
* bt hid: introduce media controller
* gui canvas: rename CanvasFontDirection -> CanvasDirection
* gui canvas: add arrow element
* assets: update finilized assets
* bt hid: finalise keynote GUI
* bt hid: finalise media player GUI
* bt: add media key buttons support
* bt: add exit confirm view
* bt: change Clicker -> Remote
* bt: support f6 target
* bt: hopefully final bt hid design
* bt hid: add blue led notification when device is connected
* bt: leave only bt clicker for now
* bt: add display notification on pin code show event
2021-12-15 20:39:06 +03:00
あく
63642617ee
Hide debug tools if debug is not enabled. Application: update debug tools code base. SubGhz: log duty cycle. (#903)
* Application: clean debug_tools code base.
* SubGhz: add duty cycle logging.
* Application: hide debug tools if not enabled. Gui: move icon_animation allocation to menu module.
2021-12-15 15:23:16 +03:00
あく
6579368053
[FL-1818] System setting and debug options. RTC HAL refactoring. (#902)
* FuriHal: RTC API refactoring. System Setting application. FuriCore: adjustable log levels. Minor code cleanup.
* Storage: change logging levels for internal storage.
* FuriCore: fix broken trace logging level
2021-12-15 01:39:59 +03:00
Albert Kharisov
965067b5bd
[FL-2132] IRDA: fix crush in Saved Remote (OK + back) (#894)
Pressing Back button before releasing OK on Saved Remote scene
freezes application, because it doesn't expect that button is
pressed when leaving Saved Remote scene.

Issue: 893
2021-12-14 02:52:13 +03:00
Skorpionm
1232defcf1
[FL-2129] SubGhz: Fix Duty cycle at 433/868 (#892)
* [FL-2129] SubGhz: Fix Duty cycle at 433/868
* SubGhz: fix syntax
* SubGhz: increased silence time in the 868 range
* SubGhz: added build flag LAB_TESTS
* SubGhz: better LAB_TESTS flag handling
* NFC: LAB_TESTS flag handling

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-12-13 15:21:37 +03:00
SG
58ce937321
[FL-1891] Release 0.42 bugfixes (#891)
* Fixed the "ibutton can only emulate after reading" bug
* Fixed previous fix. FIXES FOR THE FIX GOD! BUGS FOR THE BUG THRONE!
* Fixed "Repeat code" position on code input screen
* Changed CAME protocol icon
* Brewfile: add imagemagick missing assets compiler dependency
* Correct fix for "Repeat code" position on code input screen

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-12 14:03:39 +03:00
Anna Prosvetova
195f422bb9
Rpc: implement SystemFactoryReset (#890)
* Rpc: update protobuf sources
* Rpc: implement SystemFactoryReset
2021-12-10 14:51:36 +03:00
SG
d6f080f7d0
[FL-2125] Cli: input_dump (#887)
* Cli: input_dump
* Tied together input_dump and input service
* input_dump and input service are now very tightly tied
* Input: remove record open in input_dump.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-09 19:53:29 +03:00
Skorpionm
9f28338d9e
[FL-2100] SubGhz: GUI download and transfer RAW file (#881)
* SubGhz: fix exit subghz_chat
* SubGhz: refactoring GUI RAW

Co-authored-by: あく <alleteam@gmail.com>
2021-12-08 18:00:54 +03:00
tonyfreeman
c6cb6ae810
BLE: Increase mtu (#837)
* Incease mtu & buffer size
* bt: process mtu size in RPC callbacks

Co-authored-by: Tony Freeman <tonyfreeman@users.noreply.github.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
2021-12-08 16:59:40 +03:00
Skorpionm
f0aed7e583
SubGhz: add GFSK modulation, refactoring subghz_chat (#866)
* SubGhz: add GFSK modulation, refactoring subghz_chat
* SubGhz: off echo subghz_chat
* SubGhz: subghz_chat add sending and receiving formatted text, translation of the chat to events
* SubGhz: add UTF support in subghz_chat_worker_alloc

Co-authored-by: あく <alleteam@gmail.com>
2021-12-08 16:42:01 +03:00
gornekich
7170864fe4
[FL-1976] BLE HID (#852)
* ble: prototype ble hid
* ble: add HID service and characteristics
* debug tools: add ble keyboard app
* ble: change appearance
* ble: working keyboard
* bt: introduce furi-hal-bt-hid
* bt: restart hid service on each keyboard app enter
* bt: introduce switch profile
* bt: add profile to ble glue
* bt: working profile switch
* bt: introduce bt serial profile, rework API
* bt: rewotk HID profile
* bt: rework gap with profile configuration
* bt: move change profile routine to furi hal bt
* bt: change switch profile API to blocking
* bt: move battery update to furi hal bt
* bt: cleanup
* bt: add support for f6 target
* bt: update documentation
* bt: clean up code
* bt: remove NO OUTPUT setting
* bt: set numeric comparison pairing in BLE HID
* bt: support f6 target
* bt: set mac address in profile configuration
* bt: set advertise name in profile config
* bt: rework with furi thread
* bt: support f6 target
* bt: clear hci command buffer on core2 restart
* bt: correct thread kill sequence
* bt: fix freertos functions calls
* bt: add some enterprise delays fo correct memory free
* bt: code cleanup
* bt: change terminate -> stop
* bt: fix memory leakage

Co-authored-by: あく <alleteam@gmail.com>
2021-12-08 14:28:01 +03:00
Anna Prosvetova
03d7476e4f
Rpc: StorageInfo, StorageRename, SystemReboot, SystemDeviceInfo (bonus: +FuriHalInfo) (#862)
* Rpc: update protobuf sources
* Rpc: rename Status to System
* Rpc: implement StorageInfoRequest
* Rpc: implement StorageRenameRequest
* Rpc: implement SystemRebootRequest
* FuriHal: introduce FuriHalInfo, refactor device_info
* Rpc: implement DeviceInfoRequest
* Rpc: use strdup where it suites the best.
* Make: add do not page align data to linker flag.

Co-authored-by: あく <alleteam@gmail.com>
2021-12-07 16:47:20 +03:00
Albert Kharisov
604d80aed4
[FL-2083] Bring Passport back (#868)
* [FL-2083] Bring Passport back
* Move Passport to Settings
* Hide icounter editing

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-07 16:13:07 +03:00
Albert Kharisov
185647a09a
Play only basic good animations (#872)
* New Basic Animations
* Keep only basic calm animations

Co-authored-by: あく <alleteam@gmail.com>
2021-12-07 16:02:19 +03:00
SG
e09009e497
LFRFID-debug: proxy comparator to gpio (#876) 2021-12-07 15:49:44 +03:00
あく
98bc190ac4
Hackathone session: bugfixes and documentation update (#869)
* ReadMe: update flashing scripts section
* Furi: add record exists method to record store.
* FuriHal: early OS init and i2c timeouts based on os ticks.
* Storage: replace malloc with furi_alloc, fix errors found by pvs.
* iButton: properly handle shutdown in cli search command
* SubGhz: proper argument type in sscanf and incorrect position of logging in switch.
2021-12-05 14:47:02 +03:00
Lesha Lomalkin
4b8653e061
Subghz chat: add vibration on input message, send joined/left events … (#863)
* SubGhz: add vibration on input chat message, send joined/left events to room on start and exit app.
* SubGhz: optimize notification api usage

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-04 16:40:17 +03:00
Oleg Kalachev
c2c17c761e
Fix address in I2C scanner (#865) 2021-12-04 16:21:58 +03:00
Skorpionm
fbd05598ad
[FL-2086] SubGhz: Fix Errors (#861)
* CLI: fix main GUI freeze while subghz chat is running
* CLI: fix processing backspace in the web console
* [FL-2086] SubGhz: fix can't save signals in sub'e to internal memory
* Cli: remove warning message in i2c command

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-02 14:19:47 +03:00
あく
0b0629e6fe
Cli: add I2C scanning command (#860)
* Cli: add I2C scanning command

* Cli: proper scanning limits in i2c command

* Cli: better output readability on i2c scan
2021-12-02 02:21:57 +03:00
あく
41b5d5f5c9
Gui: fix random crashes under load in icon_animation (#859) 2021-12-02 01:13:21 +03:00
Skorpionm
b912cc7991
SubGhz: sending / receiving messages via subghz (#851)
* SubGhz: add worker subghz_txrx
* SubGhz: added support for transferring Russian characters and support for backspace in CLI subghz_txrx
* SubGhz: refactoring subghz_txrx_worker, added a callback for accepting data in an empty one RX buffer
* SubGhz: fix conflict
* SubGhz: fix syntax errors
* Cli: document string_move usage and its behavior
* FuriHal: update subghz api and documentation. Subghz: move chat to subghz cli subcommand.
* Subghz: update text in chat cli

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-12-01 18:44:39 +03:00
Albert Kharisov
d86125c7f7
Fix butthurt and battery (#850)
* Fix butthurt and battery
2021-11-29 15:51:15 +03:00
あく
cf591ef7eb
[FL-1911] FuriHal: i2c refactoring (#847)
* Project: fix release build, replace asserts with checks.
* FuriHal: i2c refactoring, new bus access model, flexible bus gpio configuration.
* FuriHal: set i2c pins to high on detach.
* FuriHal: more i2c bus events, put bus under reset when not used, move bus enable/disable routine to bus handler.
* FuriHal: fix i2c deadlock in power api, add external i2c handle.
2021-11-28 21:28:19 +03:00
Skorpionm
7c0943e736
SubGhz: fix GUI ReadRAW and add new man (#843)
* Notification: add sequence_single_vibro
* SubGhz: optimizing the performance of the GUI ReadRAW
* SubGhz: full highlighting of the default filename on save
* SubGhz: add man Leopard, Faraon, Reff, ZX-750, Back_SL-B9, fix syntax

Co-authored-by: あく <alleteam@gmail.com>
2021-11-26 17:01:03 +03:00
Nikolay Minaylov
f52e9fc578
[FL-2051] BadUSB: new GUI (#844)
* [FL-2051] BadUsb: new GUI
* add missing assets
* skip empty lines and leading spaces
* SubGhz: add alignment check to keystore mess with iv routine

Co-authored-by: あく <alleteam@gmail.com>
2021-11-26 16:53:51 +03:00
Albert Kharisov
3ab9112c21
Fix out of screen drawings (#842)
* Fix lock screen menu
* Fix pin setup in lock menu
* Desktop GUI layer on FS, black status bar
* Desktop: fix spelling
* Fix first start screen
* Fix status bar drawing

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-11-26 15:19:30 +03:00
あく
2db5eee03b
Gui: define status bar workarea, remove unused icon. (#841)
* Gui: define status bar workarea, remove unused icon.

* Format Sources
2021-11-24 21:19:34 +03:00
Albert Kharisov
9b8a139e2b
[FL-1995] New dolphin animations (part 1) (#835)
* Desktop Animation (part 1): Ugly naked ohmygod architecture
* fix butthurt, fix locked scene
* Change SD icons, fixes
* Fix level update animation
* Fixes, correct butthurt
* Clean up code
* furi_assert(0) -> furi_crash("msg")
* Gui: rename none layer to desktop, update docs.

Co-authored-by: あく <alleteam@gmail.com>
2021-11-24 19:21:12 +03:00
gornekich
92c499b41b
[FL-2049] Reset submenu index on exit #840
Co-authored-by: あく <alleteam@gmail.com>
2021-11-24 17:05:23 +03:00
Skorpionm
a13f87fedb
[FL-2047] SubGhz: New GUI ReadRAW view (#832)
* SubGhz: GUI RAW Read view
* SubGhz:  GUI Read RAW refactoring
* SubGhz: fix bug wrong frequency of the allowed transmission
* GUI Read RAW refactoring
* SubGhz: fix set the default frequency
* SubGhz: fix save filename when returning from another menu
* SubGhz: fix Send and Back button behavior

Co-authored-by: あく <alleteam@gmail.com>
2021-11-24 16:59:45 +03:00
Oleg Schwann
68274b6c27
Add Snake game (#829)
* Add snake game
* Applications: Added a classic game https://en.wikipedia.org/wiki/Snake_(video_game_genre)
* Snake Game: Making it impossible to lose button presses
* Use more native press button event
* Snake Game: use low level InputTypePress event instead of InputTypeShort high level unpredictable event

Co-authored-by: LionZXY <nikita@kulikof.ru>
Co-authored-by: あく <alleteam@gmail.com>
2021-11-23 19:07:46 +03:00
tonyfreeman
e54e4a6d77
RPC: Add data field to ping request & response (#836)
* Update protobuf
* Send ping data back
* Add check for has_next, more readability
* Fix nullptr dereference

Co-authored-by: Tony Freeman <tonyfreeman@users.noreply.github.com>
Co-authored-by: Albert Kharisov <albkharisov@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2021-11-23 11:30:54 +03:00
Oleg Schwann
949079cb74
All strange time constants are now frequency multipliers (#834) 2021-11-22 21:49:57 +03:00
Nikolay Minaylov
efded63bcb
USB-UART: New GUI (#826)
* USB-UART: new gui
* Furi: use furi_console for logging instead of printf.
* CDC: calling open/close callbacks on interface change
* fix vcp_tx block on disconnect
* USB mode set by struct pointer
* FuriHal: proper event sequence on vcp reconnect
* disable debug prints
* HAL: add context to UART IRQ's
* Context usage in UART IRQ and CDC callbacks
* USB-UART: geting rid of baudrate limitations
* FuriHal: remove struct pollutant in usb api.

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-11-21 18:17:43 +03:00
gornekich
a5052a0375
[FL-2053] BLE MTU processing #830
Co-authored-by: あく <alleteam@gmail.com>
2021-11-21 17:47:54 +03:00
SG
013ed64cbb
UART echo app (#831)
* HAL: add context to UART IRQ's
* Apps: uart echo/log application
* Sync api
* Another api sync
2021-11-20 01:19:31 +03:00
gornekich
cc044c5033
Fix incorrect RPC session termination on BLE disconnect #828 2021-11-17 21:15:58 +03:00
あく
65e6ab5b8b
[FL-2017] Gui: correct empty folder handling in file_select. #824 2021-11-16 17:10:06 +03:00
SG
4cb986b534
[FL-1904] LFRFID: dedicated reading modes (#823)
* LFRFID: dedicated reading modes
* LFRFID: normal and indala mode
2021-11-16 11:47:49 +03:00
あく
b3d8f0b950
[FL-2038] Power off and auto power off on first start screen (#821)
* Power: change power_off signature to match implementation

* Desktop: auto power off on first start screen and with ok button.

Co-authored-by: SG <who.just.the.doctor@gmail.com>
2021-11-16 03:12:30 +03:00
あく
516a437305
Storage: move factory reset to the place it belongs, add gui version. (#822) 2021-11-16 03:04:33 +03:00
あく
1571d4ec54
Project: enum cast fix. Makefile: blackmagic rule in global makefile (#819) 2021-11-15 22:55:25 +03:00
あく
2e46ec36a7
Lib: update m-lib to latest release. Update m-lib usage across project. (#818) 2021-11-15 20:09:40 +03:00
あく
70d0519178
Subghz: fix crash on arg free (#815) 2021-11-12 18:45:51 +03:00
Anna Prosvetova
558fa5670b
RPC: Add Virtual Display & Unify log tags (#814)
* RPC: Update protobuf sources
* RPC: Add Virtual Display
* Unify log tags
* RPC: Virtual Display placeholder
* Rpc: clear frame buffer callback before confirm.
* Firmware: full assert for hal, move fatfs initialization to furi hal.
* FuriHal: VCP optimizations, thread safe console. Rpc: adjust buffer sizes.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-11-12 16:04:35 +03:00
Nikolay Minaylov
b564e8eb38
[FL-2010] furi-hal-vcp rework (#812)
* [FL-2010] furi-hal-vcp rework
* Fix connect state change on vcp enable
* New thread naming scheme and stack size adjustment.
* Applications: rename worker threads to match new naming scheme.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-11-11 19:17:50 +03:00
Skorpionm
ac8b1457f2
[FL-1931, FL-2005] SubGhz: migration in flipper file format (#807)
* SubGhz: add save key in flipper file format
* [FL-2005] SubGhz: fix stored signals cannot be deleted
* SubGhz: add load key in flipper file format
* SubGhz: fix syntax
* SubGhz: fix bad file upload
* Storage: add function to get the next free filename
* SubGhz: add save RAW  in flipper file format
* SubGhz: add load RAW in flipper file format
* SubGhz: refactoring protocol
* SubGhz: refactoring scene
* SubGhz: fix SubGhzNotificationState define
* Makefile: proper comapre for FORCE

Co-authored-by: あく <alleteam@gmail.com>
2021-11-11 15:49:19 +03:00
あく
5209701add
[FL-1991] Rewrite flash driver (#813)
* Toolbox: fix null pointer dereference in manchester decoder.
* FuriHal: use MPU to protect from null pointer dereference, replace flash driver with our own implementation.
2021-11-10 12:53:00 +03:00
gornekich
90d450368c
[FL-1919] NFC rework with Flipper File Format (#756)
* nfc: allocate nfc device on heap
* nfc: rework save with flipper file format
* nfc: rework nfc device load with flipper file
* nfc: save AID length and data
* nfc: remove file worker usage
* nfc: format sources
* nfc: rework with flipper file format addons
* assets: update EMV resources with flipper file format
* nfc: rework EMV resources parsing with new file format
* assets: fix EMV AID file format
* nfc: fix nfc_device usage

Co-authored-by: あく <alleteam@gmail.com>
2021-11-09 00:55:06 +03:00
gornekich
54dc16134d
[FL-1922] BLE buffer overflow (#789)
* rpc: increase RPC buffer size. Add get available buffer size API
* bt: add flow control characteristic to serial service
* ble: change updating flow control characteristic logic
* rpc: add buffer is empty callback
* bt: add notification about empty RPC buffer
* ble: add more debug info
* serial_service: add mutex guarding available buffer size
* ble: remove debug logs in serial service
2021-11-08 22:41:40 +03:00
coreglitch
4e9e9f32d7
Use NFC device format when NFC app runs with args #810 2021-11-05 15:38:59 +03:00
Nikolay Minaylov
f8d3cc251c
[FL-1984, FL-2004, FL-2010] USB CDC Fixes (#801)
* [FL-1984, FL-2004] USB-UART Fixes, test with high timer task priority
* added forgotten file
* switch from EventFlags to ThreadFlags
* [FL-1984, FL-2010] USB-UART and furi-hal-vcp rework
* Scripts: modernize string formatting.

Co-authored-by: あく <alleteam@gmail.com>
2021-11-04 22:33:28 +03:00
gornekich
3225f40870
[FL-1952] BLE bonding fix (#805)
* furi-hal-bt: add mutex guarding core2 state
* ble-glue: configure ble keys storage in SRAM2
* bt: add load and save ble keys in internal storage
* bt: improve work furi_hal_bt API
* bt: rework app_entry -> ble_glue
* bt: apply changes for f6 target
* desktop: remove furi check
* ble-glue: comment NVM in SRAM2 configuration
* FuriHal: fix flash controller state corruption, fix incorrect semaphore release, implement C1-C2 flash controller access according to spec. Gui: change logging level.
* Libs: better lfs integration with lfs_config.
* Ble: switch C2 NVM to RAM.
* FuriHalCrypto: ensure that core2 is alive before sending shci commands
* Ble: fix incorrect nvm buffer size

Co-authored-by: あく <alleteam@gmail.com>
2021-11-04 20:26:41 +03:00
SG
bb9c464a13
Storage: internal error getter (#806)
* Storage: internal error getter

Co-authored-by: あく <alleteam@gmail.com>
2021-11-04 13:46:45 +03:00
SG
7f94ef3179
[FL-1926] Flipper File Format addons (#753)
* Flipper file format: remove C wrapper
* Flipper file format: open append, float, uint32_t as array, delete key, value count
* Flipper file format: fix scratchpad location
* Flipper file format: add EOL on append
* SubGHZ keystore: update encryption type read and write
* Flipper File Format: enhanced version
* Flipper File Format: fix naming
* Flipper File Format: fix "open" subset naming
* Flipper File Format: tests
* Flipper File Format: file helper naming
* SubGHZ keystore: merge with current state of flipper file format
* Flipper File Format:  update make recipe
* Flipper File Format: open new file method
2021-11-04 13:06:13 +03:00
Albert Kharisov
0c1bcf144b
[FL-1994] Add Saved Struct (#804)
Co-authored-by: あく <alleteam@gmail.com>
2021-11-03 20:22:49 +03:00
Skorpionm
6d548637f2
SubGhz: reading keys from encrypted files (#803)
* SubGhz: add file with manufactory codes, and the ability to add your own manufactory codes for KeeLog
* SubGhz: add encrypt RAW data, add decrypt and get RAW data
* SubGhz: add encrypt  magic_xor_atomo
* SubGhz: parsing atomo using file encrypt
* SubGhz: fix calculating the size of the read buffer
* SubGhz: parsing Nice FLOR S using file encrypt
* SubGhz: add file encrypt nice_flor_s_tx, fix name load file
* SubGhz: fix checking read buffer size
* Update subghz_keystore.c
* SubGhz: fix calculating the size of the read buffer

Co-authored-by: あく <alleteam@gmail.com>
2021-11-03 19:41:07 +03:00
あく
300302cb7c
Fix gpio debug (#802) 2021-11-02 02:49:48 +03:00
Anna Prosvetova
e9e76e144c
RPC: Implement storage_stat_request (#800)
* RPC: Update protobuf sources
* RPC: Implement storage_stat_request
* RPC: Test storage_stat_request
* FuriRecord: fix use after free in destroy method.
* Furi: refactor PubSub and it's usage. Fix allocation in RPC.
* FuriCore: fix memory leak in pubsub
* FuriCore: update unsubscribe method signature in pubsub, make subscription structure lighter.
* FuriCore: remove dead code

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-11-01 23:35:54 +03:00
Albert Kharisov
63fe452746
[FL-1854] NEC42ext displaying (#796)
* Add correct key-reading asset
* IRDA: correct NEC42ext displaying
* IRDA App: correct vibro

There are no double vibro, but 1 vibro for any successful
new signal read, and 1 for sending just read signal.

Co-authored-by: あく <alleteam@gmail.com>
2021-11-01 19:34:50 +03:00
Anna Prosvetova
86bced5b2c
RPC: Screen streaming & Input injection (#794)
* RPC: Screen stream
* Move callback to rpc_screen, implement graceful stop
* RPC: Implement input injection
* Update protobuf submodule
* Gui: thread safe frame buffer callback setter.
* RPC: Keep gui record open

Co-authored-by: あく <alleteam@gmail.com>
2021-11-01 19:26:37 +03:00
あく
22a4bac448
[FL-1934] Core: wipe memory after free. SubGhz: key encryption tool. (#797)
* Core: wipe memory after free. RFID,iButton: fix iterator use after invalidation.

* Debug: support unix wildcards for register matching in svd, update MCU description file and minify it.

* Toolbox: getter for File in FlipperFile.

* Makefile: conditional flashing

* SubGhz: keeloq_mfcodes encryption tool.

* FuriHal: proper IV handling on CBC in crypto. SubGhz: add support for encrypted keeloq keys. Makefile: move formatting to top Makefile.

* SubGhz: rename some function names to match naming scheme.

* SubGhz: encryption tool, fix windows line endings

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-11-01 16:11:25 +03:00
gornekich
146cd51894
[FL-1497] GUI textbox element and widget (#792)
* canvas: add font parameters
* elements: add text box element
* widget: add text box element
* nfc: rework delete and info scene with text box widget
* gui: update documentation
* gui: fix canvas_get_font_params return

Co-authored-by: あく <alleteam@gmail.com>
2021-10-27 21:55:03 +03:00
Skorpionm
26c53f3dfd
SubGhz: Refactoring Read RAW (#791)
* SubGhz: rename save_raw -> read_raw
* SubGhz: add manually saving files to read_raw, confirming that saving is unnecessary, refactoring
* Format sources
* SubGhz: fix runglish

Co-authored-by: あく <alleteam@gmail.com>
2021-10-27 20:37:11 +03:00
Albert Kharisov
10c65daad7
RPC CLI: Change ParallelSafe cli command (#793)
Starting RPC session is parallel safe.
Launching application command do lock check inside.
2021-10-27 18:20:08 +03:00
Nikolay Minaylov
732b9546fc
[FL-1984] USB-UART improvements and fixes (#785)
* [FL-1984] USB-UART fixes
* FuriHal: fix SOF wait on CDC0
* FuriHal: fixed stuck in UART IRQ with ORE event

Co-authored-by: あく <alleteam@gmail.com>
2021-10-26 21:41:56 +03:00
its your bedtime
fae8d8f23c
[FL-1968] Pin code locking (#788)
* Gui: code input module
* Gui: fix size to fit frame
* Desktop: PIN config and lock option
* Gui: code input: cleanup, offset input fields if no header present
* Desktop: move code unlock to desktop_locked scene
* Desktop: fix unlock with back key
* Desktop: bump settings version
* Desktop: correct scene usage.

Co-authored-by: あく <alleteam@gmail.com>
2021-10-26 21:34:31 +03:00
Albert Kharisov
400d672e81
[FL-1955] CLI RPC (#781)
- RPC: added CLI command to start session - all input bytes goes into RPC, all RPC output goes into VCP
- RPC: added command to close session (actually it only notifies transport layer)
- RPC: added recursive rmdir
- RPC: hard-coded listing for root directory (any, ext, int)
- Fixed CLI leak
- Fixed furi_record_delete leak
- Unit tests: repaired
- Unit tests: corrected output - remove excess, change dots with progress spinner
- Unit tests: added leak check
- Unit tests: SD mount check before start

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-26 19:05:28 +03:00
あく
ae016ce464
[FL-1990] Correct release type in copro manifest and rename boot to bootloader (#787)
* World: rename boot to bootloader.
* Scripts: correct release type in copro bundler.
2021-10-26 15:24:14 +03:00
Skorpionm
9d952ed855
[FL-1913, FL-1963] SubGhz: save raw signal, add came atomo decoder (#783)
* File_Worker: getting the name of a new file with an index
* SubGhz: add decoder RAW protocol
* SubGhz: add view Save RAW
* SubGhz: refactoring subghz custom event
* SubGhz: fix syntax
* SubGhz: fix error build
* SubGhz: test build
* SubGhz: refactoring subghz, add rename, delete, start and emulate RAW signal
* SubGhz: fix triangle glitch in save raw view
* SubGhz: fix receiver config scene
* SubGhz: fix transfer after returning from save scene
* Canvas: add font rotation
* SubGhz: raw protocol encoder
* SubGhz: fix error completion of transfer raw encoder
* SubGhz: increased the speed of reading RAW data from a flash drive, displaying the name of the saved file in the Save RAW scene
* Canvas: fix font rotation
* SubGhz: fix navigation save RAW  scene
* SubGhz: add decode came atomo
* Git: renormalize
* Cleanup sources and enums
* Gui: add font direction to canvas reset, canvas init sequence cleanup.
* SubGhz: reorder menu.
* Gui: correct canvas_set_font_direction signature

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-25 17:37:14 +03:00
Nikolay Minaylov
88cee4601a
[FL-1885] USB-UART bridge (#778)
* [FL-1885] USB-UART: app and worker
* [FL-1885] USB-UART: UART on CDC0

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-21 21:12:20 +03:00
gornekich
c2535f4269
[FL-1937] Bluetooth new assets (#774)
* assets: add new ble assets
* bt: update pairing screen with new icon
* bt: add bt status and update status bar
* bt: update statusbar width from thread
* Icons: new BT icon

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-21 19:27:58 +03:00
gornekich
827d99dde3
[FL-1922] Assets compression (#773)
* lib: add heatshrink compress library
* canvas: new icons format
* scripts: add icons compression to assets generation script
* assets: update assets
* furi-hal: introduce furi-hal-compress
* canvas: rework icon drawing with furi-hal-compress
* lib: rework heatshrink lib for dynamic buffer allocation API
* furi-hal-compress: add encode and decode API
* furi-hal-compress: working decode
* furi-hal-compress: support f6 target
* scripts: format sources
* furi-hal-compress: fix incorrect encoder reset
* furi-hal: add compress initialization to f6 target

Co-authored-by: あく <alleteam@gmail.com>
2021-10-21 17:46:36 +03:00
gornekich
af1fd0c46d
[FL-1920] Fix NTAG emulation (#776)
* mifare ultralight: fix read signature command
* nfc_worker: read signature before pages
2021-10-21 15:46:47 +03:00
あく
2751440193
[FL-1970, FL-1965, FL-1872, FL-1689] Python framework, Scripts and fixes (#779)
* Scripts: add flipper lib, migrate ob to flipper lib, update ob.data
* Makefile: speedup build with phony target for .d files
* FuriHal,U8G2: full MGG display support and ERC contrast tuning.
* Desktop: fix dolphin rename artifact.
* Scripts: port otp.py to flipper scripting lib.
* Scripts: add wipe and core1 flashing to flash.py, remove obsolete shell scripts
* Scripts: replace core1 flashing script with global makefile.
* Scripts: final touches and migration to python. Root Makefile for everything.
2021-10-21 15:24:34 +03:00
あく
4997b56498
DisplayTest: controller fine tuning. Disable u8g2 contrast management. (#772)
* DisplayTest: controller fine tuning. Disable u8g2 contrast management.
* DisplayTest: correct initial configuration values. Targets: cleanup dead code.
* DisplayTest: correct initial value for bias.
2021-10-19 14:42:49 +03:00
あく
f390060922
[FL-1942] Applications: Display Test. u8g2 usage refactoring. #770 2021-10-17 23:34:36 +03:00
Albert Kharisov
98830a8a41
[FL-1956] Fix long packets bug, fix Manchester overrun (#766)
Also fix RC6 test to detect this manchester bug
2021-10-16 15:00:21 +03:00
あく
2255060d52
[FL-1961] Cli: device_info format versioning. Detach target from firmware name. #765 2021-10-16 14:25:32 +03:00
あく
0e14545d48
[FL-1945] Firmware, Scripts, Cli: add OTPv2, alternative displays support and 2-step OTP programming. #764 2021-10-15 14:05:14 +03:00
Skorpionm
63428609b7
SubGhz: fix frequency determination in a frequency analyzer (#762) 2021-10-13 22:35:33 +03:00
あく
06444789bb
Makefile: optimize space usage. (#761) 2021-10-13 20:33:09 +03:00
Nikolay Minaylov
e6642b332c
[FL-1930] USB HID (#751)
* [FL-1930] USB HID keyboard test
* [FL-1930] HID mouse demo app
* [FL-1930] BadUSB: RubberDucky script parser. BadUSB test app

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-13 19:38:24 +03:00
Albert Kharisov
1db29eaea8
[FL-1946] RPC App launch (#758)
* RPC: Add App start, lock status
 - Add RPC commands Application start, lock status acquiring.
 - Write tests for RPC App system.
 - Replace Unit Tests application with CLI command. This is for CI needs and for tests that run application.
* Fix NDEBUG build
* Update PB submodule
* Fix RPC print (ENABLE DEBUG PRINT!)
* snprintf -> string_t
* Fix Hard Fault (early mutex free)
* printf -> string_t, format, enable tests
* Update submodule: protobuf
* Applications: rollback unit test naming scheme.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-13 18:39:37 +03:00
its your bedtime
a643bd14be
Archive: fix bounds crossing logic #760
Co-authored-by: あく <alleteam@gmail.com>
2021-10-13 12:53:58 +03:00
あく
a3b69d8030
[FL-1949] Cli: verify all 10 keys in crypto enclave #759 2021-10-13 12:45:23 +03:00
gornekich
943fb1bced
[FL-1721] Bluetooth refactoring (#747)
* ble-glue: add on connect \ disconnect, on send \ received callbacks
* bt: rework service with furi-hal-bt and callbacks
* bt: update battery level on connect
* ble-glue: set one callback with parameters
* bt: rework callbacks, remove unused API
* ble-glue: remove dead code
* furi-hal-bt: add documentation
* ble-glue: apply changes for f7 target
* bt: rename RpcInstance -> Rpc
* ble: add disconnection reason
* ble: don't open bt record from GAP
* bt: fix RPC session close
* Assets: separate targets for icons and protobuf

Co-authored-by: あく <alleteam@gmail.com>
2021-10-12 19:41:42 +03:00
Albert Kharisov
91c5151518
[FL-1472] Clear default button names (#754)
Co-authored-by: あく <alleteam@gmail.com>
2021-10-12 18:05:02 +03:00
its your bedtime
5cb5d15376
Archive: fix delete from favorites tab (#752)
* archive_delete_file vargs, fix wrong path when deleting item from favorites tab
* use string_t for archive vargs funcs
* favorites manual sorting

Co-authored-by: あく <alleteam@gmail.com>
2021-10-12 16:09:34 +03:00
SG
b85a50f912
[FL-1792] RPC service (#698)
* Lib: added nanopb
* Hal rfid: fixed confused arguments
* Lib: update makefile, include nanopb
* Lib: remove nanopb
* Lib: add nanopb as submodule
* Assets: remove protobuf
* Assets: add protobuf message definitions as submodule
* WIP: [FL-1792] Add Protobuf RPC
* WIP: RPC add ping
* Add Ping
* Fix Ping, Add (WIP) storage
* Update submodule
* ble-glue: add ptotobuf to ble
* WIP: Add storage list test
* revert applications.mk
* Add Storage List command
* ble-glue: fix fast updating rx charachteristic
* ble serial: split long ble packets
* Add Storage Read/Write/Mkdir/Delete
* Disable tests
* Rename Element -> File
* Add md5sum, fix test leak
* Regenerate Protobuf
* Fix review comments
* ble-glue: sync f7 target

Co-authored-by: Albert Kharisov <albert@flipperdevices.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2021-10-12 14:48:34 +03:00
Skorpionm
4418e73b26
[FL-1912, FL-1939] Sub-GHz frequency analyzer and add new protocol (#746)
* ToolBox: add manchester-decoder and manchester-encoder
* SubGhz: add new FM config cc1101
* Subghz: add protocol Kia
* SubGhz: fix receiving the last packet Nero Radio
* SubGhz: app protocol CAME Twin (TW2EE/TW4EE)
* SubGhz: add protocol CAME Atomo (AT03EV/ AT04EV)
* F7: sync with F6
* SubGhz: add frequency analyzer
* SubGhz: remove space from file name 
* SubGhz: frequency analyzer add filter and fix view
* [FL-1939] GubGhz: Frequency analyzer redesign
* SubGhz: fix incorrect subghz api call sequence in frequency analyzer worker

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-10 17:35:10 +03:00
its your bedtime
5dbfe3d90a
Dolphin_srv timestamp and butthurt; Desktop_srv refactoring (#750)
* dolphin_srv: save timestamp on deed; desktop_srv minor refactoring
* dolphin_srv timegated butthurt increse, desktop refactoring
* desktop app: update debug screen
* remove debug logging
* increasing icounter affects butthurt value
* Dolphin: correct error message on DolphinStore load

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-07 16:32:37 +03:00
its your bedtime
1dd96419ab
[FL-1917] Archive: fix duplicates in favorites (#749)
* Archive: fix last_offset usage when switching to another tab
* fix the fix
2021-10-07 12:41:30 +03:00
gornekich
5232d5daba
[FL-1905] Fix power off notification (#748)
* view dispatcher: add set view front API
* power: add power off notification
* Gui: rename ViewPort `send_to` API.
* Makefile: add blackmagick support

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-06 18:41:22 +03:00
SG
c8b36dd406
[FL-1791] Flipper file format (#740)
* Lib: new flipper file format library
* Lib: flipper file format cpp wrapper
* Storage: simple function for remove file and check error
* iButton app: remove file worker, use new flipper file format instead
* Dialogs: storage error message
* Storage: simple function for mkdir and check error
* iButton app: error messages
* Libs: update makefile
* RFID app: remove file worker, use new flipper file format instead
* Flipper File: library documentation

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-06 12:40:28 +03:00
Nikolay Minaylov
e0c1928fde
[FL-1857] New USB stack (#735)
* libusb_stm32 USB stack test
* USB: Add dual CDC mode
* USB HID demo, added libusb_stm32 as submodule
* Target F6/F7: remomve unused ll_usb

Co-authored-by: n.minaylov <n.minaylov@flipperdevices.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-06 12:24:09 +03:00
gornekich
42e553bad5
[FL-1723, FL-1662, FL-1870] NFC bug fixes (#745)
* nfc: fix notifications in read EMV sequence
* nfc: set focus on previously saved card
* nfc: add incorrect file format message
* mifare ultralight: increase size of max dump
* elements: draw multiline text only until it fits screen
* nfc: support variable PAN number length
* nfc: change AID display
* nfc: change worker custom event to prevent scene reenter
* nfc: double check for PAN tag
* nfc: fix edit card name appearance
* Nfc: read EMV card without name if PDOL is present.
* Desktop: increase unlock key press interval, switch to OS ticks instead of HAL.
* Desktop: remove debug logging

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-10-05 08:14:19 +03:00
its your bedtime
73a13f584f
Desktop: locked view timeout refactoring, Switch hwmismatch custom view to popup (#744)
Co-authored-by: SG <who.just.the.doctor@gmail.com>
2021-10-04 12:33:31 +03:00
あく
832fb1b795
[FL-1228] FuriHal: add charge suppress API. (#743)
* FuriHal: add charge suppress API.

* FuriHal: add guards to insomnia and charge suppress routines.

* FuriHal: proper API for scheduler in power.

* FuriHal: move charging control from critical section, fix deadlock.

* Gui: use FreeRTOS native timers controls for IconAnimation, fix crash on animation start stop
2021-10-04 10:01:41 +03:00
tonyfreeman
a7edebce69
RFID: Fix integer overflow, fix printf usage (#742)
* Fix comparison of constant 300 with expression of type 'uint8_t' is always false

rfid-worker.cpp:111 if(validate_counts > (5 * 60))

* Fix format string is not a string literal (potentially insecure)

Co-authored-by: Tony Freeman <tonyfreeman@users.noreply.github.com>
2021-10-04 02:30:47 +03:00
あく
89a6c09a7a
[FL-1906] Documentation: add Doxyfile, prepare sources for doxygen. (#741)
* Documentation: add Doxyfile, prepare sources for doxygen.

* Update ReadMe and remove obsolete CLA

* Add contribution guide

* Contributing: update text

* Correct spelling
2021-10-03 13:36:05 +03:00
あく
61aaed8abb
[FL-1908] New animation update scheme (#737)
* Assets: update desktop animation frame rate and cleanup.

* Power: update ViewPort only if changed.

* Gui: tie IconAnimation with View, new update event generation scheme. Desktop: update IconAnimation usage.

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-10-02 20:00:56 +03:00
Anna Prosvetova
6f346597d2
Archive: reorder tabs (#738) 2021-10-02 19:54:10 +03:00
Anna Prosvetova
32467cedd7
Menu: reorder applications (#734) 2021-10-01 14:57:32 +03:00
gornekich
638f276308
[FL-1884] GPIO application (#732)
* gpio: rename gpio application
* bq25896: add reading OTG config
* furi-hal-power: add is_otg_enabled API
* gpio: introduce new GPIO app, add OTG enable / disable
* variable-item-list: add enter callback
* gpio: add output test view and scene
* gpio app: fix GpioItemTester -> GpioItemTest

Co-authored-by: あく <alleteam@gmail.com>
2021-09-30 23:03:28 +03:00
its your bedtime
7a89791b2b
Dolphin_srv: fix state load on startup (#731)
* Dolphin_srv: fix dolphin state load on startup
* Dolphin: new sync and async API, state autosave. Makefile: properly escaped asterisks.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-09-30 22:50:58 +03:00
gornekich
2eafae6b90
[FL-1498] Keyboard save focus (#730)
* text_input: set focus on Save button if text is set
* text_input: add clear API, format documentation
* all: rework text input clean with new API
2021-09-29 17:08:24 +03:00
あく
8b6c466058
Loader: forget menu position on main menu reentry, proper NULL arg passing. Gui: set current item for menu gui module. (#729) 2021-09-29 07:18:28 +03:00
its your bedtime
0126b3aba4
[FL-1850] Archive: limit name length in text input view #728 2021-09-28 19:18:06 +03:00
あく
ec18c1a92a
[FL-1781] Desktop: change first start logic, show only if factory provisioned. (#727)
* Desktop: change first start logic, show only if factory provisioned.
* Desktop: code cleanup, correct first start scene position in scene stack.
* Desktop: Remove unused include
2021-09-28 17:42:52 +03:00
gornekich
61c8f3325a
[FL-1217] Menu refactoring (#726)
* menu: remove dead code
* loader: change views from modules instead of menu service
* dolphin: start main menu with loader API
* applications: don't start menu service
* loader: add debug tools menu
* gui modules: introduce menu model
* loader: remove calls to menu service API
* gui modules: implement menu module
* loader: add menu view
* gui menu: add animation
* applications: remove menu service
* gui modules: rename icon_menu -> menu
* loader: clean up code
* menu module: add documentation, format code
* menu: remove unused parameter
* desktop: use loader to launch primary menu
* Applications: cleaner makefile app declaration. Loader: application autostart
* Gui: cleanup menu and submenu API.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-09-28 16:10:13 +03:00
its your bedtime
1c4e6ec74d
[FL-1824] Dolphin refactoring (#701)
* refactoring p1
* refactoring p2
* cleanups
* locked screen refresh rate fix
* better locked view logic
* seperate dolphin service and desktop app
* Desktop: Favorite app acess (Left key), Settings app
* Desktop settings version, submenu header
* remove unused icon anomation + naming fix

Co-authored-by: あく <alleteam@gmail.com>
2021-09-28 12:40:39 +03:00
Skorpionm
a8981d317a
[FL-1815, FL-1851, FL-1856] SubGhz: preparation for certification, add deleting stored signals and rename file in SubGHz app (#714)
* [FL-1811] FuriHal: move core2 startup to hal init stage, prevent working with flash controller till core2 startup finish. #704
* SubGhz: fix GO0 low on last hop transmission,  decreased DutyCycle in tests
* SubGhz: test_static fix max 5 sec in transmission mode, DutyCycle <23%
* [FL-1815] SubGhz: prohibiting transmission if it is not within the permitted range for the given region
* SubGhz: fix F7 furi-hal-subghz
* SubGhz: fix logic working tests
* SubGhz: fix princeton encoder for test
* SubGhz: add log princeton encoder
* [FL-1856] Subghz: fix output a double error if the file cannot be opened
* [FL-1851] SubGhz: add deleting Stored Signals in SubGHz App
* SubGhz: add rename file SubGhz app
* SubGhz: update stats message in princeton
* SubGhz: correct spelling
* SubGhz: fix FM config,  add hardware signal processing less than 16 μs,  add added filter for processing short signals
* SubGhz: add Scher-Khan MAGICAR Dinamic protocol
* SubGhz: sync fury targets

Co-authored-by: あく <alleteam@gmail.com>
2021-09-28 03:05:40 +03:00
SG
416e1bda35
[FL-1881] iButton cli: enable "OTG" when performing "onewire search" #725 2021-09-27 17:00:03 +03:00
SG
34f9493451
[FL-1747] iButton: fix forgotten timer IRQ #724 2021-09-25 02:13:07 +03:00
SG
acb8508249
[FL-1880] Dialogs: fix semaphore lock (#722)
* Dialogs: fix queued message lock
* Dialogs: file select, fix queued message lock
* Dialogs: file select, free context after freeing callback holder
* Dialogs: better lock, separated wait and free

Co-authored-by: あく <alleteam@gmail.com>
2021-09-24 19:36:53 +03:00
gornekich
d3b58f732f
[FL-1783] Power service refactoring (#718)
* settings power: introduce power settings app
* power: move power API to separate file
* settings power: implement reboot scene
* settings power: add power off scene
* assets: add crying dolphin, fix Subghz assets names
* settings power: fix power off scene GUI
* settings power: add battery info scene
* power: add cli to application on start hook
* power: remove power from main menu
* power: move to power service folder
* power service: rework power off logic
* power: add pubsub events
* bt: subscribe to battery level change, update characteristic
* application: change order of Settings applications
* gui: add bubble element
* power: gui improvements
* application: rename Notification -> LCD and notifications
* Applications: menu order according to documentation and add missing power cli init
* settings power: add disconnect USB scene
* power cli: notify user to disconnect USB after poweroff
* Power: update poweroff message in cli

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-09-24 19:28:02 +03:00
SG
c64052b491
[FL-1042][FL-1485][FL-1747] Metakom emulation fix (#721)
* iButton: Metakom emulation fix
* iButton: do not threat NVIC
* iButton: use proper GPIO from resources

Co-authored-by: あく <alleteam@gmail.com>
2021-09-24 15:16:59 +03:00
its your bedtime
effda5ab44
[FL-1852] Archive: browser offset fix (#716)
* Archive app: check last offset value upon updating offset
* fix browser empty storage hang up

Co-authored-by: あく <alleteam@gmail.com>
2021-09-24 15:03:04 +03:00
SG
1448b9cf66
[FL-1819][FL-1848] About: hw, fw, boot version screens. Misc corrections of the About screens. (#719)
* About: hw, fw, boot version screens
* About: fix comment
* FuriHal: proper ARR in OS tick timer
* GpioTester: all pins on/off option
* Irda: fix release build
* Format sources

Co-authored-by: あく <alleteam@gmail.com>
2021-09-24 14:56:27 +03:00
its your bedtime
4c05f67686
[FL-1823, FL-1824] Archive app: refactoring and UI improvements (#711)
* Archive app: skip empty app folders, file menu in favorites tab, looped tab switching
* refactoring
* cleanup
* better filepath trim
* fix excessive view updates, various small optimizations
* better list_offset calculation, favorites vargs)
* revert poor fix

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-09-21 13:56:33 +03:00
gornekich
0e1922db4d
BT: stop advertising in bt test cli commands (#712)
* bt: stop advertising in bt test cli commands
* furi-hal-bt: add switch context in furi_hal_bt_lock_flash
* Lib: update STM32CubeWB to latest version. Scripts: update supported copro binaries version
* Scripts: proper version extraction from Cube manifest
* bt: add debug application and comment it
* bt: fix stop advertising command
* bt: debug on f7 target
* furi-hal-console: add console tx + new line
* bt: fix debug trace function

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-09-21 12:48:08 +03:00
tonyfreeman
69f54973cc
Nfc: fix incorrect type castings. Global: fix printf usage, types casting, overall cleanup. Drivers: incorrect array index in cc1101 driver. (#713)
* fix 'function cannot return qualified void/bool type'
* Fix variable 'consumed' is used uninitialized
* Fix format string is not a string literal (potentially insecure)
* Fix conflicting types for 'menu_item_get_type'
* Fix implicit conversion from enumeration type 'NfcDeviceType' to different enumeration type 'rfalNfcDevType'
* Fix hal_gpio_init incorrect arguments order
* Fix nfc->dev.dev_name condition will always evaluate to 'true'
* Fix explicitly assigning value of variable to itself
* Fix furi_hal_bt_wait_startup counter overflow
* Fix implicit conversion from 'StorageStatus' to 'SDError'
* Remove #include <sys/param.h>
* Add FIXME
* Fix syntax
* Fixup for 'furi_hal_bt_wait_startup counter overflow'
* nfc: fix different nfc device types
* Drivers: fix incorrect offset in cc1101_read_fifo
* Remove obsolete comment

Co-authored-by: Tony Freeman <tonyfreeman@users.noreply.github.com>
Co-authored-by: gornekich <n.gorbadey@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2021-09-21 12:34:16 +03:00
SG
9b0aa0d6dc
Settings: about screen (#715) 2021-09-20 21:39:52 +03:00
あく
322bdf049d
[FL-1826] Crypto: correct key provisioning procedure. (#709)
* Crypto: correct key provisioning procedure.
* Format Sources
* Cli: target for bootloder in device_info
2021-09-17 12:21:08 +03:00
gornekich
f05153ed5c
[FL-1816] Fix ble radio stack is alive check (#707)
* bt: fix bt_is_alive return, add bt_is_active
* bt: fix bt_is_alive return
* Cli: show heap usage in ps.
* FuriHal: strict sequence for flash operations
* Scripts: add stress test
* Core: proper heap calculation.

Co-authored-by: あく <alleteam@gmail.com>
2021-09-16 19:12:07 +03:00
あく
b4ffc1f81b
[FL-1817] Add firmware target in device_info (#708) 2021-09-16 16:42:21 +03:00
Albert Kharisov
4f233ff0a3
[FL-1800] IRDA: enc/decoder refactoring, Add NEC42 (#705)
* WIP: IRDA: multilen protocol refactoring, NEC42
* IRDA: Refactoring encoder/decoder

Co-authored-by: あく <alleteam@gmail.com>
2021-09-15 20:22:58 +03:00
gornekich
4768177cf5
[FL-1796] Disable bluetooth (#703)
* bt: add authentication for all characteristics
* bt: app_ble cleanup
* bt: add start and stop advertising API
* bt: rework application with start and stop advertising API
* bt: support f7 target
* bt: f7 target remove unused files
* bt: stop advertising in bt debug application
* bt: fix bt status bar update
* bt: change bluetooth On Off order
2021-09-15 19:58:32 +03:00
Skorpionm
8fd411097e
[FL-1758, FL-1790] SubGhz refactoring part 2, fix generation of a new GateTX serial (#696)
* WidGet: fix name  Multiline String Element
* SubGhz: rename  SubGhzProtocol to SubGhzParser and bring it up
* SubGhz: a new way to navigate in receiver views
* SubGhz: fix syntax
* WedGet: add forwarding input type to wedget button callback, fix using a callback in an application
* SubGhz: add assertions and status checks
* SubGhz: fix syntax
* [FL-1790] SubGhz: fix GateTX
* SubGhz:  add 434.42 MHz frequency support
* SubGhz: rename type protocol, add decoder stage names
* SubGhz: fix navigation through received signals when changing scenes
* SubGhz: fix 2-fsk config

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-09-15 18:24:19 +03:00
あく
72ca76097a
[FL-1811] FuriHal: move core2 startup to hal init stage, prevent working with flash controller till core2 startup finish. #704 2021-09-15 17:40:09 +03:00
あく
66f9d946ae
[FL-1490] FuriHal: crypto api. Crypto cli tool. (#702)
* FuriHal: crypto layer
* Furi: add crash routine.
* FuriHal: crypto api. Crypto: cli command to manipulate secure enclave and encrypt/decrypt plain text.
* DeviceInfo: secure enclave verification.
* Rename original to enclave_valid
* Update expected enclave signature to match production keys
* F7: remove unused files
2021-09-15 12:59:49 +03:00
gornekich
95d9140d24
[FL-1795] BLE GAP refactoring (#694)
* ble: remove heart rate profile
* ble-glue: delete dead code
* ble-glue: dis refactoring
* ble-glue: add battery service
* broken ble_common refactoring
* ble-glue: advertise 128 bit service uid
* ble-glue: remove dead code
* ble: advertise service 16 bit uid depending on flipper color
* ble-glue: remove debug
* ble: intriduce serial service
* ble: serial over ble
* bt: serial echo server
* bt: serial service process indicate acknowledge
* bt: serial service event handler update
* bt: refactore battery service
* bt: add battery level apdate API
* power: update battery level on change
* bt: refactore device information service
* app_ble: pairing configuration
* bt: display pin code
* bt: refactor battery service
* bt: refactor device info service
* bt: change advertise timer to freertos one
* bt: separate app_ble to hci and gap
* bt: increase max ble packet size
* gap: refactoring
* bt: refactor serial service
* bt: support f7 target
* bt: not blocking pin code show request

Co-authored-by: Anna Prosvetova <anna@prosvetova.me>
Co-authored-by: あく <alleteam@gmail.com>
2021-09-13 14:25:37 +03:00
its your bedtime
a4dae290e2
[FL-1803] Archive: fix update_offset logic #695 2021-09-10 20:06:34 +03:00
its your bedtime
b6579d66d8
Archive refactoring WIP (#688)
* view_dispatcher queue
* refactoring, all works
* scenes

Co-authored-by: あく <alleteam@gmail.com>
2021-09-10 03:57:43 +03:00
Skorpionm
f385340b2e
[FL-1758] SubGhz refactoring part 1 (#689)
* SubGhz: refactoring
* WeGet: Add support for outputting formatted lines, events center button pressed, center button released
* Variable Item: slightly changed the display of data on the screen
* SubGhz: add show errors, add show preset, refactoring
* SubGhz: refactoring transmitter
* SubGhz: removed unused modules
* SubGhz: Add FuriHalSubGhzPresetOok270Async setting menu
* SubGhz: fix annotation
* SubGhz: add support Nero Radio

Co-authored-by: あく <alleteam@gmail.com>
2021-09-10 03:29:57 +03:00
Albert Kharisov
fbccb9fbaf
[FL-1684] IRDA Add SIRC protocol (#693)
* IRDA HAL: Fill buffer refactoring
* IRDA: Add SIRC protocol
* IRDA: correct adr/cmd bit length
* Disable Unit tests

Co-authored-by: あく <alleteam@gmail.com>
2021-09-10 00:37:32 +03:00
gornekich
9bce160ca6
[FL-1722] BLE custom serial service (#685)
* ble: remove heart rate profile
* ble-glue: delete dead code
* ble-glue: dis refactoring
* ble-glue: add battery service
* broken ble_common refactoring
* ble-glue: advertise 128 bit service uid
* ble-glue: remove dead code
* ble: advertise service 16 bit uid depending on flipper color
* ble-glue: remove debug
* ble: intriduce serial service
* ble: serial over ble
* bt: serial echo server
* bt: serial service process indicate acknowledge
* bt: serial service event handler update
* bt: refactore battery service
* bt: add battery level apdate API
* power: update battery level on change
* bt: refactore device information service

Co-authored-by: あく <alleteam@gmail.com>
2021-09-10 00:11:32 +03:00
gornekich
4b7d9b79a9
[FL-1748] NFC, iButton edit fix (#680)
* nfc: fix edit UID without confirmation
* ibutton: fix key edit
* nfc: fix nfc uid edition
* nfc: fix structure type name
2021-09-02 12:28:40 +03:00
its your bedtime
ae08c88bd6
[FL-1472] Infrared: long names fix (#679)
* Infrared app: fix long button names
* Ble: fix missing icon on start without config.
* Gui: slow but nice string fitting.
* Gui: fit header string in button menu

Co-authored-by: あく <alleteam@gmail.com>
2021-09-02 12:02:34 +03:00
gornekich
420c03bb58
[FL-1720] BLE GUI refactoring (#678)
* dialog_ex: add clean method, fix documentation
* application: add bt debug and settings application
* bt: add debug application
* bt: add settings application
* bt: rework bt service
* bt debug: fix carrier debug app
* assets: add debug animation to main menu
* bt debug: fix bt packet test
* bt service: rework bt service
* bt: cleanup
* Assets: fix spelling
* Ble: wait for core 2 startup complete before initializing radio stack.
* Accessor: remove dead code, switch port PA6 to PA4, because interrupt line 6 is used by down button.
* FuriHal: assert interrupt line on add_int_callback.
* Bt: update icon on core2 startup complete.

Co-authored-by: あく <alleteam@gmail.com>
2021-09-02 02:22:40 +03:00
Skorpionm
e17336498d
[FL-1756, FL-1769, FL-1776, FL-1759] Gui: input events complementary V3, refactoring. SubGhz: read/emulate fixes. Cleanup. (#684)
* Gui: move rotation logic to ViewPort, replace delayed View switch in ViewDispatcher with event filtering and redirection to previous view.
* SubGhz: add function description
* Gui, Input: add event id to input events.
* SubGhz: fix "crashing on ?"
* SubGhz: add icon scanning
* SubGhz: updated interface read scene,  updated interface config scene
* Assets: update subghz assets
* SubGhz:  replaced the picture in the read scene, changed the paths to additional files
* SubGhz: fix deadlock in timer callback
* SubGhz: fix icon read scene
* SubGhz: fix icon read scene
* SubGhz: fix duble text transmitter scene
* SubGhz: correct spelling. Gui: bigger queue for ViewDispatcher.
* SubGhz: fix creation and transmission of dynamic code without the presence of a manufactory key
* SubGhz: fix keelog, setting a name in the absence of a manufactory key
* SubGhz: fix load bad keelog key
* Format sources
* Furi: remove garbage from core. GpioTester: fix memory leak and cleanup
* Accessor: remove obsolete notification code
* MusicPlayer: remove input event injection
* Input: rename id to sequence

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-09-02 00:05:00 +03:00
Anna Prosvetova
3ed26e61eb
NFC: Fix typo in the struct name (#683) 2021-09-01 09:07:53 +10:00
あく
433025b5c7
Input, Gui: total events complementarity on all levels (#681)
* Cli: add missing const in cli_write.
* Gui, Input: bit fields based key complementarity on all levels, key and type names API.
* Gui: minor cleanup of bit filed usage
2021-08-31 11:22:52 +03:00
Skorpionm
6f7bcdf9a7
[FL-1755, FL-1756] added LL_DeInit timers, removed Analyze scene, redesigned astomatic frequency change mechanism, updated subghz read scene interface (#677)
* SubGhz: Fix Timer hopping
* SubGhz: add display of received packages and their maximum number. redesigned interface, the maximum number of received packages increased to 50
* SubGhz: add clearing history on exit read scene, jump after saving the key into the history of received signals
* SubGhz: Fix honoring the width of the icon for transmitter scene
* RFID: Fix [FL-1755] freeze after key emulation
* SubGhz: drop analyze scene and views
* SubGhz: fix save scene
* Input, GUI: new event delivery scheme that groups event for complementarity.
* Gui: update View Dispatcher documentation
* Gui: remove dead code, wait till all input events are delivered in ViewDispatcher in queue mode.
* Gui: update comment in ViewDispatcher
* FuriHal: fix incorrect clock disable invocation
* FuriHal: proper include
* SubGhz: properly reset history in receiver view
* Gui: correct view switch order and non-complementary events discarding

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-08-30 23:05:09 +03:00
its your bedtime
48c29aef29
[FL-1539] Archive app: correct cursor index after key renaming #675 2021-08-30 14:33:12 +03:00
Skorpionm
663dbbfe9f
SubGhz: frequency hopping mode (#671)
* SubGhz: fix assert on worker double stop.
* SubGhz: add hopping mode (315.00, 433.92, 868.00)
* SubGhz: add support for new alarms on the keelog protocol
* SubGhz: update te in princeton protocol
* SubGhz: move static to tests, rename sniffer to hopper/auto, remove delay from timer thread, optimize locking strategy.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-08-29 16:05:15 +03:00
Skorpionm
0a8a944e10
Skorp subghz signal archive (#667)
* SubGhz: Add millis() furi, add subghz history struct
* SubGhz: Fix subghz history
* Gubghz: Fix code repeat  history, add clean history
* SubGhz: reading and adding keys to history
* Gui: Renaming Sub 1-Ghz -> SubGhz
* Archive: Renaming Sub 1-Ghz -> SubGhz
* SubGhz:  Add menu history, modified button for sending a signal, changed output of data about accepted protocol
* Archive: Fix name subghz
* SubGhz: Menu navigation
* Assets: Add assets/SubGHz/icon.png
* Assets: add new icons for subghz
* SubGhz: Fix name Add manually scene
* SubGhz: Fix load icon Read scene. rename encoder struct,  rename protocol function load from file, add load raw data protocol, add info pleasant signals all protocol
* SubGhz: fix memory leak
* SubGhz: change of receiving frequency for read scene
* SubGhz: Add save/load frequency and preset, add automatic configuration of transmit/receive to the desired frequency and modulation, add button "save" config scene
* SubGhz: Fix frequency and preset, fix frequency add manualli scene, fix re-executing the parser
* Furi-hal-subghz: add 2-FSK config, fix ook config 650KHz BW Tx filter
* Fix formatting and release build
* SubGhz: Delete read scene
* SubGhz: Fix frequency add manualli scene,  refactoring code
* SubGhz: 2 profiles for OOK, fix broken build.
* SubGhz: Add passing static codes from read scene, add notification read scene, refactoring code
* SubGhz: fix assert on worker double stop.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-08-28 16:51:48 +03:00
its your bedtime
1b6a942f4a
[FL-1690] Archive app: favorites.txt (#662)
* Archive: file parsing wip
* Archive: favorites.txt read, open keys
* Archive: add to fav/ delete works
* Archive: newline fix
* Archive: refactoring 1/2
* Archive: delete from favorites too if pinned
* Archive: rename handling and refactoring
* Archive: cleanups
* Archive: file_worker fix
* Archive: fix offset issue + cleanups
* Archive: favorites on internal storage

Co-authored-by: Anna Prosvetova <anna@prosvetova.me>
Co-authored-by: あく <alleteam@gmail.com>
2021-08-28 14:46:11 +03:00
SG
941b733046
[FL-1744] CLI: rename tm to ikey, add onewire search command (#672)
* CLI: rename tm to ikey, add onewire search command
* Cli onewire: removed delimiters in addresses

Co-authored-by: あく <alleteam@gmail.com>
2021-08-26 21:15:43 +03:00
あく
dd8a90957f
Fix SubGhz test views erratic behavior on mode switch. New bootloader image. (#669)
* Assets: add bootloader DFU icon.
* SubGhz: locking model in test views, wait for calibration complete on frequency change.
2021-08-24 02:52:59 +03:00
SG
153666f73f
F6: USB glue cleanup and fixes (#666)
* USB-CDC: accepting the next data packet only if we process previous data
* USB-CDC: use USB FS packet size
* HAL-console: puts method
* Check: print assertion data
* FuriHal: rx stream free space aware CDC confirmation.
* Bootloader: pull down USB lines, leave the rest to the firmware or bootloader
* F6: cleanup and move USB code to usb-glue folder, add USB suspend/resume events to VCP, cleanup target.mk, fix missing motd message in cli when using minicom.
* F5: cleanup the rest of USB glue code, adjust LPM and Power info data in descriptor.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-08-22 13:43:45 +03:00
Albert Kharisov
e6d5f4038b
[FL-1696, FL-1685] IRDA: Add RC5, decoder refactoring (#663)
* [FL-1696] IRDA: Split decoders and protocols
* IRDA: Restruct directories.
* IRDA: fix long timings
* [FL-1685] IRDA: Add RC5

Co-authored-by: あく <alleteam@gmail.com>
2021-08-20 23:51:15 +03:00
gornekich
ecff31d228
[FL-1643] NFC emv assets (#661)
* assets: add EMV AID table for NFC app
* file-worker: add searching for value by the key
* nfc: add emv parser helpers
* assets: add country and currency codes
* nfc: add country and currency code parsing
* emv_decoder: add country and currency code support
* nfc: add AID. currency and country display
* nfc: rework bank_card view
* nfc: add currency and country save
* assets: change emv chip asset
* nfc: change asset in bank card
* gui: add frame element to widget
* nfc: add bank card frame, add documentation
* rfal: fix long APDU command emulation
* nfc: fix typos
* Scripts ReadMe: assets delivery command

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-08-20 22:56:43 +03:00
gornekich
227ef47e2d
[FL-1641] File select fix #658
Co-authored-by: あく <alleteam@gmail.com>
2021-08-19 03:24:52 +03:00
Albert Kharisov
5f6aff2255
[FL-1472, FL-1596, FL-1673] IRDA: stability improvements (#655)
- Restrict with 31 bytes length for remote and signal name
- Don't stuck for 0 PWM cycle timings
- Support timings > 65535 PWM cycles
- Fix remote file open error
- Add IRDA TX debug redirect
- Add remote parse error print, improve parsing, support tabs
- Fix stucks with uncorrect RAW signal values, long strings in remote file, etc
- Fix HAL signals capturing (save previous read value)
- Fix leak in case of failed parsing
2021-08-19 03:18:42 +03:00
SG
9d38f28de7
[FL-1682] Faster file receiving function. Storage management scripts. (#647)
* Storage-cli: the file write function is splitted into a function for working with text and function for raw data
* Storage-cli: read_chunks, renamed write_raw to write_chunk
* Storage-cli: fix typo
* SD Hal: fixed wrong read/write block address
* HAL-console: printf
* Storage benchmark: more popular sizes
* Toolbox: md5
* Storage-cli: better read_chunks function, md5 hash function
* Notification: fixed incorrect error message when loading settings
* Storage-cli: stat command
* Storage-cli: stat, "/" is also storage
* Scripts: add storage managment script
* Scripts, storage lib: send command with known response syntax instead of SOH
* Scripts: python3 from env
* Storage-cli: fixed mess with error texts
* Storage-cli: write, show welcome message only if we didn't have any errors
* Storage: poorly fixed folders copying
* Storage: close an old file if an error occurred while opening a new file
* Storage-cli: fixed storage info spacing
* Scripts: use positional arguments in storage.
* Scripts: explicit string encoding and decoding, documentation in comments.

Co-authored-by: あく <alleteam@gmail.com>
2021-08-19 01:06:18 +03:00
あく
d04deb48b8
Dolphin: fix archive double start crash (#659) 2021-08-18 18:06:55 +03:00
あく
f02cec45a0
[FL-1473, FL-1651] Update STM32CubeWB to latest version. Radio firmware bundle. (#642)
* FuriHal: update STM32CubeWB to latest version.
* Makefile: debug other script
* FuriHal: correctly handle 0 size transfers in VCP
* Dolphin: cleanup and minor timer tuning.
* FuriHal: update FreeRTOS config with bigger timer command queue.
* FuriHal: delayed irq enabling, fixes missing ticks.
* FuriHal: use SFSA to determine free space for internal FS, update linker script to use as much space as theoretically possible.
* Scripts: update core2 flashing scripts and OB data.
* Github: bundle resources, core2 firmware and supplementary data.
* GitHub: versioning for supplemental artifacts
2021-08-17 12:41:08 +03:00
its your bedtime
1f192c4a48
[FL-1675] Dolphin scene and included apps removed #638
Co-authored-by: あく <alleteam@gmail.com>
2021-08-17 00:53:35 +03:00
gornekich
c122317468
[FL-1526] Mifare Ultralight emulation (#645)
* rfal: add discovery parameter for passing listen activation
* nfc: add discovery parameter to furi_hal_nfc_listen
* mifare_ul: add emulation parsing commands
* nfc: add mifare ul emulation
* nfc: switch to mifare ultralight emulation form menu
* furi-hal-nfc: add first frame reception in emulation mode
* nfc: change argument check
* nfc: rework nfc worker and mifare ul lib
* mifare_ul: add write and cnt increment commands
* nfc: add card modification check
* mifare_ul: add data changed flag
* nfc: add shodow files
* nfc: add restore original file

Co-authored-by: あく <alleteam@gmail.com>
2021-08-17 00:45:04 +03:00
its your bedtime
e1d80d5402
responsive ui for not implemented features in lock menu (#648)
Co-authored-by: あく <alleteam@gmail.com>
2021-08-16 23:50:49 +03:00
Skorpionm
a024e470b7
SubGhz: read and save static remotes. Create new static and dynamic remotes. (#646)
* SubGhz: the functions of saving loading KeeLog have been modified, saving KeeLog is prohibited
* SubGhz: Fix displaying Nice FlorS in the Raed scene
* SubGhz: Fix displaying Faac SLH in the Raed scene
* SubGhz: Fix displaying iDo in the Raed scene
* SubGhz: Fix displaying Star Line in the Raed scene
* SubGhz: Fix displaying Nice Flo in the Raed scene, added save and load functions. (testing needed, no remote control)
* SubGhz: subghz_beginadded common encoder upload signal
* SubGhz: add Came encoder
* SubGhz: modified pricenton encoder, fix view transmitter hide the "Send" button if there is no encoder
* SubGhz: add nice flo encoder, need testing no remote control
* SubGhz: add gate_tx encoder
* SubGhz: add nero_sketch encoder
* SubGhz: add keelog encoder
* SubGhz: add long upload upload while the button is pressed while releasing the transfer is over, with a check for sticking (maximum 200 upload repetitions)
* SubGhz: fix max upload
* SubGhz: Fix structure subghz add encoder
* SubGhz: add generating and sending a dynamic keelog key, refactoring the code
* SubGhz: add notifications
* SubGhz: add creating a new remote control (Pricenton, Nice Flo 12bit, Nice Flo 24bit, CAME 12bit, CAME 24bit, Gate TX, DoorHan)
* SubGhz: Fix load file, fix scene start
* Subghz: Fix show key
* SubGhz: Fix subghz_cli
* SubGhz: Fix furi-hal-subghz
* Format sources
* SubGhz: standard notification scheme, fix broken assert in DMA.
* SubGhz: move level alignment logic to furi-hal-subghz, fix spelling, cleanup.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-08-16 22:56:23 +03:00
あく
129031e779
Cli: ctrl+c reset buffer (#639) 2021-08-13 16:18:13 +03:00
Skorpionm
1cfa857f98
[FL-1610] SubGhz: scene based application, PT save and replay (#630)
* SubGhz: scene based application
* SubGhz: encoder/decoder separation, DMA streaming, update app and cli.
* SubGhz: 2 stage async tx complete, minor cleanup
* SubGhz: 2 stage async tx complete, FIX state pin end transmit
* SubGhz: Pricenton, receive TE signal
* SubGhz: Pricenton, add save data, add load data
* SubGhz: Add Read scene, Fix pricenton save, load funtion
* SubGhz: Add Read, Receiver, SaveName scene
* SubGhz: Read and Save (pricenton)
* SubGhz: add Load scence
* SubGhz: Fix select file scene, add load scene, add transmitter view, add send tx pricenton
* SubGhz: Fix pricenton encoder, fix transmitter send
* SubGhz: modified Pricenton Encoder (added guard time at the beginning), modified CC1101 config, code refactoring
* SubGhz: Fix pricenton encoder defalut TE
* Archive: Fix path and name SubGhz
* Archive: Fix name app SubGhz
* GubGhz: Came: add Save, Load key
* GubGhz: GateTX: add Save, Load key
* GubGhz: NeroSketch: add Save, Load key
* Github: better linters triggers
* SubGhz: adding fast loading keys Archive -> Run in app
* GubGhz: KeeLog: add Save, Load key, key generation from the serial number of the meter and the button
* SubGhz: format sources and fix compilation
* FuriHal: add subghz configuration description for AGC section
* SubGhz: save only protocols that can be saved. Cleanup.
* Github: lint on pull requests

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-08-12 17:42:56 +03:00
あく
37d7870e52
[FL-1666] Bootloader: info screen when we going to DFU. FuriHal: port SPI to LL. Cleanup. (#634)
* FuriHal: port spi to ll. Bootloader: add spi and display.
* Makefile: rollback disabled freertos introspection
* FuriHal: spi lock asserts. F6: minor cleanup port sdcard shenanigans to furi_hal_gpio.
* SdCard: port missing bits to furi-hal-gpio
* FuriHal: fix broken RX in SPI, update SPI API usage. RFAL: more asserts in SPI platform code.
* GUI: clear canvas on start. FuriHal: no pullup on radio spi bus.
* FuriHal: use check instead of assert in spi lock routines
* FuriHal: remove timeouts
* SdHal: add guard time to SDCARD CS PIN control.
* FuriHal: proper name for SPI device reconfigure routine. SdHal: one more enterprise delay and better documentation.
* Bootloader: update DFU text and add image.
* FuriHal: drop unused ST HAL modules.
* SdHal: fixed swapped hal_gpio_init_ex arguments
* SpiHal: fixed swapped hal_gpio_init_ex arguments
* IrdaHal: use hal_gpio_init instead of hal_gpio_init_ex
* RfidHal: fixed swapped hal_gpio_init_ex arguments

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-08-12 11:48:05 +03:00
Albert Kharisov
5ed9bdbc37
[FL-1652, FL-1554] IRDA: Continuous transmitting (#636)
* [FL-1652] IRDA: Continuous transmitting
* continuous encoding and sending signals by pressing button on menu
* fast buttons scrolling in remote menu
* bruteforce: stop reading file if progress == 100%
* IRDA: .hpp -> .h
* [FL-1554] IRDA: xTaskNotify -> osEventsFlagSet
* IRDA: some stability fixes
* Irda: minor cleanup, api-hal to furi-hal rename.

Co-authored-by: あく <alleteam@gmail.com>
2021-08-11 20:51:06 +03:00
its your bedtime
f465220066
[FL-1632] Dolphin: feed mini game (#627) 2021-08-11 19:55:56 +03:00
Anna Prosvetova
b05453ecff
RFID: Fix various EM-Marin typos (#635) 2021-08-11 02:09:51 +03:00
SG
b8b0417374
[FL-1629] Better RFID writing (#632)
* RFID: ground the antenna when writing
* RFID: forced switch to indala mode
2021-08-09 15:33:13 +03:00
SG
c799fcf416
Storage: fixed internal info if name is null (#631) 2021-08-09 04:27:51 +03:00
あく
0a97d6913c
Rename api-hal to furi-hal (#629) 2021-08-08 21:03:25 +03:00
あく
7907cb232b
Applications: unified entry point naming scheme, drop dead code, cleanup. (#628) 2021-08-07 19:54:42 +03:00
Albert Kharisov
ba399abb5d
IRDA: Use DMA for async TX (#608) 2021-08-06 00:11:35 +03:00
its your bedtime
9c38efd4ef
[FL-1427] Dolphin: new assets and engine rework (#546) 2021-08-05 23:49:04 +03:00
gornekich
5741ed2bd5
[FL-1595] Add EMV tags (#625)
* nfc: add expiration date tag to emv parser
* nfc: add expiration date save and display
* nfc: add long apdu test command
2021-08-04 21:58:11 +03:00
gornekich
841804026e
[FL-1619] NFC long APDU emulation (#623)
* nfc: add apdu sequence exchange debug scene
* api-hal-gpio: fix GPIO initialization
* nfc: pull down nfc chip IRQ pin

Co-authored-by: あく <alleteam@gmail.com>
2021-08-03 20:24:20 +03:00
SG
15592682ad
Notification settings: correctly count values with a zero index (#621) 2021-08-03 20:07:39 +03:00
あく
bf6c9fe114
Applications: add stack_size to keypad_test and assert in furi thread (#620) 2021-08-02 18:32:15 +03:00
SG
95f44f4d33
[FL-1625] Overcurrent monitoring. Cli command for external 3.3v dcdc control. (#615)
* Apps: power observer for overcurrent monitoring
* Power: cli command for enable\disable externat 3.3v dcdc

Co-authored-by: あく <alleteam@gmail.com>
2021-08-02 14:15:24 +03:00
SG
6926cf8b7e
[FL-1449] Indala reading and writing (#616)
* Rfid: indala 40134 validation and decoding
* Rfid: show indala info
* Rfid: decoder to output comparator signal on gpio pins
* Rfid: working indala 40134 decoder
* HAL: added function to change rfid timer parameters on the fly
* RFID: Indala reading, card detection, card verification
* Rfid: indala writing
2021-08-02 01:11:18 +03:00
SG
fb80f9537f
[FL-1616] RFID: fix HID emulation (#610)
* Rfid: fixed HID emulation by adding zero pulse every 4 bits
* Rfid: HID emulation fixed with DSP based FSK oscillator.
2021-07-30 14:12:36 +03:00
あく
4c85bfedca
[FL-1620] Cli command list crash fix. Correct name validation in scripts. (#613)
* Scripts: fix incorrect name validation regexp.
* Cli: fix command list iteration.
2021-07-29 18:27:06 +03:00
gornekich
91c1eaf5a8
[FL-1543] Scene manager search scene API (#611)
* scene_manager: search -> search_and_switch_to previous_scene
* scene_manager: add search and switch to another scene API
* scene_manager: Navigation -> Back event
2021-07-28 17:52:00 +03:00
あく
1c58de24f5
Nfc: switch to HAL ticks. ApiHal: small cleanup and refactoring. (#609) 2021-07-28 11:45:42 +03:00
あく
4c1ac2a13d
[FL-1590] SubGhz: fix incorrect limits on frequency that were causing crashes #607 2021-07-27 14:47:45 +03:00
its your bedtime
2313b948c6
[FL-1613] First start screen assets update #606 2021-07-26 21:08:41 +03:00
SG
81080a3a8b
[FL-1191] Storage: CLI mkdir command #603
Co-authored-by: あく <alleteam@gmail.com>
2021-07-25 14:55:23 +03:00
gornekich
ebd158a823
[FL-1542], [FL-1603] Generate random name (#602)
* Lib: add random name library
* Text_input: add default text clearing
* All: rework all applications with new text_input API
* Nfc: fix removing dev file on save_name scene enter
* Lib: move all free radicals to toolbox and update API usage.

Co-authored-by: あく <alleteam@gmail.com>
2021-07-25 14:34:54 +03:00
its your bedtime
413e3d5013
[FL-1435] correct text position for "Successfully written" msg #600
Co-authored-by: あく <alleteam@gmail.com>
2021-07-23 16:42:48 +03:00
its your bedtime
d25dabe025
[FL-1606] Hide "Unlocked" message on any user interaction #599
Co-authored-by: あく <alleteam@gmail.com>
2021-07-23 16:15:25 +03:00
gornekich
3f640e8f1c
[FL-1549] Gui Widget module (#598)
* gui_widget: rework with mlib container
* widget: rename gui_widget-> widget; gui_element->widget_element
* gui: move widget from nfc to gui/modules
* nfc: rework widget usage
* nfc: return to ReadEmvAppSuccess scene after ReadEmvDataSuccess exit

Co-authored-by: あく <alleteam@gmail.com>
2021-07-23 16:09:34 +03:00
SG
ad421a81bc
[FL-1191][FL-1524] Filesystem rework (#568)
* FS-Api: removed datetime manipulation functions and most of the file flags
* Filesystem: common proxy api
* Filesystem: renamed to Storage. Work has begun on a glue layer. Added functions for reentrance.
* Storage: sd mount and sd file open
* Storage: sd file close
* Storage: temporary test app
* Storage: free filedata on close
* Storage: sd file read and write
* Storage: added internal storage (LittleFS)
* Storage: renamed internal commands
* Storage: seek, tell, truncate, size, sync, eof
* Storage: error descriptions
* Storage: directory management api (open, close, read, rewind)
* Storage: common management api (stat, fs_stat, remove, rename, mkdir)
* Dolphin app and Notifications app now use raw storage.
* Storage: storage statuses renamed. Implemented sd card icon.
* Storage: added raw sd-card api.
* Storage settings: work started
* Assets: use new icons approach
* Storage settings: working storage settings
* Storage: completely redesigned api, no longer sticking out FS_Api
* Storage: more simplified api, getting error_id from file is hidden from user, pointer to api is hidden inside file
* Storage: cli info and format commands
* Storage-cli: file list
* Storage: a simpler and more reliable api
* FatFS: slightly lighter and faster config. Also disabled reentrancy and file locking functions. They moved to a storage service.
* Storage-cli: accommodate to the new cli api.
* Storage: filesystem api is separated into internal and common api.
* Cli: added the ability to print the list of free heap blocks
* Storage: uses a list instead of an array to store the StorageFile. Rewrote api calls to use semaphores instead of thread flags.
* Storage settings: added the ability to benchmark the SD card.
* Gui module file select: uses new storage api
* Apps: removed deprecated sd_card_test application
* Args lib: support for enquoted arguments
* Dialogs: a new gui app for simple non-asynchronous apps
* Dialogs: view holder for easy single view work
* File worker: use new storage api
* IButton and lfrrfid apps: save keys to any storage
* Apps: fix ibutton and lfrfid stack, remove sd_card_test.
* SD filesystem: app removed
* File worker: fixed api pointer type
* Subghz: loading assets using the new storage api
* NFC: use the new storage api
* Dialogs: the better api for the message element
* Archive: use new storage api
* Irda: changed assest path, changed app path
* FileWorker: removed unused file_buf_cnt
* Storage: copying and renaming files now works between storages
* Storage cli: read, copy, remove, rename commands
* Archive: removed commented code
* Storage cli: write command
* Applications: add SRV_STORAGE and SRV_DIALOGS
* Internal-storage: removed
* Storage: improved api
* Storage app: changed api pointer from StorageApp to Storage
* Storage: better file_id handling
* Storage: more consistent errors
* Loader: support for NULL icons
* Storage: do nothing with the lfs file or directory if it is not open
* Storage: fix typo
* Storage: minor float usage cleanup, rename some symbols.
* Storage: compact doxygen comments.

Co-authored-by: あく <alleteam@gmail.com>
2021-07-23 15:20:19 +03:00
gornekich
49af516ec7
[FL-1547], [FL-1500] NFC app v1 (#593)
* nfc: remove mifare read debug view and scene
* nfc: change mifare ultralight data structure
* mifare_ultralight: add more commands
* nfc: add emulate mifare ul scene
* nfc: rework data structures, remove debug scenes and views
* nfc: add read emv scenes
* nfc: mifare emulation wip
* nfc cli: increase detecting time
* nfc: save nfc files with new format
* nfc: store Mifare Ultralight
* nfc: start loading mifare ultralight
* nfc: add delete scenes
* nfc: add edit UID and name
* nfc: finish parsing uid and mifare ul data
* nfc: delete success fix
* gui_widget: introduce GuiWidget
* gui_widget: add string element
* gui_widget: add button element
* gui_widget: move free elements into gui_widget
* nfc: rework info scene with GuiWidget
* nfc: rework device info scene
* nfc: rework delete scene gui
* nfc: add compatible script support
* nfc: rework emv reading scenes
* nfc: rework bank card save
* nfc: add bank card custom view
* gui_widget: add icon element
* nfc: add icon to bank card
* nfc: start worker after switching view

Co-authored-by: あく <alleteam@gmail.com>
2021-07-22 09:05:07 +03:00
Albert Kharisov
769ab2aef2
[FL-1489] IRDA: move to FileWorker (#594)
* [FL-1489] IRDA: move to FileWorker, fixes

* Use FileWorker
* Use file_select to select remotes
* Fix some crashes
* Add RAW parsing restrictions
* Remove excess scene (LearnDoneAfter)
* Move all file system logic to standalone object
2021-07-22 03:07:00 +03:00
あく
f25d000d53
[FL-1558] Technical Debt: console, bootloader, targets, stdglue, etc... (#590)
* ApiHal: console abstraction, change uart baud rate to 230400. Bootloader: drop F5. Furi: prevent thread local output to serial console in stdglue.
* ApiHal: take control over system initialization, reorder some subsystems in a hope of fixing USB issues.
* Main: cleanup dead code. ISR: take care of HSECSS by our self. USB: leave clock configuration alone.
* F6 cube: switch RCC to LL.
* Cli: rollback return behavior.
2021-07-20 20:14:42 +03:00
its your bedtime
0dc4081b85
[FL-1493] text input: fix "up" key behaviour #591 2021-07-20 04:56:51 +03:00
あく
3a88386aae
Cli: rename stack free size to stack watermark (#589) 2021-07-19 04:07:50 +03:00
あく
66bd59b3cd
Cli: give input command CliCommandFlagParallelSafe flag (#588)
* Cli: give input command CliCommandFlagParallelSafe flag
2021-07-19 03:16:15 +03:00
あく
b6f6378628
Cli: insomnia safe flags and better insomnia handling in cli (#587) 2021-07-18 22:08:26 +03:00
あく
ddfdbc0530
[FL-1530] Cli: better Сtrl-С polling (#586) 2021-07-18 21:52:04 +03:00
あく
421a0f6b97
[FL-1546, FL-1534, FL-1550] Drop F5, Certification preparation, Global application start lock (#585)
* Firmware: drop F5 target
* Rename app-loader to loader
* Update code owners file
* Loader: global application start lock API, minor refactoring
* Archive: update loader usage
* Cli: Command flags, global application start lock
* Apps: update cli API usage
* Bootloader: minor refactoring
* Firmware: minor build refactoring
* SubGhz: GUI packet test
* SubGhz: drop packet transmission and unused presets
* Github: drop F5 from build
* Archive: favorites
* Archive: a little bit more of Favorites
2021-07-18 21:09:00 +03:00
あく
fbb81483ae
[FL-1555] Cli: update motd (#584)
* Cli: update motd
* Cli: autocomplete and cursor.
* Cli: one line history.
* Cli: minor cleanup, remove double flush, remove prompt on empty autocomplete
2021-07-17 17:14:34 +03:00
Albert Kharisov
30ae16c2e1
[FL-1470] Support archive for IRDA (#582)
Co-authored-by: あく <alleteam@gmail.com>
2021-07-16 19:50:18 +03:00
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
gornekich
a837bc5d00
[FL-1537] NFC launch from archive (#580)
* archive: pass full file path as App argument
* nfc: add starting emulation from Archive
* nfc, ibutton: rework setting key name with path lib
* archive: revert launching app with full file path

Co-authored-by: あく <alleteam@gmail.com>
2021-07-16 00:39:21 +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
SG
e31999b116
[FL-1371] Lfrfid app: add manufacturers to "Add manually" scene (#577)
* Lfrfid app: add manufacturers to "Add manually" scene
* Lfrfid app: fix submenu name size
2021-07-13 12:06:54 +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
あく
c3fda0c8c3
[FL-1491] Gui: input injection in screen stream (#573)
* Gui: input injection in screen stream
* Cli: expose ASCII table in public header
2021-07-09 05:16:54 +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
あく
607e873404
BLE: fix incorrect RSSI calculation. Firmware: don't mark system as tainted on test releases. (#567)
* BLE: correct RSSI calculation routine.
* Firmware: only guard boot on production releases.
* BLE: proper float formatting in cli
* BLE: faster RSSI refresh
2021-07-07 00:23:59 +03:00
SG
54114553c1
[FL-1517] Maximum heap block stat for os_info cli cmd. (#564)
* Memmgr: heap_get_max_free_block function. Add "Maximum heap block" to os_info cmd.
* Cli: split os_info into ps and free commands

Co-authored-by: あく <alleteam@gmail.com>
2021-07-05 16:01:02 +03:00
SG
f153a745eb
[FL-1320] Fix archive memleak (#565)
* iButton: fix timer initialization
* Archive: fix strings memleak
* Archive: optimize string handling
* Archive: fix strings non-memleak
2021-07-05 15:34:58 +03:00
SG
29da0e360c
[FL-1329] Settings (#563)
* Menu: secondary menu rendering
* Manu: reset window position on enter to new menu
* App-loader: settings menu
* Applications: add settings app list
* App backlight-control: all work related to turning off the display is now in the notification app
* App notification: settings save and load
* Gui: variable item list module
* App: new notification settings app
* Display: backlight is now fully serviced in the notification app
* Gui: update variable item list module documentation
2021-07-05 01:03:56 +03:00
SG
7734fb4018
[FL-1371][FL-1502] Lfrfid app: fixes. (#555)
* Gui module byte-input: changed api
* Gui: changed font height in multiline text according to guideline
* Apps lrfid, nfc: changed send and receive icon
* App lfrfid: fix text, fix scene switсh
* Elements: multiline text framed, fix paddings
* Gui: remove duplicate definition of elements_multiline_text_framed
* App NFC: update byte_input callback signature
* App subghz: fix text lines in capture scene
* App subghz: position of the text is aligned with the guidelines and other scenes
* App subghz: removed mockup

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-07-04 19:01:16 +03:00
あく
f82a4a2260
Cli: add timestamp to device_info command (#562) 2021-07-02 19:03:23 +03:00
あく
721f83dd83
[FL-1516] Fix name read on device without OTP (#561)
* Fix name read on device without OTP
* Dolphin: proper name handling.
2021-07-02 18:12:05 +03:00
gornekich
602c125ef5
[FL-1499] NFC App: save and load from SD card (#560)
* nfc: add save name and save success scenes
* applications: increase nfc app stack size to 4k
* nfc: move nfc device data to separate file
* nfc: add nfc device save to SD card
* nfc: add file select scene
* nfc: add saved key menu scene
* nfc: add manual SAK, ATQA, UID enter
* nfc: add manual enter
* nfc scenes: remove typedef in SubmenuIndex enu
* nfc_device: close file_worker after load data

Co-authored-by: あく <alleteam@gmail.com>
2021-07-02 16:44:10 +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
its your bedtime
c388458462
[FL-1281] Unlocked screen fix+ (#556)
* Dolphin app: fix "Unlocked" popup  timeout on menu enter

* FL-1404: fix word wrap index
2021-07-02 14:30:30 +03:00
あく
5d14dce013
[FL-1464] Cli: merge version and hwinfo into device_info (#553)
* Cli: merge version and hwinfo and form machine/human readable key value set.
* Backport F6 changes to F5. Add readme to cli_command_device_info rountine
* Cli: return proper order to radio stack version in device_info command

Co-authored-by: SG <who.just.the.doctor@gmail.com>
2021-07-02 03:58:31 +03:00
あく
d088c28659
Power: rename reset to reboot (#552) 2021-07-02 01:53:20 +03:00
its your bedtime
c27d76d664
[FL-1510] Archive: OK fix (#551) 2021-07-01 19:35:57 +03:00
SG
b09f68c43d
Removed app floopper-bloopper and font FontGlyph (#549)
* Remove app floopper-bloopper and FontGlyph
* Gui: proper viewport allocator declaration

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-07-01 14:33:43 +03:00
あく
8211432685
Clang formatter: add indent to wrapped functions names. (#548) 2021-07-01 03:45:20 +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
its your bedtime
9d23602968
[FL-1477] Archive improvements (#541)
* various small issues fixes
* proper fadding to favourites
* cleanups
* fix infrared extension
* allow subdirs in app tabs
* fix elements_scrollbar args
* bugfixes, looping list, halfbaked pinning
* pinning
* ui updates

Co-authored-by: あく <alleteam@gmail.com>
2021-06-25 19:57:42 +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
Albert Kharisov
5e08674663
[FL-1437] Replace stringstream with sscanf (#540)
Do this to save space. Stringstream is very heavy.
2021-06-25 15:25:03 +03:00
Albert Kharisov
158c859bdc
[FL-1486] Fix leaks and leak-sanitizer (#538)
* [FL-1486] Fix leaks and leak-sanitizer
* Move free_heap to AppLoaderState
* App-loader: better heap logging.

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-06-24 16:16:03 +03:00
gornekich
8cc0a9a998
[FL-1475] iButton emulate shortcat (#535)
* ibutton: run emulation when launched with argument
* app-loader: set NULL context when starting application from menu
* ibutton: change p to argc
* ibutton: fix load key data from file
* ibutton: fix memory leak
2021-06-24 14:32:33 +03:00
gornekich
5b8f147882
[FL-1447] NFC application refactoring (#532)
* nfc: add separate nfc_detect
* nfc_worker: add callback and context
* api-hal-nfc: return busy if rfal worker is running
* nfc: introduce nfc_detect, change nfc_worker API, rework main nfc task
* nfc_emulate: introduce nfc_emulate module
* nfc: introduce nfc_emv module
* nfc: introduce nfc_mifare_ul module
* nfc: remove unused nfc_views
* nfc: separate messages and models
* nfc: remove unused nfc message types
* nfc: remove message_queue from common api
* view_dispatcher: delete internal queue in destructor
* api-hal-nfc: fix rfal worker initialization condition

Co-authored-by: あく <alleteam@gmail.com>
2021-06-24 11:46:37 +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
あく
ed75bc2c39
[FL-1483] Cli: add time set feature to time command (#536)
* Cli: add time set feature to time command
* Cli: better time set function feedback
2021-06-23 23:06:57 +03:00
あく
961d61807c
[FL-1478] Fix setting PA0 high confirmation dialog #533 2021-06-23 19:41:05 +03:00
あく
8116bfcbab
[FL-1443, FL-1289] Move assets compilation to separate Makefile. Add scripts folder. Add OTP flashing with DFU. (#531)
* Assets: move assets compilation to separate Makefile. Move all scripts to scripts folder. Add scripts ReadMe. Add precompiled assets.
* Split assets.py into separate entities. Option bytes for FL-1289 and checker/setter.
* Cli: explicitly initialize variable befor use in api_hal_vcp_rx_with_timeout
* Rename ob_check script to ob.
2021-06-23 17:58:44 +03:00
あく
359bbdfe69
[FL-1326] Move heap4 allocator to furi core and add allocation tracing capability (#529)
* Move heap memory allocator to furi core
* Newlibc: add malloc guards
* Furi: add cmsis thread id getter
* Core: add tracing capability to heap allocator. Add heap tracing support to furi thread. Add heap trace support to app-loader.
2021-06-23 17:48:44 +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
8605f53c28
view_dispatcher: add custom events (#526)
Co-authored-by: あく <alleteam@gmail.com>
2021-06-20 11:15:48 +03:00
Albert Kharisov
c54653223e
[FL-1413] Fix boot/fw version mix #524 2021-06-18 14:08:13 +03:00
SG
2084f83eb5
App iButton: fix cli delete command bug, use RAII records (#523)
Co-authored-by: あく <alleteam@gmail.com>
2021-06-18 11:04:53 +03:00
SG
89dd1ff925
[FL-1419] new iButton cli (#521)
* iButton, helpers: add destructor
* iButton app: new approach to cli commands, cli read
* iButton app: cli write
* iButton app: cli emulate
* iButton app: remove old cli commands
* iButton app: use unique_ptr for worker
* iButton app: remove obsolete cli help
* iButton app: fix help and key type parsing
2021-06-17 14:13:37 +03:00
gornekich
9943c93189
[FL-1442] Fix nfc emulation (#520)
* api-hal-nfc: rework nfc detection
* nfc: increase nfc detection timeout
* api-hal-nfc: add 2 emulation parameters for mifare and emv
* nfc: choose emulation parameters
2021-06-16 17:45:35 +03:00
あく
9e69164b1b
[FL-1441] ApiHalVcp: use DTR signal for ready flag. Fix memory leak in subghz. (#519)
* ApiHalVcp: use DTR signal for ready flag. Fix memory leak in subghz.
* Backport VCP fix to F5
2021-06-16 09:14:59 +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
gornekich
3a2121bbb8
[FL-1424] NFC emulate CLI command (#514)
* nfc: move cli commands to separate file
* nfc: add nfc_emulate CLI command
* nfc: rework nfc emulate call from gui
* nfc: deactivate nfc state machine when exiting worker

Co-authored-by: あく <alleteam@gmail.com>
2021-06-10 15:01:48 +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
its your bedtime
216f8b4fb8
archive: file extension removed in rename menu (#511)
Co-authored-by: SG <who.just.the.doctor@gmail.com>
2021-06-07 19:47:27 +03:00
its your bedtime
22ffd6204b
menu: drop left/right keys navigation (#510)
Co-authored-by: SG <who.just.the.doctor@gmail.com>
2021-06-07 18:55:31 +03:00
its your bedtime
3c6f236df3
prevent "enter/save" key callback if string is empty (#509)
Co-authored-by: SG <who.just.the.doctor@gmail.com>
2021-06-07 18:49:56 +03:00
its your bedtime
f817d45d27
[FL-1288] Additional gpio_set pins for testing (#508)
* uart rx, speaker and ir rx/tx pins added to cli_command_gpio_set

* gpio_set: Warning for PA0, cli: added motd by @maratsafi
2021-06-07 18:33:47 +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
gornekich
d040515f84
[FL-1363] BLE GUI tests (#505)
* bt: introduce bt CLI commands

* api-hal-bt: add get rssi

* bt: fix cli commands

* bt: fix typos

* bt: refacrote bt test names

* ble gui continue

* bt: rework carrier test gui

* bt: rework send packets test gui

* bt: rework receive packets test

* api-hal-bt: change rssi return

* bt: refactore bt gui

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Co-authored-by: SG <who.just.the.doctor@gmail.com>
2021-06-02 17:09:02 +03:00
Lesha Lomalkin
8851a240ab
fixed line end in cli:hw_info command (#503)
* fixed line end in cli:hw_info command

* remove x0a from ctime() out

* syntax fix

* use reentrant verison of ctime

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-06-02 15:56:28 +03:00
its your bedtime
d5df0483a3
[FL-1234] Keyboards redesign (#501)
* text input: keyboard redesign,; input: tune repeat keypress timing; archive: fix max string width when scrollbar is shown

* byte input: redesign

* byte/text input: long press back to activate backspace added

* archive: pass absolute path to app

* format sources

* better keyboard timings

Co-authored-by: SG <who.just.the.doctor@gmail.com>
2021-06-02 15:51:05 +03:00
its your bedtime
7f16c9fe5a
[FL-1388] Passport portraits (#506)
* new passport pics, 3 stages with 3 moods each
* removed magic const
2021-06-02 14:47:05 +03:00
gornekich
205932b24c
Add BLE CLI tests (#502)
* bt: introduce bt CLI commands
* api-hal-bt: add get rssi
* bt: fix cli commands
* bt: fix typos
* Bt: add missing newline in console message

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-05-29 01:57:11 +03:00
Albert Kharisov
5a993b6d2a
[FL-1345] IRDA monitor (#504)
* Irda Monitor: fix
2021-05-28 17:12:39 +03:00
SG
2b89ca50fa
Blink app: add delay to prevent notifications stuck (#499)
Co-authored-by: あく <alleteam@gmail.com>
2021-05-28 12:45:54 +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
63e9207c44
[FL-1308] Add API for starting applications with arguments (#486)
* app-loader: add API for starting applications with arguments
* app-loader: add check if application is running
* archive: rework starting app with app-loader API

Co-authored-by: あく <alleteam@gmail.com>
2021-05-26 19:23:25 +03:00
its your bedtime
1cfb16d9a7
[FL-1235] Cut long names (#494)
* fix typo, elements_string_fit_width added
* add string_fit_witdt to fileselect module

Co-authored-by: あく <alleteam@gmail.com>
2021-05-26 19:01:59 +03:00
its your bedtime
502f449904
[FL-1357] CLI: SD Format confirmation #495
Co-authored-by: あく <alleteam@gmail.com>
2021-05-26 18:48:28 +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
あく
84f46e670a
[FL-1254] ViewDispatcher improvements, SubGhz cli and certification preparation (#482)
* Add more more frequencees and change ok key bahavior to toggle
* GUI: add queue support to ViewDispatcher
* SubGhz: basic cli
* SubGHz: pt send cli
* SubGhz: carrier cli commands.
* Fix irda test data merge artifacts
2021-05-25 13:19:07 +03:00
SG
1a1c5fa05d
Unit tests: fix IRDA test data (#488)
* Unit tests: fix IRDA test data
* Fix format-errors on test data files
* Fix sticking red/green light on unit-tests

Co-authored-by: あく <alleteam@gmail.com>
Co-authored-by: Albert Kharisov <albert@flipperdevices.com>
2021-05-25 12:43:14 +03:00
SG
19644f6af5
Notifications: add sound to error sequence (#487) 2021-05-25 00:43:44 +03:00
gornekich
356476b7f8
[FL-1355] Fix flipper name C string (#485)
* api-hal-version: guarantee zero terminated flipper name
* cli_commands: fix hw_info command
2021-05-24 21:06:53 +03:00
its your bedtime
f1e9a12eb0
[FL-1138] CLI commands unification (#484)
* power_otg command, merge sd_info and sd_status, added small usage instructions for commands with args
* remove duplicated sd status string
* cli_print_usage added, typo fix
2021-05-24 17:50:28 +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
SG
eac8626c8c
[FL-1351] Wiegand read fix (#483)
* App accessor: fix external interrupts binding. Hal: removed InterruptTypeExternalInterrupt.
* GPIO hal: add ex and simple init functions to F6 target
* GPIO hal: add dummy alt fn to F6 target
* RFID hal: update gpio hal usage
* F5,F6: synchronize targets, backport VCP fixes, cleanup.

Co-authored-by: あく <alleteam@gmail.com>
2021-05-24 12:57:14 +03:00
gornekich
89d1b0546e
[FL-1299] iButton fix previous scene transition #480 2021-05-21 14:21:20 +03:00
gornekich
6d93f04f13
[FL-1221] Hardware info CLI command #481
Co-authored-by: あく <alleteam@gmail.com>
2021-05-21 12:57:52 +03:00
gornekich
1242327e14
[FL-1293] iButton key rename (#479)
* ibutton: remove existing key file before saving new
* ibutton: save key name in iButtunKey object
* ibutton: rename IBUTTON_KEY_SIZE -> IBUTTON_KEY_DATA_SIZE
* ibutton: clear key when enter one manually
* ibutton: change strcpy -> strlcpy

Co-authored-by: あく <alleteam@gmail.com>
2021-05-21 12:52:47 +03:00
あく
f1198950e9
GUI: add back to dialog module results. Power: exit from reboot view. (#477)
Co-authored-by: SG <who.just.the.doctor@gmail.com>
2021-05-21 12:33:30 +03:00
gornekich
a9083561fa
[FL-1318] Fix cyfral and metakom keys reading (#474) 2021-05-19 15:23:34 +03:00
Albert Kharisov
4fa49882e0
[FL-1286] Add vertical screen orientation (#472) 2021-05-19 12:43:15 +03:00
its your bedtime
f5f9a04fda
[FL-1320] Archive: fix memory leak 2021-05-19 12:06:51 +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
あく
6d648da003
[FL-835] Factory reset. Cli refactoring. (#466)
* ApiHal: add boot flags. Internal storage: add factory reset.
* Bootloader: correct doxygen comment format.
* Cli: change cli callback signature. Applications: update API usage. Add factory_reset cli command.
2021-05-18 16:57:39 +03:00
SG
a02aa42095
HAL LFRFID: fix resistor heating on f5 target (#470)
Co-authored-by: あく <alleteam@gmail.com>
2021-05-18 16:51:14 +03:00
SG
4f038e4a41
[FL-1313] fix resistor heating on F5 target #467 2021-05-18 16:11:48 +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
SG
ba0419276e
[FL-1311] F6, app LF-RFID: Updated timer api and config (#465)
* F6, app LF-RFID: Updated timer api and config
* Api hal rfid: updated comments

Co-authored-by: あく <alleteam@gmail.com>
2021-05-18 12:54:48 +03:00
its your bedtime
1ddd4acd80
[FL-1279] Remove unnecessary menu_event timer #461
Co-authored-by: あく <alleteam@gmail.com>
2021-05-18 12:40:22 +03:00
gornekich
5000424c42
[FL-1239] CLI commands readable list #464
Co-authored-by: あく <alleteam@gmail.com>
2021-05-18 12:30:04 +03:00
SG
618ddfcd04
[FL-1059] T5577 write (#463)
* Api-hal-gpio: extend init functions
* App Lfrfid: separate protocol layer
* App Lfrfid: write EM key scene
* App Lfrfid: syntax fix
2021-05-18 11:37:47 +03:00
gornekich
588480831a
[FL-1214] nfc_worker fix emulation 2021-05-13 16:47:55 +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
SG
38d3653552
[FL-1058] Low frequency RFID app [Indala 40134 Encoder] #452 2021-05-07 14:13:35 +03:00
gornekich
570f85bd9d
ibutton: fix key name in edit submenu (#450)
Co-authored-by: SG <who.just.the.doctor@gmail.com>
2021-05-07 03:39:58 +03:00
gornekich
19637c6fc6
ibutton: fix cli command reading (#449)
Co-authored-by: SG <who.just.the.doctor@gmail.com>
2021-05-07 03:37:28 +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
SG
ffd4948ae2
[FL-1058] Low frequency RFID app [Indala 40134 Encoder] (#447)
* App Lfrfid: Rename encoder to match extact protocol.
* Api-hal-gpio: fix alt fn config
* Api-hal-gpio: fixed fix
* App Lfrfid: indala 40134 timer stage
2021-05-06 11:45:52 +03:00
あく
c880f90eb5
Update code owners and remove obsolete code (#446) 2021-05-05 17:53:07 +03:00
its your bedtime
920b3c3dee
[FL-1178] Idle screen improvements (#444)
* Dolphin idle screen: Cleanup of debug views; Hold [down] to open debug view; Sequential input for unlocking;
* Lock screen popup, WIP
* Fix reverse modulus
* Lock popup added
* Dolphin: timer for handling UI animation sequences
* Allow tick events to be discarded on queue overflow and prevent timer service from crash

Co-authored-by: あく <alleteam@gmail.com>
2021-05-05 12:50:03 +03:00
SG
469e2dffec
[FL-1057] Low frequency RFID app [HID Encoder] (#445)
* App Lfrfid: hid26 timer stage
* App Lfrfid: hid26 encoder
* fully removed old lf-rfid app
* fix codeowners
2021-05-05 10:50:19 +03:00
SG
46bc515c6a
Low frequency RFID app [Read stage] (#385)
* App Lfrfid: init
* HAL-resources: add external gpios
* HAL-pwm: fix frequency calculation
* App LFRFID: generic manchester decoder
* App LFRFID: em-marine decoder
* App iButton: fix dwt timing acquire
* App LFRFID: rfid reader
* App LFRFID: temporary read keys on read scene
* App LFRFID: remove atomic bool init.
* App LFRFID: add *.c to build
* App LFRFID: unstable HID decoder
* App LFRFID: HID-26 reading
* HAL OS: disable sleep
* App LFRFID: HID-26 reader: remove debug
* App LFRFID: static data decoder-analyzer
* App LFRFID: very raw Indala decoder
* App LFRFID: multiprotocol reader
* App LFRFID: more reliable HID decoder
* App LFRFID: syntax fix
* App LFRFID: simple read scene
* Gui: force redraw on screen stream connect
* HAL-OS: allow sleep
* App LFRFID: notify api, tune view, tune scene
* App LFRFID: simple rfid emulator
* App LFRFID: more scenes, more reliable EM decoder.
* App LFRFID: format fix
* App LFRFID: warning fix
* Api-hal-resources: add rfid pins, rename external pins
* App LFRFID: remove unused emulator
* App LFRFID: use new gpio hal api
* App accessor: use new ext gpio name
* App LFRFID: remove unused emulator
* App LFRFID: remove debug gpio
* Api-hal-resources: alternate functions init
* Api-hal-rfid: new api
* Api-hal-ibutton: new api
* Api-hal: new headers
* App LFRFID: use new api in reader subroutines
* App LFRFID: use new api in emulator subroutines
* App LFRFID: remove old app
* App LFRFID, App iButton: fix memleak
* Api-hal-rfid: comments
* App LFRFID: pulse joiner helper, it combines pulses of different polarity into one pulse suitable for a timer
* App LFRFID: pulse joiner, now can accept only ne pulse
* App LFRFID: pulse joiner, fixes
* App LFRFID: EM encoder and emulation
* App LFRFID: format fixes
* App LFRFID: emmarine encoder cleanup
* App LFRFID: HID Encoder blank
* App LFRFID: Indala Encoder blank
2021-05-04 16:21:16 +03:00
gornekich
dd9bd224be
[FL-1147] System logging (#434)
* furi_log: introduce log system
* applications: rework with furi logging
* furi_log: reset color after tag printed
* core: add log info

Co-authored-by: あく <alleteam@gmail.com>
2021-04-30 14:20:33 +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
あく
c982294d5f
[FL-1208] Fix crash in dolphin scene app caused by condition race in Tmr thread on delete (#438)
* Dolphin scene add moar enterprise sleeps

* Gihub: update PR template and cleanup codeowners

Co-authored-by: its your bedtime <23366927+itsyourbedtime@users.noreply.github.com>
2021-04-30 09:41:15 +03:00
あく
43ff095724
Api-hal-power: reset routine. Power: safe to poweroff message, cleanup. (#436) 2021-04-30 07:51:48 +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
SG
c3350990c2
App accessor: init (#433) 2021-04-28 15:13:25 +03:00
its your bedtime
dfcf0ea0eb
[FL-1179] Debug menu & main menu cleanup (#426)
* Debug apps moved into its own menu category, APP_DEBUG flag added
* Menu power icon added
* Added APP_DEBUG flag to flash_core1 bash script
* Removed commented section in app-loader

Co-authored-by: あく <alleteam@gmail.com>
2021-04-28 13:43:21 +03:00
gornekich
317bfba024
[FL-1162] Compile all files in applications directory (#432)
* applications: fix errors in test apps
* applications.mk: add all source files from applications
2021-04-27 22:13:41 +03:00
its your bedtime
26c4b20ac2
[FL-1184] led indication for charging (#425)
Co-authored-by: あく <alleteam@gmail.com>
2021-04-27 19:31:34 +03:00
あく
b28863ae04
SubGhz: PTC timings tuning and new key (#431) 2021-04-27 19:00:03 +03:00
its your bedtime
51d726c2d7
[FL-1149] Dolphin: stage 3 (#422)
* dolphin scenes refactoring & restructuring phase 1
* Passport app: mood and level display, opens from main menu and dolphin scenes. Dolphin scenes: minor refactoring (WIP)
* dolphin scene app restruct
* use gui defines for screen size
* mv passport to dolphin dir

Co-authored-by: あく <alleteam@gmail.com>
2021-04-26 15:19:14 +03:00
gornekich
577606afb9
[FL-1190] Enable OTG pullup for reading and writing keys (#423) 2021-04-24 01:23:16 +03:00
あく
f7aeab7084
[FL-1188] cli_print_version: fix garbage dereference and function signature 2021-04-22 01:43:18 +03:00
あく
1ae3bc1a2d
SubGhz: automatically select path based on frequency for static code emulation (#419) 2021-04-19 19:46:00 +03:00
gornekich
239c174610
[FL-1062] Add cli commands for IrDA (#409)
* irda: add ir_tx command
* api-hal-vcp: add receive with timeout
* cli: add command termination check function
* irda: add cli_rx command
* cli: reduce timeout for Ctrl+C command check
* irda: fix ir_rx command
* irda: add ir_tx cli command hints

Co-authored-by: あく <alleteam@gmail.com>
2021-04-19 19:36:45 +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
あく
202673aed1
[FL-1151] Power: Low Battery power off routine (#418) 2021-04-19 19:26:25 +03:00
あく
8ada9b817b
[FL-1161] Input bug fixes and cleanup (#416)
* Input: start/stop timers only from the input thread, adjust long/short/repeat timings, improve timer routines reliability.
2021-04-18 22:32:57 +03:00
あく
e0bc80cd8b
SubGhz: increase output power and. Dolphin scene: refactor. (#411)
* SubGhz: increase output power to max
* Dolphin scene: refactor code.
2021-04-15 19:39:15 +03:00
あく
3e281175da
[FL-123] SubGhz static code replay (#410)
* SubGhz: static code emulation view
* SubGhz: add dumb static replay
2021-04-15 11:47:52 +03:00
gornekich
cfcdff8346
[FL-1064] iButton CLI commands (#407)
* ibutton: add cli commands
* ibutton/scene: add cli event send
* ibutton: make separate scenes for cli commands
* ibutton/scene: add timeout to cli scenes
* ibutton: fix reading key data from cli
* cli: add cli_delete_command to API
* ibutton: delete cli command after app exit
* cli: free allocated string

Co-authored-by: あく <alleteam@gmail.com>
2021-04-14 17:24:33 +03:00
its your bedtime
d1f523687e
[FL-1090] Dolphin scenes (#402)
* dolphin scene draft wip
* gui/elements multiline framed text added
* zoom poc
* item callbacks
* engine tweaks
* move scenes out of services
* improve dolphin gfx selection
* glitch hints
* dialogue typewriter effect
* app loading from scenes app, small action changes, passport app(WIP)
* removed passport from main dolphin app, added statusbar
* small elements position fixes
* fix thread alloc, dolphin and dolphin_scene free functions, other minor issues
* sleep emote improvements
* Dolpin: fix memory leaks, variable namings and etc

Co-authored-by: gornekich <44112859+gornekich@users.noreply.github.com>
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2021-04-13 21:06:25 +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
あく
616b7325c6
[FL-952] I2C: correctly handle STOP flags. Apps: increase cli_app stack size. (#408)
* I2C: correctly handle STOP flags. Apps: increase cli_app stack size.
* API HAL Power: simplify api_hal_power_dump_state. Format sources.
2021-04-12 21:09:38 +03:00
あく
5d08b35b54
[FL-1009, FL-1118] Better initialization sequence and V8 hardware support (#406)
* Interrupt manager: add memory barriers.
* ISRs: remove TIM17 dead code.
* API HAL Delay: rename initialization routine and move to API-HAL
* Main: move FURI initialization to the start.
* API HAL GPIO: drop CC1101 shenanigans, COMP inversion for new boards.
* IButton: migrate Cyfral and Metakom to RFID comp routine, make it compatible with new boards.
* RFID: Better keyboard handling and shutdown routines
2021-04-11 16:47:36 +03:00
gornekich
2fe44e1b11
[FL-1108] iButton fix navigation (#404)
* file_select: process zero file counter
* file_select: process file select view for less than 4 files
* ibutton: change application navigation
* ibutton: add read new key submenu
* file_select: use standart MIN() function
* sd-filesystem: remove unused min() define
2021-04-09 11:27:51 +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
its your bedtime
5cd73ac97b
[FL-1110] Status bar height fix (#403)
* fix statusbar height and main screen views, added multiline text framed func
* replace char* arguments with const char*
* small prettify
* move pointer increment to end of loop
2021-04-06 20:09:15 +03:00
あく
33a461e97b
[FL-1100] Input dump: Handle all input events and dump them to console (#401) 2021-04-05 19:54:41 +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
gornekich
78ff0c9fca
[FL-938] Keyboard widget changes (#398)
* inputs: add repeat event
* byte_input: change draw
* text_input, byte_input: process repeat event
2021-04-01 20:10:12 +03:00
あく
37131dbe12
[FL-1092] Make View reusable outside of dispatcher (#396)
* View: replace direct View to ViewDispatcher link with callback. ViewDispatcher: update View usage. ViewHandler: update View usage, handle update signal.
2021-04-01 15:03:02 +03:00
あく
6fb6e8bd3f
Consistent furi_assert usage across project. (#392) 2021-03-31 21:05:00 +03:00
あく
5439e232cc
[FL-950] CC1101 Stage1, SPI Refactoring, Drivers layer (#386)
* API HAL SPI: refactoring, split into layers, prepare ST HAL separation. API HAL SubGhz: initialize on start. Drivers: add basic cc1101 driver. Update API usage. Debug: increase max debugger port speed. Remove subghz apps.
* CC1101: chip status handling. ApiHalSpi: increase SubGhz bus speed to 8mhz. F4: backport subghz initialization.
* Api Hal SubGhz: rx path and frequency. CC1101: frequency control.
* SubGhz Application: basic tests
* SubGhz app: tone and packet test. API HAL SUBGHZ: update configs, add missing bits and pieces.
2021-03-31 20:52:26 +03:00
gornekich
5309bfae41
[FL-1061] iButton save and load from sd card (#394)
* SD App: fix queue adresses
* sd-filesystem: fix making path on file select event
* ibutton: add key reading from sd card
* ibutton: save ibutton key to sd card
* ibutton: add deleting keys from sd card
* ibutton: remove KeyStore from application
* ibutton: make directory if necessary on key save

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2021-03-31 20:47:32 +03:00
あく
3252de0f3e
Fix stack overflow in sd_filesystem service (#390) 2021-03-26 11:47:34 +03:00
its your bedtime
372710c31a
[FL-1019] New main screen and graphics (#389)
* new status bar, lock menu and dolphin activities screen

* lock icon indication 

* main screen animation, basic scene switching

* level progression calculations based on icounter value 

Co-authored-by: rusdacent <rusdacentx0x08@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
2021-03-25 20:48:58 +03:00
SG
cc263d743b
[FL-935] Queue-based SD app cycle. File select widget. (#388)
* SD App: more specific sd api
* Gui: view dispatcher fix api documentation
* Gui: view holder thingy
* SD App: do not sleep when working with sd card bus
* SD App: queue-based lifecycle
* Assets: sd-card assets
* SD App: init file select api

Co-authored-by: あく <alleteam@gmail.com>
2021-03-24 12:30:29 +03:00
あく
5866be8455
GUI: free ViewPort instance on ViewDispatcher free. (#384) 2021-03-24 12:01:00 +03:00
its your bedtime
b85cc7f788
[FL-904] Power info UI (#382)
* New power screen UI
* API HAL Power: add VBUS voltage to API

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-03-19 22:37:52 +03:00
gornekich
5eba573f43
[FL-300] Launch applications from CLI (#380)
* app_loader: release console after cli start app cmd
* furi: add thread state getter
* app_loader: check thread started before launch with cli
* app_loader: remove view port from app loader
* blink: rework blink plugin to manage view and free resources
* vibro: rework vibro plugin to manage view and free resources
* music_player: rework app to manage exit and free resources
* input_dump: rework app to manage exit and free resources
* coreglitch_demo: add app exit and free resources
* floopper-bloopper: update submodule
* app-loader: remove applications context
* rules.mk: add submodule sync
* gui-test: add exit from application
* applications: exit on back short instead of press event
2021-03-18 10:58:16 +03:00
gornekich
ca9862ef6c
Nfc: add nfc detection cli command (#379)
Co-authored-by: あく <alleteam@gmail.com>
2021-03-12 16:18:01 +03:00
SG
1daef3d025
new iButton app (#328)
* rename old ibutton app to ibutton-test

* more renames

* updated onewire library compilation condition

* add submenu_clean subroutine

* add index for submenu callback

* c++ guard for gui modules

* add released ibutton app

* fix the position of the submenu window if there are too few items

* iButton app basis

* negative icon position info

* fix submenu_clean subroutine

* add ibutton app to applications makefile

* add onewire key read routine to read mode

* rename mode to scene

* rename files and folder (mode to scene)

* rename ibutton view to view manager

* rename get_view to get_view_manager

* cpp guards

* key read, store and notify features

* syntax fix

* make iButtonScene functions pure virtual

* fix syntax

* add text store, add new scene (crc error)

* not a key scene

* syntax fix

* read success scene

* app, switching to the previous scene with the number of scenes to be skipped

* scene whith menu when key is readed

* fix font height calculation, fix offsets

* add key write scene

* view_dispatcher_remove_view subroutine

* generic pause/resume os methods

* fix furi_assert usage

* key store, worker

* fix pointer comparsion

* saved keys, saved key action scenes

* key delete/confirm delete scenes and routines

* use last input subsystem changes

* fix syntax

* fix new model usage in submenu

* fix includes

* use vibro pin

* use stored key name if valid

* emulate scene

* random name generator

* name and save readed key scenes, new icon

* fix icon position

* fix text scene exit

* fix naming, fix text placement, new info scene

* state-driven cyfral decoder

* better cyfral decoder

* better cyfral decoder

* one wire: search command set

* metakom decoder

* more key types

* add next scene to error scenes

* universal key reader

* use new key reader

* syntax fix

* warning fix

* byte input module template

* new thread and insomnia api usage

* New element: slightly rounded frame

* Use elements_slightly_rounded_frame in text input

* Gui test app: byte input usage

* Byte input module: data drawing and selection

* Byte input: comment currently unused fns

* remove volatile qualifier

* base byte input realisation

* App gui test: remove internal fns visibility

* Byne input, final version

* test install gcc-arm-none-eabi-10-2020-q4-major

* test install gcc-arm-none-eabi-10-2020-q4-major

* App iButton: byte input view managment

* App iButton: add key manually scenes

* App iButton: rename scenes, add popup timeout

* App iButton: use new scenes, new fn for rollback to specific prevous scene.

* App iButton: remove byte input view on app exit

* App iButton: edit key scene

* Module byte input: reduce swintch value to uint8_t

* Module byte input: switch from switch-case to if, unfortunately we need compile-time constants to use with switch

* Icons: new small arrows

* Module byte input: new arrangement of elements

* OneWire slave lib: fix deattach sequence

* App iButton: pulse sequencer

* App iButton: add more keys to store

* App iButton: split key worker to separate read/write/emulate entitys

* App iButton: use new read/emulate entities

* fix callback pointer saving

* App iButton: use KeyReader error enum instead of KeyWorker error list handling

* App iButton: do not use insomnia fns in pulse sequencer

* App iButton: use KeyReader error enum in read scene

* OneWire slave lib: more READ ROM command variants, call callback only if positive result

* GPIO resources: add external gpio

* App SD/NFC: removed application

* App iButton-test: update to new light api

* App iButton: update to new light-api

* Outdated apps: add api-light-usage

* Gpio: update SD card CS pin settings

* API-power: added fns to disable/enable external 3v3 dc-dc

* API-gpio: separated SD card detect routines

* Resources: removed sd cs pin

* SD card: low level init now resets card power supply

* App SD-filesystem: use new card detect fns

* SD card: fix low level init headers

* SD card: more realilable low level init, power reset, exit from command read cycle conditionally

* App SD-filesystem: led notifiers, init cycling

* SD card: backport to F4

* Api PWM: add c++ guards

* App iButton: yellow blink in emulate scene, vibro on

* App iButton: one wire keys command set

* App iButton: successful write scene

* App iButton: key writer

* App iButton: syntax fix

* App iButton: notify write success

* App iButton: fix double scene change

* SD card: handle eject in init sequence

* SD card: api to set level on detect gpio

* SPI: api to set state on bus pins

* SD card: set low state on bus pins while power reset

* File select: init

* File select: fix input consuming

* SD Card: fixed dir open api error

* SD-card: replace strncpy by strlcpy. Fix buffer overflow error.

* API HAL OS: replace CMP based ticks with ARR based one, hard reset lptimer on reconfiguration.

* GUI: More stack size for (temporary, wee need to implement sd card api in separate thread)

* GUI: File select module.

* App iButton-test: remove obsolete app

Co-authored-by: rusdacent <rusdacentx0x08@gmail.com>
Co-authored-by: coreglitch <mail@s3f.ru>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-03-12 15:45:18 +03:00
gornekich
f002f117fd
cli_commands: add cmd for gpio control in output mode (#378) 2021-03-11 19:09:21 +03:00
gornekich
0af6c9882e
[FL-580] Prepare BLE for certification (#376)
* api-hal-bt: separate bt init to core init and app start

* bt: add continuous TX and RX tests

* bt: finish rx test on Back button click

* api-hal-bt: check core 2 started, same f4 and f5 implementation

* bt: refactoring, move hopping test logic to main thread

Co-authored-by: あく <alleteam@gmail.com>
2021-03-11 12:31:07 +03:00
its your bedtime
468ee09785
[FL-931] keypad test app, canvas draw circle/disc functions (#364)
* new keypad test app, added canvas circle/disc fn
* resources cleanup on exit
* fix - release mutex

Co-authored-by: coreglitch <mail@s3f.ru>
2021-03-10 15:38:01 +03:00
SG
fef16a8e7a
SD card v7 BSP (#361)
* Outdated apps: add api-light-usage

* Gpio: update SD card CS pin settings

* API-power: added fns to disable/enable external 3v3 dc-dc

* API-gpio: separated SD card detect routines

* Resources: removed sd cs pin

* SD card: low level init now resets card power supply

* App SD-filesystem: use new card detect fns

* SD card: fix low level init headers

* SD card: more realilable low level init, power reset, exit from command read cycle conditionally

* App SD-filesystem: led notifiers, init cycling

* SD card: backport to F4

* SD card: handle eject in init sequence

* SD card: api to set level on detect gpio

* SPI: api to set state on bus pins

* SD card: set low state on bus pins while power reset

Co-authored-by: coreglitch <mail@s3f.ru>
2021-03-09 14:53:33 +03:00
SG
a3b7940baf
Udpate gui_test and app_subghz stack size (#368) 2021-03-08 20:00:56 +03:00
gornekich
73e5379520
[FL-936] CLI commands for vibro, led and display backlight support (#367)
* api-hal: add api-hal-vibro
* cli: add vibro cli command
* cli: add cli commands for led and disp backlight
2021-03-08 18:48:14 +03:00
SG
651c5b35ca
[FL-960] View dispatcher: lock gui when the view tree changes (#369)
* View dispatcher: lock gui when the view tree changes

* View dispatcher: include gui interface

* View dispatcher: lock gui also when view added (view_dispatcher_add_view fn)
2021-03-05 16:13:00 +03:00
SG
7afdd14a4c
Subghz app example (#365)
* Gui: ported submenu and view_dispatcher_remove_view from iButton branch

* App gui-test: use backported submenu api

* App subghz: initial commit

* App subghz: syntax fix

* App gui-test: fix submenu callback

* App subghz: add subfolders to build

* Gui view: c++ verison of with_view_model

* Subghz app: simple spectrum settings view

* Subghz app: add spectrum settings view to view manager

* Subghz app: spectrum settings scene

Co-authored-by: coreglitch <mail@s3f.ru>
2021-03-05 12:47:27 +03:00
あく
025b77ecc1
Prevent device from sleep mode while setuping display (#366) 2021-03-04 20:12:41 +03:00
gornekich
10978c51fd
[FL-943] Add CLI command for input events injection (#363)
* input: add cli commands for input events injection
* input: add short and long events
2021-03-04 15:30:20 +03:00
gornekich
1ebbd2c266
[FL-942] remove 3s delays in reset, dfu and poweroff CLI commands (#362) 2021-03-03 16:07:59 +03:00
SG
3c088dcf7f
Outdated apps: add api-light-usage (#359) 2021-03-02 23:25:51 +03:00
gornekich
cfa76f19d0
[FL-905] Add battery health state monitoring in power app (#358)
* add battery health reading from gauge
* add battery health reading to api-hal-power
* update battery health in power application

Co-authored-by: あく <alleteam@gmail.com>
2021-03-02 19:07:26 +03:00
coreglitch
056e6ffa9c
New lf rfid (#342)
* invert inputs
* move RFID RX to IRQ, unstable
* remove critical blink
* supress short carrier, decrease queue
* migrate to stream buffer
* enable state change
* conditions build for invert RFID IN
* move get_rfid_in_level
* use hal function for get comp level, remove duplicate interrupt registration, interrupt unregister on exit
* reinit comparator context on mode change
2021-03-02 13:17:27 +03:00
あく
e39e1c3dce
Input: properly cast timer arg pointer to InputPinState (#354)
* Input: properly cast timer arg pointer to InputPinState
* update codeowners
2021-02-26 13:40:54 +03:00
coreglitch
2fbf427e0a
Switch sub-1GHz band (#349)
* switch band
* extract subghz api to files
2021-02-25 13:29:00 +03:00
あく
1b2c31da6f
Power subsystem improvements and bug fixes (#353)
* BT: render icon statically.
* Move API HAL Power init call to api_hal_init.
* API HAL Power: replace stop2 mode with stop1 to ensure usb and lptim2 proper work.
2021-02-25 13:22:46 +03:00
あく
68a3f6b4b7
[FL-873] Add F5 target, lp5562 driver and api-hal-light (#347)
* Add F5 target, lp5562 driver and api-hal-light. Update api-usage, switch to F5 by default.
* API HAL: add i2c and hardware version api. Dolphin: show hardware version.
* OTP version generator and flashing utility.
* Assets script: fix code formatting
* Backport F5 changes to F4
* F4: disable insomnia, prevent damage to BLE RX path
* F5 HAL API Light: remove magic delay to fix magic BLE
* Dolphin: HW target validation on start
* invert RSSI indication in sub-1
* API HAL: rename board to body in version api
* Gpio tester: detach and release viewport on exit

Co-authored-by: aanper <mail@s3f.ru>
2021-02-18 15:49:32 +03:00
あく
48191ea20a
Rollback gui update visibility check, fixes gui thread lockup. (#340) 2021-02-15 02:46:59 +03:00
あく
23f66c2cdd
[FL-878] Gui: screen streaming (#337)
* GUI: canvas streaming
* Fix right status bar icon alignment
2021-02-13 14:40:20 +03:00
あく
b835d7a451
[FL-872] Furi, API-HAL, App-Loader cleanup and improvements (#334)
* Furi: replace obsolete furiac_exit with osThreadExit, drop obsolete apis and test. Rename systemd to flipper and move to separate file, cleanup. ApiHal: Rename timebase to os and move freertos hooks there, move insomnia api to power module.
* Furi: new thread helper
* Furi: cleanup thread documentation
* Flipper, AppLoader: update to use FuriThread. Update tasks signatures to match FuriThreadCallback signature.
* F4: rename API_HAL_TIMEBASE_DEBUG to API_HAL_OS_DEBUG
* Applications: rename FuriApplication to FlipperApplication, use FuriThreadCallback signature for apps.
* C++ app template sample, new exit method
2021-02-12 20:24:34 +03:00
DrZlo13
0846de20a4
IrDA test app^ acquire state only when needed, fix exit, remove delay in main program cycle (#335) 2021-02-12 18:44:14 +03:00
あく
2d09b8e318
[FL-867] GUI: ViewPort arrangement API, better input and draw dispatching (#333)
* Input: refactoring, platform agnostic key configuration, update usage across project. Minor queue usage fixes and tick timings.
* Gui: lighter and more efficient input and draw call dispatching, ViewPort rearranging API. View: conditional model updates, API usage update.
* BT: smaller update delay
* GUI: ViewPort visibility check
2021-02-10 12:06:29 +03:00
あく
8b94eff7f9
Input: refactoring, platform agnostic key configuration.
Update input usage across project. Minor queue usage fixes and tick timings. (#330)
2021-02-10 11:56:05 +03:00
DrZlo13
5dbe2983aa
Fixed procedure for sending IrDA commands, disabled interrupts for better stability (#329)
* Disable irq when send command
2021-02-09 14:21:05 +03:00
DrZlo13
446ba55b08
fix guttons text in gui test app (#327) 2021-02-05 03:23:29 +03:00
DrZlo13
4341da90dc
Implementation of some widgets based on real use cases and designs [FL-392][FL-809] (#315)
* gui test app
* aligned string draw functions
* add canvas_invert_color, canvas_draw_button_left, canvas_draw_button_right
* use new str and button fns in dialog
* real dialog mockup
* add new gui test app recipe
* submenu module init
* delete unused variable
* move buttons to element, add canvas_string_width fn, new center button element
* button icons
* submenu module
* use submenu module, switch views
* keyboard buttons img
* new font for keyboard
* text input (keyboard) module
* add text input to gui test app
* add gui tesst app to release build, fix flags
* handle transition from start and end position, fix input switch
* add long text support to text input
* canvas_string_width and the underlying u8g2_GetStrWidth now return uint16_t
* remove deprecated libs and apps
* canvas_font_max_height fn
* new element, aligned multiline text
* use multiline text instead of plain string
* fix second keyboard row, rename uppercase fn
* qwerty-like keyboard layout
* new icons for iButton app
* better dialog text position and events handling
* remove confusing comment
* new extended dialog module
* extended dialog module usage
* update docs
* new gui module, popup with timeout
* popup usage
* canvas, remove outdated canvas_font_max_height, use canvas_current_font_height
* use furi check
* use new view_enter and view_exit callback for timers
* add DrZlo to gui tester codeowner

Co-authored-by: aanper <mail@s3f.ru>
2021-02-05 02:35:06 +03:00
あく
2187dc7117
GUI: view enter, exit callbacks. (#326) 2021-02-04 15:05:46 +03:00
あく
cb4fb8e4ae
FL-819 new first start screen, add multiline text (#318)
* GUI Canvas: get current font height routine
* Dolphin: new start screen. GUI: new multiline element.
* Dolphin: up state version to reset it for everyone
* Dolphin: take maximum of idle screen height
* Dolphin: frames on first start screen.
2021-02-03 12:52:54 +03:00
coreglitch
41219cc78e
Fix werror flag and warnings (#321)
* fix Werror flag
* strdup implementation fix
* fix irda and lfrdid printf
* remove unused position
* doubtful type fix
* type fix in EXTI interrupt
* fix warnings in CubeWB, need to fork ST repo
* onewire fixes
* fork STM32WB Cube repo
2021-02-01 10:51:22 +03:00
あく
49057be9c9
Floopper-bloopper: fix ticker (#319) 2021-01-31 23:01:41 +03:00
あく
523f99f154
GUI: rename widget to ViewPort. Update GUI API usage. (#317) 2021-01-29 16:52:16 +03:00
あく
584c0962d8
[FL-781] FURI, CLI, stdlib: stdout hooks, integration between subsystems, uniform printf usage (#311)
* FURI stdglue: stdout hooks, local and global, ISR safe printf. Uniform newlines for terminal/debug output. Power: prevent sleep while core 2 has not started.
* Furi record, stdglue: check mutex allocation
* remove unused test
* Furi stdglue: buferized output, dynamically allocated state. Furi record: dynamically allocated state. Input dump: proper line ending. Hal VCP: dynamically allocated state.
* Interrupt manager: explicitly init list.
* Makefile: cleanup rules, fix broken dfu upload. F4: add compiler stack protection options.
* BLE: call debug uart callback on transmission complete
* FreeRTOS: add configUSE_NEWLIB_REENTRANT
* API HAL Timebase: fix issue with idle thread stack corruption caused by systick interrupt. BT: cleanup debug info output. FreeRTOS: disable reentry for newlib.
* F4: update stack protection CFLAGS to match used compiller
* F4: disable compiller stack protection because of incompatibility with current compiller
* Makefile: return openocd logs to gdb
* BLE: fixed pin, moar power, ble trace info.
* Prevent sleep when connection is active
* Makefile: return serial port to upload rule, add workaround for mac os
* Furi: prevent usage of stack for cmsis functions.
* F4: add missing includes, add debugger breakpoints
* Applications: per app stack size.
* Furi: honor kernel state in stdglue
* FreeRTOS: remove unused hooks
* Cleanup and format sources

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2021-01-29 03:09:33 +03:00
coreglitch
fd5f694758
[FL-812] Fix emulation timings (#314)
* fix timings
* fix default vendor id to 0
2021-01-29 02:45:32 +03:00
DrZlo13
cf1c8fb223
[FL-85][FL-446][FL-720] Dallas key blanks and OneWire lib rework (#313)
* sepate one wire class
* TM2004 writer
* app mode write ds1990
* test another blanks protocol
* new ibutton slave
* one wire states
* tim1 capture compare and update interrupts
* interrupt mgr, new timers IRQ
* discard HAL_TIM_PeriodElapsedCallback from main
* add exti_14 line
* add external interrupt callback
* use int mgr in input
* better interrupt managment
* add interrupt callback enable and disable fns
* properly init app
* changed timings
* rename one wire classes
* use new owb classes
* properly remove interrupts
* new blanks writer
* remove unused tests
* new core includes
* extern c guard
* fix api_interrupt_remove usage
* remove debug info, new way to detect blanks writing
* remove copy constructor
* change keys template
* fix app sources recipe
2021-01-28 15:30:31 +03:00
coreglitch
a7951ade69
FL-810 fix emulating init state (#312)
* fix emulating init state
* add/remove comparator callback on start/stop reading
2021-01-26 16:49:37 +03:00
coreglitch
312d3fbd9e
sleep mode for CC1101 at subghz app exit (#310) 2021-01-20 23:06:31 +03:00
あく
d0ed33e710
GUI module example: 2 button dialog (#308)
* GUI: reusable module example
2021-01-20 19:51:01 +03:00
DrZlo13
8f9b2513ff
[FL-140] Core api dynamic records (#296)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2
* API: move all sumbodules init routines to one place. Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting
* HAL: nap while in insomnia mode
* init records work
* try to implement record delete
* tests and flapp
* flapp subsystem
* new core functions to get app stat, simplify core code
* fix thread termination
* add strdup to core
* fix tests
* Refactoring: remove all unusued parts, update API usage, aggreagate API sources and headers, new record storage
* Refactoring: update furi record api usage, cleanup code
* Fix broken merge for freertos apps
* Core, Target: fix compilation warnings
* Drop firmware target local
* HAL Timebase, Power, Clock: semaphore guarded access to clock and power modes, better sleep mode.
* SD-Filesystem: wait for all deps to arrive before adding widget. Core, BLE: disable debug dump to serial.
* delete old app example-ipc
* delete old app fatfs list
* fix strobe app, add input header
* delete old display driver
* comment old app qr-code
* fix sd-card test, add forced widget update
* remove unused new core test
* increase heap to 128k
* comment and assert old core tests
* fix syntax

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2021-01-20 19:09:26 +03:00
あく
c8aca9ef48
[FL-667] Power saving: deep sleep in tickless state (#300)
* SYSTEM: tickless mode with deep sleep.
* Move FreeRTOS ticks to lptim2.
* API: move all sumbodules init routines to one place.
* Timebase: working lptim2 at tick source.
* API Timebase: lp-timer routines, timer access safe zones prediction and synchronization. 
* FreeRTOS: adjust configuration for tickless mode.
* NFC: support for tickless mode.
* API Timebase: improve tick error handling in IRQ. 
* Apploader: use insomnia mode to run applications.
* BLE: prevent sleep while core2 starting.
* HAL: nap while in insomnia mode.

Co-authored-by: coreglitch <mail@s3f.ru>
2021-01-18 18:08:58 +03:00
DrZlo13
c3a8af8448
[FL-698] SD cli commands (#306)
* add c++ compability in cli
* add sd-filesystem cli commands
* add sd-card-test cli commands
* use context pointer
2021-01-14 03:23:34 +06:00
coreglitch
34ac4f0d91
fix gpio set (#305) 2021-01-13 03:24:57 +06:00
DrZlo13
9ed8bebba1
SPI Device API (#304)
* spi device config
* fix api_interrupt_call warning
* added configs for spi2 bus devices
* simplified spi bus api
* use new spi device api
2021-01-12 20:33:36 +03:00
coreglitch
6a5e3e83b4
FL-524 Fix subghz freq (#303)
* add freq tuning
* remove force VCO from test settinigs
2021-01-12 18:05:44 +06:00
DrZlo13
f94633863c
[FL-520] Filesystem Api and App (#280)
* update fatfs integer types
* fix sector size to 512
* fix sector size calculation
* common fs api
* fs api realization (sd card + fat fs)
* better sector size definition
* more api realization fns
* add error description api, add common api
* fix api flag naming, run app
* add fs_info call
* disable fatfs strfuncs, enable fatfs chmod
* rework filesystem app
* sd detect cycle, sd menu, sd eject feature
* fix sd detect cycle
* sd card format routine
* ui improvements, sd info routine
* properly unmount card
* separate mode flags
* add api folder, move app, rename app
* fix api naming
* update st-card-test to use api
* update path to app
* fixed potential problem of using sizeof union
* updated api documentation, new time/date fns
* update codeowners
* changed app requirements
* changed app order
* sd insert/remove log
2021-01-11 20:52:35 +06:00
あく
6928122650
FL-53: new NFC worker, A/B/F/V poll and display. (#283)
* GUI: view. Flooper-blooper fix compilation error.
* GUI: view and viewdispatcher bones
* GUI: view implementation, view models, view dispatcher
* GUI: view navigation, model refinement. Power: use view, view dispatcher.

* HAL Flash: proper page write. Dolphin: views. Power: views

* Dolphin: transition idle scree to Views
* Dolphin: input events on stats view. Format sources.

* HAL: flash erase. Dolphin: permanent state storage.

* Dolphin: first start welcome. HAL: flash operation status, errata 2.2.9 crutch.

* NFC: rewrite worker
* NFC: add support for B,F,V.
* NFC: replace rfal irq hanlder with realtime thread, more details about cards.

* Bootloader: LSE and RTS shenanigans, LED control, morse code for LSE failure error.

* F4: stop in Error_Handler

* BLE: handle working FUS, but empty radio stack.

* HAL: alive FUS is now sufficient for flash controller access

* Dolphin: update model after state load

* NFC: detect navigation

* RFAL: use osPriorityISR for isr thread

* NFC: emulation

* Bootloader: rollback incorrectly merged rename

* Dolphin: rollback incorrectly merged changes

* RFAL: remove volatile from thread attr

* RFAL: do not call platform ErrorHandler, error codes is enough

* NFC: improved error handling

* Format sources

* NFC: reset detect view model on start

* Format sources

* update codeowners

* NFC: hide last info if no card detected
2021-01-11 18:42:25 +06:00
あく
34dbb2ea86
GUI: fix issue with gui update on view draw (#301) 2021-01-11 15:20:29 +03:00
あく
1b78418f9f
FL-528 GUI: View, ViewDispather. Dolphin: first start. (#276)
* GUI: view. Flooper-blooper fix compilation error.
* GUI: view and viewdispatcher bones
* GUI: view implementation, view models, view dispatcher
* GUI: view navigation, model refinement. Power: use view, view dispatcher.
* HAL Flash: proper page write. Dolphin: views. Power: views
* Dolphin: transition idle scree to Views
* Dolphin: input events on stats view. Format sources.
* HAL: flash erase. Dolphin: permanent state storage.
* Dolphin: first start welcome. HAL: flash operation status, errata 2.2.9 crutch.
2021-01-08 10:42:48 +06:00
DrZlo13
d65e9b04ce
[FL-572][FL-577] Irda receive feature (#282)
* fix "state not acquired error"
* add InterruptTypeComparatorTrigger to interrupt mgr, use interrupt mgr in irda app
* separate init irda timer
* capture events buffer by app
* irda common decoder
* irda nec decoder realization
* finished work with decoder
* fix app path
* fix widget remove on exit
* nec receive, store and send
* init some packets
2021-01-07 22:28:35 +06:00
あく
9a257b048e
Power: more info (#274) 2020-12-23 00:16:32 +06:00
あく
daf18c11c8
Update flooper-blooper version (#275) 2020-12-22 23:56:25 +06:00
DrZlo13
b32c5f3897
FL-549 Reading iButton "Cyfral" by HW comparator (#273)
* new comparator-based reader
* working comparator reader
* add keys "integrity" check
* reset events queue
2020-12-22 20:44:38 +06:00
DrZlo13
8b6e7fd4ae
FL-443 Move sd card to second spi (#271)
* sd card spi 2 fix, add spi mgr
2020-12-19 13:52:17 +06:00
あく
73ecc7cde6
Rename Irukagotchi to Dolphin. Add basic game state structures. (#268)
* Rename Irukagotchi to Dolphin. Add basic game state structures.
* Dolphin: state, counters, api. BT: shared access to flash. Flash: write api.
* add fake -1 deeds, example of changing icounter

Co-authored-by: coreglitch <mail@s3f.ru>
2020-12-19 02:15:29 +06:00
DrZlo13
3ba1738acd
FL-262 Interrupt manager (#270)
* interrupt manager
* init interrupt manager
* add usage to lf-rfid app
* check ready flag
* move interrupts code to target hal
* fix path
2020-12-19 01:26:03 +06:00
あく
153d32bf15
Power: info (#272) 2020-12-19 00:03:28 +06:00
あく
dde163fa61
Bootloader: do not configure clock on start, just minimum LL init. (#269)
* Bootloader: do not configure clock on start, just minimum LL init.
2020-12-18 23:51:08 +06:00
aanper
aa1a893d81 add era doorbell 2020-12-15 00:04:44 +03:00
coreglitch
56c1142af6
Cc1101 tx (#262)
* wip tx
* hold gd0 down
* doorbell example
2020-12-14 22:59:13 +03:00
あく
d3ff787864
GUI: abolish API injection into instances. (#265)
* GUI: abolish API injection into instances. Update usage by 3rd party apps.
* GUI: update documentation. Cleanup api usage. Adjust status bar item spacing.
2020-12-14 13:50:32 +03:00
あく
2f2f6b5f50
BLE: F3 integration (#260)
* BLE: working version
* BLE: cleanup
* BLE: update device description and DIS.
* BLE: explicitly take semaphore and configure CLK48, bt subsystem status, remove LPM.
* HAL: add missing api_hal_bt_is_alive symbol
* TODO about valuemutex
* duplicate f3-1 (f4) ioc from f3
* regenerate project
* use target dir for ble glue path
* update f4 from f3

Co-authored-by: coreglitch <mail@s3f.ru>
2020-12-10 17:25:20 +03:00
あく
3a6fbff8c3
FL-339: cli diagnostic interface for power subsystem. (#256)
* Core, API: add externs for c++
* Makefile: improve debug speed, flash with openocd, cleanup f2 config
* Power: add cli diagnostic.
* Local: fix api hal externs
* Local: fix externs in main and flipper_hal
* F2: power state dump stabs
* Bootloader flashing with openocd
* F3: move bq drivers to libs
* temporary do not build drivers on local
* temporary do not build drivers on f2

Co-authored-by: aanper <mail@s3f.ru>
2020-12-02 13:47:13 +03:00
coreglitch
f58b322bb5
FL-353 Cc1101 rx (#255)
* enable transparent mode
* rssi ok, transmit ok, fifo ok
* I see the signal
* successful async rx (registers from smartrf)
* refactor rfstudio register config
* rewrite config, found some issues
* handle G0 interrupts
* g0 irq enable after cc1101 init
* update cube
2020-12-01 21:47:46 +03:00
DrZlo13
1f761d7fbb
[FL-84] iButton app, dallas emulate + cyfral read, cyfral emulate (#253)
* maxim crc function
* one wire template device and ds1990 classes
* 3 fields for addr
* cyfral emulator lib
* add cyfral read mode, refract rendering and events
* add ADC1_IN14, add adc interrupt
* cyfral read mode
* rename and move api-hal includes folder
* build onewire libs only if we build app
* start in mode 0
2020-11-25 10:25:13 +03:00
あく
758e37e294
Enable RTC for all platforms and add cli date command (#252)
* F2: enable RTC. Cli: add date command.
2020-11-23 16:26:19 +03:00
DrZlo13
a96f23af9b
fix multithread logic in template app, update gpio HAL (#250)
* fix multithread logic
* more buffer for dallas id string
* update apps to use new logic
* delay_us small speedup
* add consant qualifier to gpio records and some core api
* fix some apps to use simpler method of getting gpio record
* fix ibutton app, stupid stack problem
2020-11-19 15:25:32 +03:00
coreglitch
ccd40497eb
FL-176 LF RFID RX (#248)
* pulldown ibutton pin during rfid read
* enable and handle COMP interrupts
* send events from comparator IRQ and handle in app
* manchester encode
* successfully read em4100
* read-emulate
* led
2020-11-19 14:11:03 +03:00
DrZlo13
27ae2a8fa9
#FL-303 fix for some spi bugs, test app for sd-nfc interconnection (#247)
* sd-nfc test app

* do not hold spi in disable mode

* disable pullups in nfc chip
2020-11-18 16:01:25 +03:00
DrZlo13
9bbc8fafe5
fix too early mode render (#249)
iButton app, bugfix
2020-11-18 15:51:23 +03:00
coreglitch
f0bda07742
Rearrange menu (#246)
* rearrange menu
2020-11-18 12:39:10 +03:00
coreglitch
6d7ecf9a44
Floopper bloopper (#245)
* add floopper bloopper build
* enhance canvas api
* update submodule
2020-11-18 11:01:51 +03:00
あく
d57b7fd448
Cli: fix memleak, add more commands. (#244)
* Cli: add statndard applications, fix memory leak, add reset and reset to dfu.

* Lib: pass proper data pointer to osMessageQueueGet

* App-loader: optional cli

* Format sources
2020-11-17 20:08:31 +03:00
あく
459b61720c
Assets: add more menu icons, add stubs to menu. (#241)
* Assets: add more menu icons, add stubs to menu.

* Format sources
2020-11-17 19:21:54 +03:00
DrZlo13
1abc98086e split resources, fix format 2020-11-17 07:39:48 +10:00
DrZlo13
c17f4c9d38 format fix 2020-11-17 07:20:58 +10:00
DrZlo13
799eefd754 ibutton app, only read mode 2020-11-17 07:10:58 +10:00
DrZlo13
a8fdbc6376 Merge branch 'master' into ibutton-app 2020-11-17 06:21:45 +10:00
DrZlo13
3d6af91dd1
simple music player app (#240)
* split power-cli dependence
* music_player application
* add player to release mode
* fix stupid error
2020-11-16 20:12:05 +03:00
coreglitch
3d5563b169
init nfc later (#239) 2020-11-16 18:26:34 +03:00
DrZlo13
4eeac6579f ibutton init 2020-11-16 21:21:58 +10:00
あく
3749eb0eed
USB VCP Cli (#237)
* Core: ring buffer.
* Api: usb vcp. F3: vcp glue code.
* Applications: cli draft version.
* Cli: basic working version, includes help and version commands
* HAL: vcp on f2
* Makefile: update openocd conf
* F3: vcp rx with freertos stream
* Cli: help
* Cli: standard commands, api-hal-uid
* Power: cli poweroff.
2020-11-16 13:16:34 +03:00
DrZlo13
714d732745
FL-78 Microsd test application (#230)
* variable cluster size, label info functions for targets
* app record
* init, mount, get label, get sn, get space
* enable exfat
* more stack for the stack god
* remove c app and add cpp app
* remove MULTI_PARTITION
* fix 4gb bug
* update app to new template lib, add animated waiting
* tiny buffer configuration
* write speed benchmark
* fnv1a hash library
* make DEFAULT_STACK_SIZE and MAX_TASK_COUNT defined per target
* fully functional sd card app
* build sd test app to release firmware
* cpp, not c
* light up red led if error
* flags for c++
* linking with g++
* suppres snprintf warning
* move format work area to heap

Co-authored-by: coreglitch <mail@s3f.ru>
2020-11-14 19:24:38 +03:00
coreglitch
afcfcd4d4a
FL-103 Gpio test (#236)
* fail build
* add gpio tester
2020-11-14 13:08:07 +03:00
coreglitch
a61eef0f99
FL-186 Add vibro demo (#234)
* add vibro demo
* add F2 support
2020-11-12 22:26:49 +03:00
coreglitch
bf2f6e89ca
FL-172 Cc1101 freq (#233)
* specify freq list, remove unused code
* use system resource led
* fix rssi offset
2020-11-12 21:08:40 +03:00
あく
608d458b9a
NFC: move worker to separate file, use LED for IO indication, field on/off menu (#231) 2020-11-12 12:44:35 +03:00
DrZlo13
9d8c36810e
IR RX simple app (#218)
* split falling and rising ir rx events
* fix irda
* simple irda rx function for app
* add extern timer
* fix timer num for f2
2020-11-11 10:36:27 +03:00
あく
f05ffddbde
Power: bq25896 and bq27220 drivers, portable power api. (#224)
* Power: add portability layer, port to F3.
* F3: bq25896 driver stab
* GUI: new primary and secondary fonts
* F3: bq25896 register map, basic functions
* F3: move bq27220 command descritpion to separate file. Code format.
* Power: OTG enable/disable
* Power: choose more correct profile
* F3: pet bq25896 watchdog sometimes
2020-11-11 09:31:35 +03:00
DrZlo13
49fdb28871
sd detect pin feature (#222)
* test sd detect pin
* sd detect support for f2 board
2020-11-11 09:17:53 +03:00
coreglitch
1fbfc5a61a
Blink strobe (#213)
* blink all led and control freq by button
* rename to strobe
2020-11-07 12:24:40 +03:00
DrZlo13
f4d4604a03
rgb blink (#223) 2020-11-07 11:42:00 +03:00
coreglitch
bce6f867f1
show target version, date, commit hash and branch (#221) 2020-11-06 12:31:06 +03:00
coreglitch
eb2679b982
Refactor F2/local before F3 merge (#220)
* add files from f3
* rollback lfs
* Move assets from LFS
* remove lfs from build

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2020-11-06 11:31:59 +03:00
DrZlo13
979af6c165
Core code cleanup (#206)
* add delay function
* todo about delay_isr
* remove arduino defines and fix all apps to use core-api/hal-api
* delay for local target
* remove warnings of task_equal
* fix BSP_SD_Init
* fix USBD_static
* grio read constant pointer to gpio
* add TODO about ISR context
* const void* arg for pubsub api
* mark unused functions
* app pointers now pointed to constant apps
* fix printf format
* fix "unused" warnings in local target
* fix const pin read in local target
* fix int to pointer warnings in local target
* power read mutex error fix
* delete old makefile
* add -werror

Co-authored-by: Aleksandr Kutuzov <aku@plooks.com>
Co-authored-by: aanper <mail@s3f.ru>
2020-10-29 10:58:19 +03:00
あく
0af239ebc0
GUI: status bar rendering. Power: battery indicator. (#207)
* Menu: animation. Irukagotchi: idle image.
* Power: battery, usb activity widget
* Power: tune battery max voltage and clamp overshoot
* get initial charge state

Co-authored-by: Aleksandr Kutuzov <aku@plooks.com>
Co-authored-by: aanper <mail@s3f.ru>
2020-10-29 10:11:16 +03:00
DrZlo13
8aeafd8179
furi_check - a new way to asserting (#204)
* hal-related task_is_isr_context function
* furi_check implementation
* change application to use furi_check
* add second level of assertion
* add TODO about ISR context
* Applications: refactor furi_check and furi_assert.
* Apploader: propwer widget usage. Menu: check on furi resource request.
* refactor furi_check

Co-authored-by: Aleksandr Kutuzov <aku@plooks.com>
Co-authored-by: coreglitch <mail@s3f.ru>
2020-10-29 09:27:17 +03:00
coreglitch
de968b13b4
Implement LF RFID emulation (#208)
* migrate code from old repo, not work
* fix emulation
* disable irq handling while RFID emulating
* add testcase
2020-10-28 11:38:04 +03:00
あく
665f6d7d9c
Assets, Icons, UI toolkit. Part 1. (#202)
* Assets: import from gdrive
* Assets: fully working build pipeline and registry
* NFC: menu icon
* Gui: layers. Irukagotchi: base app to handle input on idle screen. Makefile: reboot after flash in dfu mode.
* ValueMutex: with lambda
* Assets: proper animation frames sorting
* ValueMutex: proper furi_open usage
* Assets,GUI: split icon into icon data and icon state.
* Format source code
* Docker: add python3 and imagemagic
* Irukagotchi: cleanup
* GUI: event lock moved to gui.
* Rfid: proper gui layer
* GUI: elements. Menu: frame and scroll
* GUI, Menu: format code.
* Menu: dual font main menu
* Menu: format sources
* GUI: 0 total scrollbar
* CI: enable lfs
* Menu: pixel perfect main menu

Co-authored-by: Aleksandr Kutuzov <aku@plooks.com>
Co-authored-by: aanper <mail@s3f.ru>
2020-10-26 20:00:17 +03:00
coreglitch
e699c4a31e
Lf rfid (#196)
* add lf rfid workaround
* add pwmn
* carrier generator
* proper exit for lf rfid

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2020-10-26 12:56:46 +03:00
Vadim Kaushan
bb68fca20b
Implement ValueManager and ValueComposer (#183)
* Fix ValueManager implementation
* Implement ValueComposer
* Add constructor for ValueManager
* Add value-expanders.h to flipper_v2.h set
* Move COPY_COMPOSE body into a .c file
* Add test for ValueManager
* Add destructors for ValueMutex, ValueManager and ValueComposer
* Use destructors in tests
* Move composition logic into perform_compose()
* Add docs for perform_compose()
* Add test for ValueComposer
* Replace atomic_bool with bool as g++ compiler doesn't support C11 atomics
* Add Event type
* Add semaphore support to the local target
* Add test for Event
* Update input records and relevant examples
* Rename Event to AppEvent in the cc1101-workaround example
* Rename Event to AppEvent in the irda example
* Use Event in ValueComposer to wait for update request
* Add perform_compose_internal() function
* fix Event/AppEvent

Co-authored-by: aanper <mail@s3f.ru>
2020-10-26 12:26:15 +03:00
DrZlo13
69d97afea8
IRDA samsung protocol (#200)
* samsung irda protocol implementation
* app for samsung irda protocol
* smaller strings and hal pwm

Co-authored-by: aanper <mail@s3f.ru>
2020-10-26 10:27:27 +03:00
coreglitch
f5b342abbe
Api hw gpio pwm (#199)
* initial gpio layer

* move temlplate.c to template.c.example in preparing to applications.mk rework

* separate arduino layer

* separate flipper_hal.x

* prepare to switch applications on v2 core gpio api

* swithch applications to v2 gpio api

* gpio api for local target

* better gpio_disable handling

* remove pwm functions from local target

* inline gpio funcs

* common function to init all api's

* fix local example blink

* move delay us to hal api folder

* move pwm_set/pwm_stop to hal api folder

* update applications to use hal pwm api

* remove gpio mode case warning

* add speaker demo to build

Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2020-10-26 10:16:54 +03:00
DrZlo13
37fc47a24f
IR transmit example (#180)
* DWT-based microsecond delay

* simple ir app (work only with NEC protocol and predefined address - command)

* remove space from file name, add delay_us_init_DWT header

* float-based delay us

* init tim2 by CubeMX

* fix simple pwm functions

* simple pwm timer based ir nec protocol

* ir gui test app

Co-authored-by: aanper <mail@s3f.ru>
2020-10-23 12:39:11 +03:00
aanper
83dad63813 fix brace 2020-10-22 10:06:40 +03:00
aanper
736225c90e fix syntax 2020-10-22 09:59:33 +03:00
aanper
fe89c81bfa add example template code 2020-10-22 09:58:51 +03:00
aanper
b607e6e5f5 add todo about dispatcher lock implementation 2020-10-21 15:19:43 +03:00
Aleksandr Kutuzov
1595ec782e CC1101: format sources 2020-10-21 15:13:26 +03:00
Aleksandr Kutuzov
aced0ee961 CC1101: explicitly configure SPI 2020-10-21 15:06:18 +03:00
aanper
4e4965fad3 syntax check 2020-10-21 13:59:52 +03:00
aanper
a1780154df not start worker if err 2020-10-21 13:52:51 +03:00
aanper
fa2f071ed1 start nfc test anyway (showing error) 2020-10-21 12:59:06 +03:00
aanper
d818fe1d27 Merge branch 'master' into aku_nfc_clean 2020-10-21 12:21:53 +03:00
Aleksandr Kutuzov
f33647df54 NFC: replace deprecated furi api with new one 2020-10-20 17:27:54 +03:00
Aleksandr Kutuzov
aab597e0a3 NFC: format sources 2020-10-20 16:58:41 +03:00
Aleksandr Kutuzov
92f6e124ba NFC: screens for not implemented features 2020-10-20 16:49:52 +03:00
Aleksandr Kutuzov
6b33e8ff61 Menu: fix code formatting 2020-10-20 16:27:38 +03:00
Aleksandr Kutuzov
357922ab14 NFC: proper menu valuemutex invokation 2020-10-20 16:20:53 +03:00
Aleksandr Kutuzov
224668e156 Menu: handle empty menu 2020-10-20 16:20:30 +03:00
Aleksandr Kutuzov
e2157b2403 NFC: format source. 2020-10-20 15:31:21 +03:00
Aleksandr Kutuzov
4c60218997 NFC: proper include order in Makefile 2020-10-20 15:25:01 +03:00
Aleksandr Kutuzov
88ab3c3aee NFS: export config var 2020-10-20 15:02:00 +03:00
Aleksandr Kutuzov
b1eb171e4b Nfc: show nfc driver status 2020-10-20 14:12:34 +03:00
Aleksandr Kutuzov
d27b93c1ca NFC: add interrupt routine only if APP_NFC is defined 2020-10-20 14:12:34 +03:00
Aleksandr Kutuzov
785469f598 NFC: input ISR cleanup 2020-10-20 14:12:34 +03:00
Aleksandr Kutuzov
ecc93152c9 NFC: rename to Nfc 2020-10-20 14:12:34 +03:00
Aleksandr Kutuzov
ee18198b4d Move dispatcher to nfc. 2020-10-20 14:12:34 +03:00
Aleksandr Kutuzov
4fea9e43a8 clang format 2020-10-20 14:12:33 +03:00
Aleksandr Kutuzov
4c9eb4928d NFC: application + rfal + driver. 2020-10-20 14:12:28 +03:00
DrZlo13
430815d561 now asserts dont break anything in release mode 2020-10-20 19:23:53 +10:00
aanper
3da3022dff fix build flag 2020-10-20 08:45:38 +03:00
aanper
dc39be505b not build cc1101 in local build, app_release default in CI build 2020-10-19 09:56:12 +03:00
aanper
5bd5136972 syntax check 2020-10-19 09:23:49 +03:00
aanper
6a647f0fa3 fix tx mode (disable manual calibration) 2020-10-19 09:22:56 +03:00
aanper
3b993578f4 release/cc1101 debug build 2020-10-19 09:22:38 +03:00
aanper
e217029fcc tx not work properly 2020-10-18 10:47:38 +03:00
aanper
6b5797bbf4 rx example 2020-10-18 07:47:49 +03:00
aanper
737ee2b0bf gui, navigate over freqs 2020-10-18 07:10:15 +03:00
aanper
568143537d build ok, issue with display 2020-10-18 05:52:11 +03:00
aanper
7c03ce179c add cc1101 to build/menu 2020-10-18 05:43:09 +03:00
aanper
05d704fd54 merge 2020-10-17 16:48:13 +03:00
aanper
66f6df08cc syntax fix 2020-10-17 13:41:50 +03:00
aanper
0f4799d70b run/kill app, issue with multiple load 2020-10-17 13:10:53 +03:00
aanper
b9fbf78616 sandbox gui 2020-10-17 12:58:14 +03:00
aanper
566ba378ff add apploader example 2020-10-17 11:48:52 +03:00
aanper
3c453a2a20 refactor menu mutexes 2020-10-17 11:48:29 +03:00
Aleksandr Kutuzov
f0800e579f GUI: GuiApi isolation 2020-10-16 18:25:06 +03:00
Aleksandr Kutuzov
491343b683 GUI: reformat sources 2020-10-16 16:36:05 +03:00
Aleksandr Kutuzov
1a36dfc5d3 GUI: hide canvas inside 2020-10-16 16:34:36 +03:00
Aleksandr Kutuzov
23478fd175 Menu: code format 2020-10-16 16:11:51 +03:00
Aleksandr Kutuzov
e213954d2d Menu: item callback function context, event osWaitForever timeouts. 2020-10-16 15:18:36 +03:00
Aleksandr Kutuzov
d715767cef GUI: osWaitForeverfor in queue put, simplify osMessageQueueGet. 2020-10-16 15:16:54 +03:00
aanper
a9a39fcda9 merge from master, menu not work 2020-10-16 07:42:08 +03:00
DrZlo13
05ef19b07a
Pubsub core api feature (#174)
* fixed inline functions for modern C standart

* pubsub api, base version

* basic test for pubsub

* update applications.mk, add test file

* more test for pubsub

* remove unimplemented files, cleanup header file

* remove legacy tests, check unsubscribe not call cb

* implement deleting mutex, fail test

* release mutex before deleting

Co-authored-by: aanper <mail@s3f.ru>
2020-10-15 21:23:18 +03:00
DrZlo13
59740349fa
furi memory managment (#177)
* memory managment calls now forwarded to freertos heap

* memory managment tests

* local target test compability

* rename heap.c file to heap_4.c for local target and explicity init heap in single thread context

* rebase BlockLink_t struct

* check mutex in local heap

Co-authored-by: aanper <mail@s3f.ru>
2020-10-15 20:36:15 +03:00
rusdacent
7570ac08a9
Fix codestyle check pipeline (#178)
* change continue-on-error to false

* add manual trigger

* revert manual trigger

* test fail checkstyle

* restore prev trigger and settings

* fix syntax

* fix exit code for codestyle

* try to break pipeline

* restore pipeline

Co-authored-by: aanper <mail@s3f.ru>
2020-10-15 19:50:21 +03:00
aanper
2806a3ce3d add forgotten u8g2 periphery 2020-10-15 19:16:11 +03:00
aanper
1e40f873a5 backlight control 2020-10-15 19:15:53 +03:00
aanper
f9bda68ef8 lint 2020-10-15 18:57:21 +03:00
aanper
f0f3615c55 compile/run ok, issue with backlight 2020-10-15 18:56:47 +03:00
aanper
78e016412e gui draw refactor 2020-10-15 18:13:18 +03:00
aanper
e684869970 refactor canvas 2020-10-15 18:05:28 +03:00
aanper
19ef348c80 [wip] change gui/widget api 2020-10-15 11:32:48 +03:00
aanper
f2a38cf174 fix syntax 2020-10-15 11:02:40 +03:00
coreglitch
b2a12d091a
Display and UI implementation (#169)
* Menu app. Lib: add mlib submodule.

* Menu: new startup lib dependency definition

* Menu: hierarchy in menu. Cube: fix heap1/4 inconsistency, stack protection.

* GUI: rendering pipeline initial version.

* GUI: layered widget composing, FURI record. Menu: FURI record, api.

* GUI: input dispatching. Menu: switch to input from GUI.

* GUI, MENU: code style cleanup, fix type conversion warnings.

* GUI, Menu: syntax check.

* Makefile: check and reinit submodules, format.

* Menu: lock on event processing. Makefile: proper submodule initialization.

* Menu: fix stack corruption by queue.

* GUI: refactor.

* Makefile: format rule fix, st-util pid.

* GUI, Menu, FURI: format with clang-format.

* GUI, MENU: locks in critical sections, fix stack corruption, ready signaling.

* Makefile: clang format rule cleanup.

* GUI,MENU: migrate to new API.

* Applications: PRODUCTION_HW variable, skip drivers build on local target.

* refactor production build

* add git to dockerfile

* GUI: uncomment lock block

Co-authored-by: Aleksandr Kutuzov <aku@plooks.com>
2020-10-14 13:21:55 +03:00
aanper
3020a2a6b9 wip cc1101 work 2020-10-14 10:26:23 +03:00
aanper
b007b9cb60 lint code 2020-10-13 20:59:39 +03:00
aanper
f696673700 add workaround app 2020-10-13 13:39:59 +03:00
coreglitch
942bbfaefe
Core api concept (#144)
* add input debounce code from old fw

* exampl of input api

* change input API to get/release

* revert input API to read

* pointer instead of instance

* add input API description

* add display API

* rewrite display names

* migrate to valuemanager

* add LED API

* add closing brakets

* add sound api

* fix led api

* basic api

* rename API pages

* change pubsub implementation

* move FURI AC -> flapp, add valuemutex example, add valuemanager implementation

* pubsub usage example

* user led example

* update example

* simplify input

* add composed display

* add SPI/GPIO and CC1101 bus

* change cc1101 api

* spi api and devices

* spi api and devices

* move SPI to page, add GPIO

* not block pin open

* backlight API and more

* add minunit tests

* fix logging

* ignore unexisting time service on embedded targets

* fix warning, issue with printf

* Deprecate furi_open and furi_close (#167)

Rename existing furi_open and furi_close to deprecated version

* add exitcode

* migrate to printf

* indicate test by leds

* add testing description

* rename furi.h

* wip basic api

* add valuemutex, pubsub, split files

* add value expanders

* value mutex realization and tests

* valuemutex test added to makefile

* do not build unimplemented files

* fix build furmware target f2

* redesigned minunit tests to allow testing in separate files

* test file for valuemutex minunit testing

* minunit partial test valuemutex

* local cmsis_os2 mutex bindings

* implement furi open/create, tests

* migrate concurrent_access to ValueMutex

* add spi header

* Lib: add mlib submodule.

Co-authored-by: rusdacent <rusdacentx0x08@gmail.com>
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2020-10-13 11:22:43 +03:00
coreglitch
469dbf58ac
Fix linter path and lint code (#170)
* chage syntax checker path

* fix syntax
2020-10-11 17:03:05 +06:00
coreglitch
176e608c6d
Add minunit test framework (#168)
* add minunit tests

* fix logging

* ignore unexisting time service on embedded targets

* fix warning, issue with printf

* add exitcode

* migrate to printf

* indicate test by leds

* add testing description

* redesigned minunit tests to allow testing in separate files

* add test step for local target

* add failure test

* add restore test_check

* testing description

Co-authored-by: rusdacent <rusdacentx0x08@gmail.com>
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
2020-10-10 13:32:06 +03:00
DrZlo13
59513b05ee
Simple sd card driver (#162)
* fixed inline functions for modern C standart

* more stack for application

* added library

* init fatfs library

* fatfs example application

* Merge with current master

* fix typo and delete old files

* cmsis os 2 reentrance fix

* Reworked dependency wait to support multiple dependency

* Build FatFS on local target, syscall.c is target-specific.

* run local target ok

* testcase for fatfs

Co-authored-by: aanper <mail@s3f.ru>
2020-10-08 17:37:19 +03:00
あく
3c2711102c
Target refactoring and cube update (#161)
* Lib: move cube to libs. Firmware: prepare for code base refactoring, detach from cube, port to cmsis_os2.

* Firmware, target f2: regenerate project with latest cube package, tim17 for os ticks.

* Firmware: unified codebase.

* Core: do not include semaphore on old targets. Firmware: dfu uplaod target.

* CI: submodules, add firmware build.

* CI: proper submodule config.

* refactor build system

* CI: update chain to use new targets. Documentation: update to match current structure.

* CI: clean before rebuild.

* Add local test

docker-compose exec dev make -C firmware TARGET=local TEST=1 run

* Makefile: target specific build directory. CI: updated artifacts path.

* Makefile: init git submodules if they don't exists.

* Makefile: debug rule now doesn't reset MCU, prevent SIGINT propagation to st-util.

* Makefile: proper rebuild sequence in zz and zzz

* Makefile: timestamp tracking for flash and upload commands.

* Apps: modular build. Input: fix flipper hal inline.

* Wiki: proper bootloader link.

* Applications: fix broken build for local targets.

* add st-flash to docker

* fix build

* force rebuild app

* move app force to firmware part

* fix build deps

* qrcode build ok

* fix example display

* add testing routine

* update build instruction

Co-authored-by: Aleksandr Kutuzov <aku@plooks.com>
Co-authored-by: aanper <mail@s3f.ru>
2020-10-07 12:37:43 +03:00
DrZlo13
04bf049612
New application, QRCode generator (#160)
* Applications dependency, initial realization

* New application, qr code generator

* better buffer clearing

Co-authored-by: aanper <mail@s3f.ru>
2020-10-05 13:33:35 +03:00
DrZlo13
ec5e5da138
Applications dependency, initial realization (#159) 2020-10-05 13:17:34 +03:00
Vadim Kaushan
8c36d65e63
Input handling and debouncing (#148)
* Add input driver and definitions for target_f2

* Add input_dump example

* Invert charge input

* Fix back and left button configuration

* remove input debug

* input testing case

* move header

* lint code

Co-authored-by: aanper <mail@s3f.ru>
2020-10-02 09:44:05 +03:00
Nikita Beletskii
110a9efc3c
[WIP] Add syntax check for rust and C\C++ code (#108)
* proof of concept

* fix syntax for rust and add auto fix syntax

* fix syntax for C

* fix bug with files owner

* add information to wiki

* try to add ci

* format code from master

* even more format fixes

* change docker to docker-compose

* Exclude ./target_*/build directories from format check

* Run rustfmt only on project files

* add ulimit setup for long clang list

* merge

* fix rustfmt, exclude target Inc directory

* sync with master

* abspath

Co-authored-by: aanper <mail@s3f.ru>
Co-authored-by: Vadim Kaushan <admin@disasm.info>
2020-09-30 02:18:30 +03:00
Vadim Kaushan
cea7b2bde0 Replace fuprintf with printf in the uart_write example 2020-09-14 21:26:45 +03:00
coreglitch
118611eabd
Rave king (#111)
* add u8g2 and ui libs

* add display driver and usage example

* not init display in test mode

* change todo text

* fix removed code

* add ioc for flipperzero f2

* add generated f1 files to f2

* regenerate cubemx

* invert initial state of led

* blink backligh

* shutdown backlight on idle

* more rave!

* add todo
2020-09-09 19:54:21 +03:00
coreglitch
5c81bb8abc
add u8g2 and ui libs (#91)
* add u8g2 and ui libs

* add display driver and usage example

* not init display in test mode

* change todo text

* fix removed code

* Target f2 (#107)

* add ioc for flipperzero f2

* add generated f1 files to f2

* regenerate cubemx

* invert initial state of led

* blink backligh

* shutdown backlight on idle
2020-09-09 19:12:09 +03:00
Vadim Kaushan
884fccc591
Implement mutex for local target, fix concurrency test (#104)
* Implement mutex support for target_lo

* Kill application if test hangs

* Use mutex in furi_take and furi_give

* Give furi application enough time to finish

* remove app obj after build

* enable counting semaphores

Co-authored-by: aanper <mail@s3f.ru>
2020-09-07 17:35:18 +03:00
coreglitch
5b6ab7faf3
Example ipc (#60)
* add blank example

* add ipc example code, need to change FURI API

* add ipc example code, need to change FURI API

* change core API, add context

* check handler at take

* fix important bugs in furi

* drawing example

* add posix mq

* fix unsigned demo counter

* create at open

* working local demo

* russian version of IPC example

* english version

* add gif
2020-09-01 13:34:23 +03:00
Vadim Kaushan
b13925f7ab
Add library with Rust bindings to target_f1 code (#68)
* Move flipper-core into a workspace

* Fix target build rules

* Add flipper-f1-sys library

* Add flipper-f1-sys dependency to flipper-core

* Remove apparently useless includes

* Build and export HAL statics

* Disable Rust dependency detection for target_f1 build

* Install libclang-10-dev in docker

* Build Rust libs every time

* remove duplicate sources from make

* clean build different example

* wip add example fn

* Implement rust_uart_write()

* fix rebuild instructions for target_f1

Co-authored-by: aanper <mail@s3f.ru>
2020-08-31 22:33:38 +03:00
coreglitch
4dc82b68d1
UART write example (#53)
* Rename test functions

* rewrite furi API, segfault

* make fixes in FURI, log through FURI

* add uart write example blank

* implement fuprintf instead of fopencookie

* add gif, blank page

* UART write example description

Co-authored-by: Vadim Kaushan <admin@disasm.info>
2020-08-26 21:32:22 +03:00
Vadim Kaushan
5094623d04
Rename test functions (#52) 2020-08-26 14:44:49 +03:00
Vadim Kaushan
1bec8dd23a
Install Rust in docker image, add Rust library and build rules (#41)
* Install Rust in docker image

* Also install thumbv7em-none-eabi target

* Install Rust in docker image

* Also install thumbv7em-none-eabi target

* Add Rust example

* Link to the Rust example

* Call function from the Rust lib

* Move PROJECT_DIR to the 'paths' section

* Fix target_f1 build

* Link to the Rust library in target_f1

* Generate cbindgen bindings

* Add forgotten dependency line

* Use panic=abort instead of eh_personality lang item

* Install Rust in docker image

* Also install thumbv7em-none-eabi target

* Add Rust example

* Link to the Rust example

* Call function from the Rust lib

* Move PROJECT_DIR to the 'paths' section

* Link to the Rust library in target_f1

* Generate cbindgen bindings

* Add forgotten dependency line

* Use panic=abort instead of eh_personality lang item

* add rust call test

Co-authored-by: aanper <mail@s3f.ru>
2020-08-26 13:08:20 +03:00
aanper
e28cfe5fec change mode to OD 2020-08-26 11:45:36 +03:00
coreglitch
bee159f435
led blink example
* led blink example

* restore tests

* Update FURI_and_examples.md
2020-08-26 04:56:33 +03:00
coreglitch
1759787334
Furi (#24)
* furiac start and thread create implementation"

* create and kill task

* rename debug, add header

* remove write.c

* kill itself

* furi exit/switch

* success switch and exit

* WIP furi records

* add furi record interface

* rename furi app control file

* record implementation in progress

* wip furi implementation

* add automatic tests for FURI AC

* differ build tests

* small changes

* FURI record tests description

* change furi statuses

* FURI record test blank

* exit after all application ends

* delay: print then wait

* fix FURI implementatnion building

* pipe record test

* concurrent access

* uncomplete mute-test

* update FURI documentation
2020-08-24 18:31:22 +03:00
aanper
6bac2e6297 furi playground 2020-08-17 21:06:56 +03:00