Skip to content

Firmware: battery savings on the AMOLED-1.75C - #109

Draft
tozes wants to merge 1 commit into
Adolanium:mainfrom
tozes:firmware/175c-power-saving
Draft

tozes wants to merge 1 commit into
Adolanium:mainfrom
tozes:firmware/175c-power-saving

Conversation

@tozes

@tozes tozes commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

What and why

Three measures for the 1.75C, which runs from a small cell:

  • The speaker amplifier (GPIO 46) is powered only while sound plays (codec.speaker_pa, which CodecSpeaker already supports).
  • ESP-IDF power management lets the CPU drop from 240 to 80 MHz when idle (CONFIG_PM_ENABLE for this board, esp_pm_configure in app_main), without light sleep.
  • AMOLED panels switch their output off (0x28) while the screen sleeps and back on (0x29) before brightness returns. This applies to every AMOLED board and only matters with Screen timeout on.

Part of a series for the AMOLED-1.75C; the physical report is #103.

How you know it works

Tests on this branch (based on 8069101):

  • hermes-gadget build-sim --test: core 121/121.
  • no host tests (port and driver settings); check_config.py confirms CONFIG_PM_ENABLE took effect.
  • pytest without the simulator-window tests (no virtual display here): 269 passed, 29 skipped.
  • pio run builds: esp32s3-touch-amoled-175c, esp32s3-touch-amoled-175. CI builds every board.

Board: Waveshare ESP32-S3-Touch-AMOLED-1.75C, SKU 33691 (the unit in #103), with Hermes v0.21.6+199.g1744a19 on Fedora 44. The checks ran on builds of a working branch that combined this change with the others in this series (30f8bc0); this branch's own image was not installed on its own.

Physical: in daily use on the 1.75C since 2026-10-08, with replies, recording and screen sleep working. The current saved was not measured (no meter).

Documentation and sources

docs/hardware.md (the 1.75C paragraph), docs/using-gadget.md (screen sleep) and a changelog line.

Checklist

  • One change per PR, with a title that says what it does
  • Relevant docs updated, or the reason no changes apply is explained
  • Verification results and remaining limitations recorded
  • Applicable vendor sources, licenses, and contributor credit retained
  • For a new board: the checklist in CONTRIBUTING.md (not a new board)

@tozes
tozes force-pushed the firmware/175c-power-saving branch from 878312c to a781f83 Compare October 10, 2026 07:20
Three measures for the 1.75C, which runs from a small cell:

- The speaker amplifier (GPIO 46) is powered only while sound plays
  (codec.speaker_pa, the mechanism CodecSpeaker already uses elsewhere).
- ESP-IDF power management lets the CPU drop from 240 to 80 MHz when idle
  (CONFIG_PM_ENABLE in the board's sdkconfig.defaults, esp_pm_configure in
  app_main), without light sleep; drivers hold it up while they work.
- AMOLED panels switch their output off (0x28) while the screen sleeps,
  and back on (0x29) before brightness returns. This applies to every
  AMOLED board and only matters with Screen timeout enabled.
@tozes
tozes force-pushed the firmware/175c-power-saving branch from a781f83 to 55f0566 Compare October 10, 2026 07:40

This branch has not been deployed

No deployments
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.

1 participant