Full T-echo card support + Compact UI (#11342)

* T-echo card

* Update NRF52I2SOutput.cpp

* Update NRF52I2SOutput.h

* cleanup

* Update buzz.cpp

* use consistent runtime compact-panel check instead of mixing with compile-time macro

* Update NodeDB.cpp

* Update ExternalNotificationModule.cpp

* switched to Throttle::isWithinTimespanMs

* Update SharedUIDisplay.h

* trunk fix

* last cleanup

* ClockRenderer.cpp for OLED_COMPACT_UI and setup Unit C6L for new UI.

* Fixed regressions in standard OLED and TFT

---------

Co-authored-by: Jason P <applewiz@mac.com>
This commit is contained in:
HarukiToreda
2026-08-04 14:27:35 +00:00
committed by GitHub
co-authored by Jason P
parent d89f3eb8fc
commit 39e7aa6a6c
26 files changed
+1231 -186

No files matched your search

+30
View File
@@ -11,6 +11,10 @@
#include <unordered_map>
#endif
#if defined(HAS_I2S_SPEAKER_NRF52)
#include "platform/nrf52/NRF52I2SOutput.h"
#endif
#if !defined(ARCH_PORTDUINO)
extern "C" void delay(uint32_t dwMs);
#endif
@@ -112,6 +116,32 @@ void playTones(const ToneDuration *tone_durations, int size)
return;
}
#endif
#if defined(HAS_I2S_SPEAKER_NRF52)
// Native I2S speaker path (no ESP AudioThread/RTTTL needed here).
pinMode(SPEAKER_EN, OUTPUT);
digitalWrite(SPEAKER_EN, HIGH);
#if defined(SPEAKER_EN_2)
pinMode(SPEAKER_EN_2, OUTPUT);
digitalWrite(SPEAKER_EN_2, HIGH);
#endif
if (!nrf52I2SOutput.begin(SPEAKER_BCLK, SPEAKER_WS_LRCK, SPEAKER_DATA)) {
digitalWrite(SPEAKER_EN, LOW);
#if defined(SPEAKER_EN_2)
digitalWrite(SPEAKER_EN_2, LOW);
#endif
return;
}
for (int i = 0; i < size; i++) {
const auto &tone_duration = tone_durations[i];
nrf52I2SOutput.playTone(tone_duration.frequency_khz, tone_duration.duration_ms);
}
nrf52I2SOutput.end();
digitalWrite(SPEAKER_EN, LOW);
#if defined(SPEAKER_EN_2)
digitalWrite(SPEAKER_EN_2, LOW);
#endif
return;
#endif
#if defined(PIN_BUZZER)
if (!config.device.buzzer_gpio)
config.device.buzzer_gpio = PIN_BUZZER;