From f14874b0e079c216f6b59c5708df7de1e76f8f23 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Tue, 30 Aug 2022 23:14:43 +0300 Subject: [PATCH] update docs and fix led in subghz decode scene --- CHANGELOG.md | 26 +++++++++++-------- ReadMe.md | 21 +++++++-------- .../subghz/scenes/subghz_scene_decode_raw.c | 1 + .../scenes/subghz_scene_receiver_info.c | 25 +++++++++++------- applications/subghz/subghz.c | 2 ++ applications/subghz/subghz_i.h | 2 ++ documentation/AppManifests.md | 16 +++++++++++- documentation/SubGHzRemotePlugin.md | 16 ++++-------- 8 files changed, 64 insertions(+), 45 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 822e6466e..f25923c15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,17 +1,21 @@ ### New changes -* UniRF (Sub-GHz Remote) - All protocols support, long button press support (by @darmiel & @xMasterX) (PR #47) -* Universal remote for Fans, new buttons for universal AC remote, icons by @Svaarich -* Bugfix for universal remotes (by @darmiel) (PR #50) -* Frequency Analyzer feedback modes (by @darmiel) (PR #49) -* RFID EM4100 Fuzzer plugin (by @Ganapati & some fixes by @xMasterX) (PR #48) +* NRF24 sniffer - tweak sniff parameters for more speed and reliability (by @mothball187) (PR #51) +* Fixed text in LF RFID -> Extra Actions * Updated universal remote assets (by @Amec0e) -* New UniRF Animated icon & New Spectrum Analyzer icon (by @Svaarich) -* Fixed Keeloq seed display -* OFW: nfc: Change furi_assert to furi_crash for default switch cases -* OFW: SubGhz: fix CAME, Chamberlain protocol -* OFW: LFRFID RC fixes +* OFW PR: SubGHz decode raw gui (by @qistoph) (PR 1667) / xMasterX: Replaced custom image with default one & Fixed Led don't stop blink after pressing Send from decoder scene +* WAV Player plugin excluded from releases to save space, you can enable it in `applications\meta` for your builds +* OFW PR: SubGhz: add protocol Intertechno_V3 - OFW PR 1622 +* OFW PR: SubGhz: add protocol Prastel - OFW PR 1674 +* OFW PR: Fix displaying LFRFID protocol names - OFW PR 1682 / xMasterX: Fixed display for N/A manufacturer +* OFW: LF RFID - PAC/Stanley, Paradox, Jablotron, Viking, Pyramid protocols support +* OFW: Picopass write (PR 1658) +* OFW: SubGhz: fix CLI "subghz tx" +* OFW: IR: Fix crash after cancelling Learn New Remote +* OFW: SubGhz: output debug data to external pin +* OFW: Speedup SD card & enlarge your RAM +* OFW: Other small changes -**Note: Prefer installing using web updater or by self update package, all needed assets will be installed** +**Note: To avoid issues prefer installing using web updater or by self update package, all needed assets will be installed** Self-update package (update from microSD) - `flipper-z-f7-update-(version).zip` or `.tgz` for iOS mobile app diff --git a/ReadMe.md b/ReadMe.md index b9cc9e257..0575144a5 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -4,10 +4,10 @@ -Welcome to Flipper Zero's Custom Firmware repo! +### Welcome to Flipper Zero Unleashed Firmware repo! Our goal is to make any features possible in this device without any limitations! -Please help us implement emulation for all subghz dynamic (rolling code) protocols and static code brute-force app! +Please help us implement emulation for all subghz dynamic (rolling code) protocols and static code brute-force plugin!
@@ -31,21 +31,20 @@ Our Discord Community: * Extra SubGHz frequencies + extra Mifare Classic keys * Picopass/iClass plugin included in releases * Recompiled IR TV Universal Remote for ALL buttons -* Universal A/C and Audio(soundbars, etc.) remote -* Universal remote for Projectors +* Universal remote for Projectors, Fans, A/Cs and Audio(soundbars, etc.) * BadUSB keyboard layouts * Customizable Flipper name * Other small fixes and changes throughout See changelog in releases for latest updates! -### Current modified and new SubGhz protocols list: +### Current modified and new SubGHz protocols list: - HCS101 - An-Motors - CAME Atomo -- FAAC SLH (Spa) [if cloning existing remote - external seed calculation required] -- BFT Mitto [if cloning existing remote - external seed calculation required] -- Keeloq (+ proper manufacturer codes selection) [Not ALL systems supported yet!] +- FAAC SLH (Spa) [External seed calculation required] +- BFT Mitto [External seed calculation required] +- Keeloq [Not ALL systems supported yet!] - Nice Flor S - Security+ v1 & v2 - Star Line @@ -56,20 +55,18 @@ See changelog in releases for latest updates! * DOGE: `D6R6gYgBn5LwTNmPyvAQR6bZ9EtGgFCpvv` * LTC: `ltc1q3ex4ejkl0xpx3znwrmth4lyuadr5qgv8tmq8z9` -**Big thanks to all sponsors!** - ### Community apps included: - ESP8266 Deauther plugin [(by SequoiaSan)](https://github.com/SequoiaSan/FlipperZero-Wifi-ESP8266-Deauther-Module) - WiFi Scanner plugin [(by SequoiaSan)](https://github.com/SequoiaSan/FlipperZero-WiFi-Scanner_Module) - MultiConverter plugin [(by theisolinearchip)](https://github.com/theisolinearchip/flipperzero_stuff) -- WAV player plugin (fixed) [(OFW: DrZlo13)](https://github.com/flipperdevices/flipperzero-firmware/tree/zlo/wav-player) +- `Excluded from releases` - WAV player plugin (fixed) [(OFW: DrZlo13)](https://github.com/flipperdevices/flipperzero-firmware/tree/zlo/wav-player) - UPC-A Barcode generator plugin [(by McAzzaMan)](https://github.com/McAzzaMan/flipperzero-firmware/tree/UPC-A_Barcode_Generator/applications/barcode_generator) - GPIO: Sentry Safe plugin [(by H4ckd4ddy)](https://github.com/H4ckd4ddy/flipperzero-sentry-safe-plugin) - ESP32: WiFi Marauder companion plugin [(by 0xchocolate)](https://github.com/0xchocolate/flipperzero-firmware-with-wifi-marauder-companion) - NRF24: Sniffer & MouseJacker (with changes) [(by mothball187)](https://github.com/mothball187/flipperzero-nrf24/tree/main/mousejacker) - Simple Clock (fixed) !! New version WIP, wait for updates !! [(Original by CompaqDisc)](https://gist.github.com/CompaqDisc/4e329c501bd03c1e801849b81f48ea61) -- UniversalRF Remix (with changes)(only RAW subghz files) [(by ESurge)(Original UniversalRF by jimilinuxguy)](https://github.com/ESurge/flipperzero-firmware-unirfremix) +- UniversalRF Remix / Sub-GHz Remote [(by ESurge)](https://github.com/ESurge/flipperzero-firmware-unirfremix)[(updated and all protocol support added by darmiel & xMasterX)](https://github.com/darmiel/flipper-playlist/tree/feat/unirf-protocols) - Tetris (with fixes) [(by jeffplang)](https://github.com/jeffplang/flipperzero-firmware/tree/tetris_game/applications/tetris_game) - Spectrum Analyzer (with changes) [(by jolcese)](https://github.com/jolcese/flipperzero-firmware/tree/spectrum/applications/spectrum_analyzer) - [Ultra Narrow mode & scan channels non-consecutively](https://github.com/theY4Kman/flipperzero-firmware/commits?author=theY4Kman) - Arkanoid (with fixes) [(by gotnull)](https://github.com/gotnull/flipperzero-firmware-wPlugins) diff --git a/applications/subghz/scenes/subghz_scene_decode_raw.c b/applications/subghz/scenes/subghz_scene_decode_raw.c index ae7719437..4f532b0fd 100644 --- a/applications/subghz/scenes/subghz_scene_decode_raw.c +++ b/applications/subghz/scenes/subghz_scene_decode_raw.c @@ -225,6 +225,7 @@ bool subghz_scene_decode_raw_on_event(void* context, SceneManagerEvent event) { subghz->txrx->idx_menu_chosen = subghz_view_receiver_get_idx_menu(subghz->subghz_receiver); subghz->state_notifications = SubGhzNotificationStateIDLE; + subghz->in_decoder_scene = true; scene_manager_next_scene(subghz->scene_manager, SubGhzSceneReceiverInfo); consumed = true; break; diff --git a/applications/subghz/scenes/subghz_scene_receiver_info.c b/applications/subghz/scenes/subghz_scene_receiver_info.c index c25d6ef8b..47b4110e2 100644 --- a/applications/subghz/scenes/subghz_scene_receiver_info.c +++ b/applications/subghz/scenes/subghz_scene_receiver_info.c @@ -152,17 +152,19 @@ bool subghz_scene_receiver_info_on_event(void* context, SceneManagerEvent event) if(subghz->txrx->txrx_state == SubGhzTxRxStateTx) { subghz_tx_stop(subghz); } - if(subghz->txrx->txrx_state == SubGhzTxRxStateIDLE) { - subghz_begin( - subghz, - subghz_setting_get_preset_data_by_name( - subghz->setting, string_get_cstr(subghz->txrx->preset->name))); - subghz_rx(subghz, subghz->txrx->preset->frequency); + if(!subghz->in_decoder_scene) { + if(subghz->txrx->txrx_state == SubGhzTxRxStateIDLE) { + subghz_begin( + subghz, + subghz_setting_get_preset_data_by_name( + subghz->setting, string_get_cstr(subghz->txrx->preset->name))); + subghz_rx(subghz, subghz->txrx->preset->frequency); + } + if(subghz->txrx->hopper_state == SubGhzHopperStatePause) { + subghz->txrx->hopper_state = SubGhzHopperStateRunnig; + } + subghz->state_notifications = SubGhzNotificationStateRx; } - if(subghz->txrx->hopper_state == SubGhzHopperStatePause) { - subghz->txrx->hopper_state = SubGhzHopperStateRunnig; - } - subghz->state_notifications = SubGhzNotificationStateRx; return true; } else if(event.event == SubGhzCustomEventSceneReceiverInfoSave) { //CC1101 Stop RX -> Save @@ -209,6 +211,9 @@ bool subghz_scene_receiver_info_on_event(void* context, SceneManagerEvent event) void subghz_scene_receiver_info_on_exit(void* context) { SubGhz* subghz = context; + if(subghz->in_decoder_scene) { + subghz->in_decoder_scene = false; + } widget_reset(subghz->widget); keeloq_reset_mfname(); keeloq_reset_kl_type(); diff --git a/applications/subghz/subghz.c b/applications/subghz/subghz.c index fab68fb4d..97c8232e6 100644 --- a/applications/subghz/subghz.c +++ b/applications/subghz/subghz.c @@ -68,6 +68,8 @@ SubGhz* subghz_alloc() { // GUI subghz->gui = furi_record_open(RECORD_GUI); + subghz->in_decoder_scene = false; + // View Dispatcher subghz->view_dispatcher = view_dispatcher_alloc(); view_dispatcher_enable_queue(subghz->view_dispatcher); diff --git a/applications/subghz/subghz_i.h b/applications/subghz/subghz_i.h index 894c7984b..03e049900 100644 --- a/applications/subghz/subghz_i.h +++ b/applications/subghz/subghz_i.h @@ -102,6 +102,8 @@ struct SubGhz { SubGhzSetting* setting; SubGhzLock lock; + bool in_decoder_scene; + void* rpc_ctx; }; diff --git a/documentation/AppManifests.md b/documentation/AppManifests.md index 7b1177890..d17c11c0e 100644 --- a/documentation/AppManifests.md +++ b/documentation/AppManifests.md @@ -1,3 +1,17 @@ # Flipper Application Manifests (.fam) -TBD \ No newline at end of file +``` +App( + appid="example_app", => App id, used in fbt app lists only, like applications\meta + name="My Plugin", => App name in menu + apptype=FlipperAppType.PLUGIN, => App type APP / PLUGIN / GAME (or service) + entry_point="my_example_app", => App entry point / main function + cdefines=["APP_MYEXAMPLE"], => C style define that will be used in generated file + requires=[ + "gui", + "dialogs", + ], => Requirements (other app id's that required for this app) + stack_size=2 * 1024, => Memory stack size + order=60, => App order in menu +) +``` \ No newline at end of file diff --git a/documentation/SubGHzRemotePlugin.md b/documentation/SubGHzRemotePlugin.md index 82885be56..615c8ba09 100644 --- a/documentation/SubGHzRemotePlugin.md +++ b/documentation/SubGHzRemotePlugin.md @@ -1,4 +1,4 @@ -# UniRF Remix +# UniRF Remix / Sub-GHz Remote ### The UniRF Tool *requires* the creation of custom user map with `.txt` extension in the `unirf` folder on the sdcard. @@ -6,19 +6,16 @@ ## You can add as many `.txt` map files as you want, file name doesn't matter! -### App currenty works only with RAW subghz files - ## Incorrect or unconfigured file error If the `.txt` file has not been properly configured, the following error will be thrown when trying to run the UniRF Remix app: ``` -Invalid map file! +Config is incorrect. -Please reconfigure -your map file. +Please configure map -Hold Back to Exit +Press Back to Exit ``` @@ -60,10 +57,7 @@ OKLABEL: Garage CLOSE ## Notes * ##### App Usage - Press a button to send the assigned capture file. - - Press Back button to set how many repeats the app should send. Capped at 5 repeats. - - Hold Back button to exit app. - - Only RAW SubGhz captures are supported currently. - - No skip function. + - Press Back button to exit app. * ##### Universal RF Map - File path should not have any spaces or special characters (- and _ excluded).