Repository navigation
[2.12] fix(v14): blank OLED RAM before display on, mute amp at boot - #7899
Merged
pfeerick merged 1 commit intoOct 12, 2026
Merged
Conversation
- SSD1309: GDDRAM content is random at power up. Clear it before sending Display ON so no garbage is shown until the first refresh. - V14/V14LCD: Audio_EN (PE12) drives the AD8002D SD pin, which is pulled low (amp enabled) until the MCU drives it. Define it as AUDIO_MUTE_GPIO and mute early in boardInit() to avoid a pop when the DAC starts.
helloradiosky
force-pushed
the
fix/v14-oled-boot-and-amp-pop-2.12
branch
from
October 11, 2026 06:15
d8f8bee to
a65a377
Compare
55 of 56 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary of changes:
Two boot-time issues on the HelloRadioSky V14 (SSD1309 OLED) / V14LCD.
1. OLED shows garbage at power on (V14, SSD1309)
SSD1309 GDDRAM content is random after power up.
lcdInitFinish()sends Display ON (0xAF) right afterlcdStart(), so the random RAM is shown at full contrast until the first LCD refresh. This became very visible after the brightness wrap fix (#7633), since boot contrast is no longer low.lcd_driver_spi.cpp: addlcdClearRam()(SSD1309 only) and call it before Display ON.2. Speaker pops ~0.5 s after power on (V14 / V14LCD)
On the V14 board,
Audio_EN(PE12) goes to the AD8002D SD pin (high = shutdown) through a series resistor, with a pull-down to GND. So the amp is enabled until the MCU drives PE12, and the DAC stepping to mid-rail indacInit()produces a pop. PE12 was never defined as a mute pin for V14.taranis/hal.h: defineAUDIO_MUTE_GPIO= PE12 forRADIO_V14/RADIO_V14LCD(same polarity/delays as the RadioMaster PE12 config, noINVERTED_MUTE_PIN).taranis/board.cpp: drive the mute pin high at the very start ofboardInit()so the amp stays off during the rest of the bring-up.Tested on V14 hardware: no more garbage on the OLED at boot, no pop at power on, audio works normally. Built V14 and V14LCD firmware.