mirror of
https://github.com/safijari/openpuck.git
synced 2026-11-03 22:30:22 +00:00
[PR #266] [CLOSED] feat: implement adaptive RF channel selection with noise measurement … #262
Labels
No labels
pull-request
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
safijari/openpuck#262
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/safijari/openpuck/pull/266
Author: @ripps818
Created: 9/2/2026
Status: ❌ Closed
Base:
main← Head:auto-channel📝 Commits (1)
64a2001feat: implement adaptive RF channel selection with noise measurement and session migration logic📊 Changes
10 files changed (+502 additions, -57 deletions)
View changed files
📝
OpenPuck/config.cpp(+12 -1)📝
OpenPuck/config.h(+2 -0)📝
OpenPuck/radio.cpp(+93 -2)📝
OpenPuck/radio.h(+10 -0)📝
OpenPuck/rf_link.cpp(+74 -26)📝
OpenPuck/rf_link.h(+3 -1)📝
OpenPuck/serial_console.cpp(+66 -11)📝
OpenPuck/webusb_config.cpp(+74 -6)📝
OpenPuck/webusb_config.h(+2 -0)📝
docs/index.html(+166 -10)📄 Description
Addresses 2.4 GHz Wi-Fi interference and signal dropouts discussed in #198.
OpenPuck's default channel 18 (2418 MHz) sits inside Wi-Fi Channel 1. This PR allows dynamically switching to clean frequencies outside or between Wi-Fi bands (e.g., channels 74–80 or guard channels 26/52).
Noise Survey & Auto-Channel: Measures ambient 2.4 GHz noise (rfMeasureChannelNoise) to sweep and adopt the cleanest candidate channel at boot or when degraded by packet loss.
Seamless Live Hopping: Bursts 8 0xE1 frames on the active channel so connected controllers migrate to the new frequency without dropping connection.
Config Persistence: Saves sessCh and autoChannel to cfg.bin.
WebUSB & WebUI: Protocol v22 status blob reporting, on-demand spectrum survey (opcode 0x18 / frame 0xAD), channel selection UI, and live spectrum bar chart.
Console: Adds C (survey spectrum) and C <1..80> (hop and save).
Tested with make check and make build.
(Authored with LLM assistance, verified and tested on hardware.)
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.