mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-10-14 17:41:58 +00:00
feat(ui-core,ui-lvgl): sound in the Core, L2 speaker via ES8311, Sound settings, melody editor
- genericBuzzer I2S path (BUZZER_I2S): an audio task synthesises the notes with eased edges and keeps the DMA queue fed with silence between sounds; ES8311 setup; amp powered through the board only around sounds - ui-core/SoundControl.h (mode, volume, built-in sounds, melody model), SoundNotifier moved to the Core, chanctl::melody, schema Sound page - L2: notifications, alarm / timer ring, locator sounds, Settings > Sound, melody editor with the playing note lit, per-chat sound, mute icon - noteIndex() on every buzzer backend; scrolling popups past screen height Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -36,6 +36,14 @@ build_flags = ${esp32_base.build_flags}
|
||||
-D PIN_GPS_TX=18 ; L76K TX -> ESP32 RX
|
||||
-D PIN_GPS_RX=17 ; L76K RX <- ESP32 TX
|
||||
-D GPS_BAUD_RATE=9600
|
||||
; ES8311 codec (I2C 0x18) -> class-D amp (power on expander P12) -> speaker.
|
||||
; A frontend opts in with -D PIN_BUZZER=-1 -D BUZZER_I2S (genericBuzzer's
|
||||
; I2S path, src/helpers/ui/buzzer.cpp) and +<helpers/ui/buzzer.cpp>.
|
||||
-D PIN_I2S_MCLK=10
|
||||
-D PIN_I2S_BCK=11
|
||||
-D PIN_I2S_WS=12
|
||||
-D PIN_I2S_DOUT=16
|
||||
-D BUZZER_CODEC_ES8311=0x18
|
||||
-D ENV_SKIP_GPS_DETECT=1 ; GPS is always present, powered via IO expander
|
||||
; disable ALL env sensor I2C probes: this bus carries six onboard chips
|
||||
; (TCA9535 0x21, AW35615 0x22, LP5814 0x2C, ADS1115 0x48, GT911 0x5D,
|
||||
|
||||
@@ -18,6 +18,10 @@ EnvironmentSensorManager sensors(gps);
|
||||
MomentaryButton user_btn(PIN_USER_BTN, 1000, true, true);
|
||||
#endif
|
||||
|
||||
#ifdef BUZZER_I2S
|
||||
void buzzerAmpPower(bool on) { board.setSpeakerAmp(on); }
|
||||
#endif
|
||||
|
||||
bool radio_init() {
|
||||
MESH_DEBUG_PRINTLN("radio_init: rtc + sx1262 init");
|
||||
fallback_clock.begin();
|
||||
|
||||
Reference in New Issue
Block a user