Skip to content

test: 2.11.8 release candidate (backport-2.11.8 + #7415) - #27

Closed
pfeerick wants to merge 18 commits into
2.11from
pfeerick/backport-2.11.8-pr7415
Closed

pfeerick wants to merge 18 commits into
2.11from
pfeerick/backport-2.11.8-pr7415

Conversation

@pfeerick

@pfeerick pfeerick commented Oct 3, 2026

Copy link
Copy Markdown
Owner

Test build only, do not merge.

This is the 2.11.8 release candidate: the backport branch pfeerick/backport-2.11.8 (EdgeTX#7816) plus a squash of EdgeTX#7415 (stm32 flash hang/verify fixes) on top. CI builds what will effectively be the 2.11.8 release, minus the version/timestamp differences, so the firmware can be tested repeatably.

  • Base: 2.11 (same as upstream origin/2.11), so the diff is all 17 commits that would ship in 2.11.8.
  • Last commit: squash of fix(stm32f4): Hangs during flashing firmware EdgeTX/edgetx#7415 at its head 202172f315. Port: dropped the h750 and c14 board.h hunks (those boards aren't on 2.11), and the simulator stub change goes into simpgmspace.cpp.

If EdgeTX#7415 or the backport branch changes, rebuild this branch to match.

🤖 Generated with Claude Code

philmoz and others added 18 commits September 24, 2026 04:37
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
(cherry picked from commit 34afae5)
…te" (EdgeTX#7022)

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
(cherry picked from commit 076d80e)
Co-authored-by: philmoz <phil.a.mitchell@gmail.com>
(cherry picked from commit b0eb233)
…dgeTX#7689)

Co-authored-by: Peter Feerick <5500713+pfeerick@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>

2.11 port: 2.11 already fixed the AudioBufferFifo full/empty ambiguity
its own way in EdgeTX#7472 (a0cd30f, a
volatile bufferFull flag) plus EdgeTX#7685
(53199fe, used() when full). That
flag is written by both the producer (audioPushBuffer) and the consumer
(freeNextFilledBuffer), so an interrupt between the index update and
the flag update can leave it wrong. This port replaces it with
upstream's free-running counters, so each side only writes its own
index, and also brings in the AudioFragmentFifo fix
(all AUDIO_QUEUE_LENGTH slots usable), the static_asserts and the CLI
output.

Conflicts in the AudioBufferFifo class were resolved to the upstream
version, and the bufferFull member and initialiser were removed. The
cli.cpp debug output prints full() instead of bufferFull, as upstream
does. The DAC underrun handling from EdgeTX#7472 is kept unchanged.

filledAtleast() is kept, although upstream removes it as unused. 2.11's
simulator audio callback (targets/simu/simpgmspace.cpp fillAudioBuffer)
still uses it as a pre-buffer threshold. used() keeps returning
AUDIO_BUFFER_COUNT when full, as it did after EdgeTX#7685.

(cherry picked from commit e2968ac)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dgeTX#7814)

Co-authored-by: Peter Feerick <5500713+pfeerick@users.noreply.github.com>

2.11 port: dropped the yaml_datastructs_funcs.cpp hunk (r_cfs_name only
exists on main, from EdgeTX#6095; 2.11 reads switchNames via the generated YAML
string node, so it has no strAppend there) and the modelslist_labels.cpp
test hunk (that test doesn't exist on 2.11). The theme_manager.cpp and
strhelpers.cpp changes apply unchanged.

(cherry picked from commit 69d016f)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dgeTX#2662)

Adds the XLITE_ALT_LAYOUT CMake option (X-Lite and X-Lite S), which swaps
the key and left-trim GPIO assignments.

Squash of PR EdgeTX#2662 (commit 39bf1c4; the PR's two merge-from-main
commits dropped), hand-ported to 2.11: pin definitions converted to the
LL style (GPIOx / LL_GPIO_PIN_n), and TRIMS_VIRTUAL_RV/RH added to the
alternative trim block so the virtual right-stick trims are still
generated, as in the stock X-Lite layout.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…#7809)

2.11 port: dropped the radio_mic_recorder.cpp hunk. That file was added
on main by the MEMS microphone support (EdgeTX#7328), and the flag line in it
by EdgeTX#7706. Neither is on 2.11:
  EdgeTX#7328 a7d730f
  EdgeTX#7706 ccc8387
As on main, nothing on 2.11 reads the flag (unused since EdgeTX#3441), so the
other hunks apply unchanged and there's no behaviour change.

(cherry picked from commit f364c6e)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Squash of the 11 commits on EdgeTX#7415 (still open; head
202172f), for release testing:

* fix(stm32): disable interrupts during flash erase/program to prevent hangs on F4
* fix(stm32): replace broken HAL timeouts with DWT cycle counter during flash erase/program
* fix(stm32f4): clear stale FLASH error flags before erase/program
* fix(boot): report firmware write failures instead of showing success
* fix(senduwing-h750): update flashWrite() declaration to return bool
* fix(bootloader): treat SD read errors as a flash failure
* fix(stm32f4): disable data cache during flash erase/program (ES0206 2.2.15)
* fix(stm32): verify each page after writing it in flashWrite()
* chore(stm32): shorten flash operation timeout to twice the datasheet maximum
* fix(stm32h7): keep interrupts enabled during HAL flash erase/program
* chore(stm32f4): correct reason given for clearing stale FLASH error flags

Port notes for 2.11: the h750 board.h and c14/board.h hunks are dropped
(those boards don't exist on 2.11), and the simulator stub change is
applied to simpgmspace.cpp instead of simulib.cpp.

Co-authored-by: 3djc <3djc@gh.com>
Co-authored-by: Peter Feerick <5500713+pfeerick@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sh error screen

On 2.11 the colorlcd bootloader's lcd is a BitmapBuffer*, not an object
as on main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants