Commit Graph

126 Commits

Author SHA1 Message Date
あく
3671c68b79
[FL-1241] Build optimization (#459)
* Makefile: enable space optimization with debug, cleanup double includes, explicitly define cpp runtime options
* Toolchain: add printf support
* Toolchain: explicit standard declaration
2021-05-12 10:59:20 +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
あく
6f58a53dc0
ApiHalNfc: exit sleep mode before activating field and vice versa (#456) 2021-05-10 11:43:58 +03:00
あく
a975fb6dc5
[FL-1146] GD0 self-test 2021-05-08 22:24:05 +03:00
gornekich
fb73d3bd52
[FL-1214] NFC application (#448)
* platform: include only used api-hal files
* api-hal-nfc: introduce nfc hal
* nfc_worker: rework nfc worker
* nfc: move nfc from services to applications, add startup hook
* api-hal-nfc: init nfc worker in api_hal_detect
* nfc: rework nfc application
* nfc: fix app exit
* api-hal-nfc: init nfc worker only once
2021-05-06 22:51:20 +03:00
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
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
あく
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
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
あく
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
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
あく
41c3b95f6d
Backport subghz to f4 targret (#395) 2021-04-01 13:03:55 +03:00
あく
6fb6e8bd3f
Consistent furi_assert usage across project. (#392) 2021-03-31 21:05:00 +03:00
あく
81ace53cc1
Api Hal OS/Power: split insomnia and return to where it belongs. (#393) 2021-03-31 20:55: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
6375f21cf5
[FL-185] Gauge calibration (#391)
* api-hal-power: add design capacity parameter
* bq27220: fix control command and initialization
* bq27220: add cedv configuration
* power: add cedv configuration parameters
* bootloader: add only used drivers sources for build
* main: init DWT before api-hal

Co-authored-by: あく <alleteam@gmail.com>
2021-03-26 14:23:31 +03:00
gornekich
610f4f5d73
[FL-41] api-hal doxygen documentation (#387)
* targets/api-hal: rework documentation in doxygen style
* core/api-hal: rework documentation in doxygen style
* core/furi: rework documentation in doxygen style
* drivers: rework documentation in doxygen style

Co-authored-by: あく <alleteam@gmail.com>
2021-03-24 12:35:33 +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
あく
4ae5bd3d75
[FL-944] Preliminary BLE fix: leave PC4 unconfigured. Cleanup code. (#381)
* GPIO: disable CC1101 GD0 pin configuration. API HAL OS: enable sleep. Cleanup interrupts and gpio code.

* API HAL: disable deep sleep, add light sleep, use it instead.
2021-03-19 17:23:53 +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
its your bedtime
fc12f91a64
[FL-378] Update usb descriptor to display unique flipper name (#373)
* update usb descriptor to display unique flipper name

* added flip_ prefix for usb descriptor, updated manufacturer string

* include name in ApiHalVersionOTP struct, update assets.py

Co-authored-by: あく <alleteam@gmail.com>
2021-03-12 12:18:13 +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
あく
b920248693
API HAL OS: replace CMP based ticks with ARR based one, hard reset lptimer on reconfiguration. (#377) 2021-03-11 09:47:07 +03:00
あく
2f14f6dac5
API HAL I2C: add timeout support. Update I2C API usage by drivers. (#374)
* API HAL I2C: add timeout support. Update I2C API usage by drivers.
* F4: Add missing API HAL Vibro implementation.
2021-03-10 16:23:54 +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
あく
9df4d8e2ed
[FL-635] Enable LSE CSS (#371)
* LSE CSS: explicitly configure and start LSE + LSI1 and enable LSECSS at boot, enable LSECSS interrupt in firmware.
* F4: backport LSE CSS shenanigans.
* Split LSE/HSE CSS handling routines, add TODO for missing notification.
2021-03-08 18:55:51 +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
あく
f4f8ef59fd
[FL-933] API HAL I2C: initialize bus on start (#360)
* API HAL I2C: initialize bus on start
* API HAL I2C: move timing register to resources, explain its value. Update cube project.
2021-03-03 12:21:14 +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
あく
38011e88f3
API HAL: takeover i2c initialization and abstraction. Update I2C drivers to match new api. Back port API HAL to bootloader and enable light support for F5. (#356)
Co-authored-by: coreglitch <mail@s3f.ru>
2021-03-02 14:45:47 +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
coreglitch
1af3463897
Rename net names (#355)
* rename some pins
* back-port main.h to cube project
* regenerate code for gpio renaming
* update target
* fix subghz names
2021-03-01 21:44:46 +03:00
あく
67a8aac71c
Calibrate HSE xtal, adjust on-chip load capacitors (#351) 2021-03-01 14:25:04 +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
あく
a0db2986b5
Adjust I2C pins configuration: disable pullup and set speed to low (#352)
* Adjust I2C pins configuration: disable pullup and set speed to low
* promote i2c owner

Co-authored-by: aanper <mail@s3f.ru>
2021-02-25 12:50:57 +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
あく
d2200a00d1
Update linker script to match upper bound (#345) 2021-02-16 13:57:35 +03:00
あく
6d2c54c909
Disable alignment check (#344) 2021-02-16 13:46:58 +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
あく
928bca4eaa
Api hal timebase: fix lptim lockups caused by flag clear outside of interrupt (#332) 2021-02-10 12:00:38 +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
あく
9642f0d529
API HAL Power: enable smps by default (#324) 2021-02-04 15:20:27 +03:00
あく
8836e34840
[FL-831] Update DIS profile: add firmware generation and software version. Stack overflow fixes. (#322)
* BLE: prevent stack overflow in hrs thread
* BLE: add firmware and software attribute to dis service
* BLE: return tx to 0dBm
* BLE: update tx power configuration comment to match real value
2021-02-02 19:41:19 +03:00