Files
mayhem-firmware/firmware/common
Mo b8ad44c431 Opt-in channel-power squelch for AM audio RX (#3315)
* AM: add opt-in channel-power squelch for AM audio RX

Add an SDR++-style power squelch on the complex channel signal for the
Analog Audio RX app in AM modes (DSB/SSB/CW). The squelch measures the
mean channel power, converts it to dBFS, and mutes the demodulated audio
when the signal is below a user-set threshold. Being carrier-based it
keys on the AM carrier (e.g. airband/ATC) rather than on audio-band
noise, which the existing FM squelch could not do for AM.

A new 'SQ' field (0-99, 0 = off) is added to the AM options view and is
persisted per app via app_settings. Default is 0, so existing AM
behaviour is unchanged unless the user enables it. Threshold maps 1..99
to -80..-20 dBFS.

Touches: message (AMConfigureMessage.squelch_level), baseband_api
(AMConfig::apply), receiver_model (am_squelch_level get/set),
app_settings (persistence), proc_am_audio (DSP), analog_audio_app (UI).

* Refactor audio power calculation to use magnitude squared

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-09-14 20:54:54 +02:00
..
2023-05-19 08:16:05 +12:00
2025-08-27 06:37:57 +00:00
2016-01-31 09:34:24 +01:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2026-06-16 17:54:32 +02:00
2025-11-21 09:30:01 +01:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-08-02 21:59:26 +02:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2026-05-09 12:23:43 +02:00
2023-07-17 11:43:37 -07:00
2024-10-07 15:58:37 +02:00
2023-05-14 23:09:43 +02:00
2023-05-19 08:16:05 +12:00
2016-01-31 09:34:24 +01:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2016-01-31 09:34:24 +01:00
2023-05-19 08:16:05 +12:00
2024-12-20 07:55:39 +01:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2026-06-19 07:48:55 +02:00
2026-08-23 12:20:14 +02:00
2023-05-19 08:16:05 +12:00
2026-07-10 21:37:41 +02:00
2019-02-03 18:25:11 +00:00
2024-10-06 22:14:27 +02:00
2024-10-06 22:14:27 +02:00
2024-10-06 22:14:27 +02:00
2024-10-06 22:14:27 +02:00
2024-10-06 22:14:27 +02:00
2024-10-06 22:14:27 +02:00
2026-06-25 09:08:44 +02:00
2024-11-08 11:46:27 +01:00
2024-10-06 22:14:27 +02:00
2024-10-06 22:14:27 +02:00
2024-11-08 11:46:27 +01:00
2026-08-21 19:56:54 +02:00
2023-05-19 08:16:05 +12:00
2017-02-13 05:35:13 +00:00
2025-06-05 07:08:03 -07:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2026-08-21 19:56:54 +02:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2025-08-27 06:37:57 +00:00
2023-05-19 08:16:05 +12:00
2026-02-24 11:23:41 +01:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-04-24 13:04:59 +02:00
2026-06-11 13:24:42 +02:00
2025-05-23 00:23:35 +08:00
2016-08-23 08:45:33 +02:00
2023-05-19 08:16:05 +12:00
2026-07-10 21:37:41 +02:00
2023-05-19 08:16:05 +12:00
2025-12-14 11:26:21 +01:00
2023-06-11 11:47:13 -07:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2025-11-26 19:13:21 +01:00
2025-11-26 19:13:21 +01:00
2026-07-09 09:10:08 +02:00
2025-12-14 11:26:21 +01:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-05-19 08:16:05 +12:00
2023-06-10 07:50:42 +12:00
2024-10-14 13:07:41 +02:00
2024-10-14 13:07:41 +02:00
2026-06-15 19:28:47 +02:00
2026-02-16 15:50:27 +01:00
2023-05-19 08:16:05 +12:00
2026-02-24 11:23:41 +01:00
2023-06-05 20:09:50 +02:00