From 97eaee54c8f12c0103487c7c5c8df6ba0b538e12 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Thu, 5 Feb 2026 01:48:58 +0300 Subject: [PATCH] upd changelog and docs --- CHANGELOG.md | 2 ++ documentation/SubGHzCounterMode.md | 6 ++++++ lib/subghz/protocols/keeloq.c | 13 +++---------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f0a4cbf0..aed0abbae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ * SubGHz: KeeLoq **display decrypted hop** in `Hop` instead of showing encrypted as is (encrypted non byte reversed hop is still displayed in `Key` field) * SubGHz: **BFT KeeLoq** try decoding with **zero seed** too * SubGHz: KeeLoq **display BFT programming mode TX** (when arrow button is held) +* SubGHz: KeeLoq **add counter mode 7 (sends 7 signals increasing counter with 0x3333 steps)** - may bypass counter on some receivers! * SubGHz: Add signals button editor and real **remote simulation** (full signal transmit with just one click) (PR #956 | by @Dmitry422) * JS: feat: add IR capabilities to the JS engine (PR #957 | by @LuisMayo) * NFC: Handle PPS request in ISO14443-4 layer (by @WillyJL) @@ -28,6 +29,7 @@ * Desktop: Disable winter holidays anims * OFW PR 4333: NFC: Fix sending 32+ byte ISO 15693-3 commands (by @WillyJL) * NFC: Fix LED not blinking at SLIX unlock (closes issue #945) +* SubGHz: Added some RAM * SubGHz: Fix documentation link for HT12A protocol (by @carlogrisetti) * SubGHz: Improve docs on low level code (PR #949 | by @Dmitry422) * SubGHz: Fix Alutech AT4N false positives diff --git a/documentation/SubGHzCounterMode.md b/documentation/SubGHzCounterMode.md index 76eac58e4..47fc8cf1f 100644 --- a/documentation/SubGHzCounterMode.md +++ b/documentation/SubGHzCounterMode.md @@ -127,6 +127,12 @@ CounterMode: 1 **Mode 6:** - Counter freeze - do not increment +**Mode 7:** +- Incremental mode: `+0x3333` 5 times to current counter and return original value back adding +1 - 2 times - 7 signals in pack total +- Might work with Doorhan, seen in some "universal remotes" +- One click of Send button on flipper may bypass receiver counter, wait for full transmission + + --- ### 5. V2 Phoenix (Phox) diff --git a/lib/subghz/protocols/keeloq.c b/lib/subghz/protocols/keeloq.c index d2182a396..f47f53492 100644 --- a/lib/subghz/protocols/keeloq.c +++ b/lib/subghz/protocols/keeloq.c @@ -202,10 +202,6 @@ static bool subghz_protocol_keeloq_gen_data( uint64_t man = 0; uint64_t code_found_reverse; int res = 0; - // No mf name set? -> set to "" - if(instance->manufacture_name == 0x0) { - instance->manufacture_name = ""; - } // programming mode on / off conditions if(strcmp(instance->manufacture_name, "BFT") == 0) { @@ -543,10 +539,8 @@ static size_t subghz_protocol_encoder_keeloq_encode_to_timings( size_t index) { furi_assert(instance); // Generate new key - if(subghz_protocol_keeloq_gen_data(instance, btn, counter_up, false)) { - // OK - } else { - return false; + if(!subghz_protocol_keeloq_gen_data(instance, btn, counter_up, false)) { + return 0; } uint32_t gap_duration = subghz_protocol_keeloq_const.te_short * 40; @@ -1411,8 +1405,7 @@ static uint8_t subghz_protocol_keeloq_get_btn_code(uint8_t last_btn_code) { // Set custom button // Basic set | 0x1 | 0x2 | 0x4 | 0x8 | 0xA or Special Learning Code | - if((custom_btn_id == SUBGHZ_CUSTOM_BTN_OK) && (original_btn_code != 0) && - (keeloq_counter_mode != 7)) { + if((custom_btn_id == SUBGHZ_CUSTOM_BTN_OK) && (original_btn_code != 0)) { // Restore original button code btn = original_btn_code; } else if(custom_btn_id == SUBGHZ_CUSTOM_BTN_UP) {