Skip to content

fix(rf): route KeeLoq sub files to loopEmulate - #2822

Merged
pr3y merged 1 commit into
BruceDevices:devfrom
Valkrycxx:main
Aug 23, 2026
Merged

fix(rf): route KeeLoq sub files to loopEmulate#2822
pr3y merged 1 commit into
BruceDevices:devfrom
Valkrycxx:main

Conversation

@Valkrycxx

@Valkrycxx Valkrycxx commented Aug 23, 2026

Copy link
Copy Markdown

Proposed Changes

Fixes an issue in Sub-GHz transmission (src/modules/rf/rf_send.cpp) where KeeLoq .sub files failed to trigger interactive emulation.

Previously, sendCustomRF() only routed files to loopEmulate() if data.protocol == "RcSwitch". Because KeeLoq files save their protocol as "KeeLoq", they fell through to txSubFile(), which bypassed the interactive UI, counter stepping, and dynamic key generation.

This change updates the condition to also match KeeLoq protocols (case-insensitively via .equalsIgnoreCase("keeloq")), ensuring KeeLoq files are properly routed to loopEmulate() while keeping raw/static files on txSubFile().

Types of Changes

Bugfix

Verification

  1. Save or load a KeeLoq .sub file with Protocol: KeeLoq on LittleFS or SD Card.
  2. Navigate to RF -> Send -> Custom SubGhz / saved file.
  3. Verify that selecting the KeeLoq file enters loopEmulate() (displaying interactive frequency, serial, button, counter, and payload info).
  4. Verify pressing Send transmits the frame and increments the rolling-code counter correctly.
  5. Verify non-emulated / raw .sub files still correctly route to txSubFile().

Testing

No testing needed since this is a straight forward fix.

Linked Issues

N/A

User-Facing Change

Fix KeeLoq .sub file replay not entering interactive emulation mode in RF Send menu.

Further Comments

None

@pr3y
pr3y changed the base branch from main to dev August 23, 2026 00:17
@pr3y
pr3y merged commit baa1676 into BruceDevices:dev Aug 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants