Dynamic Light Sleep ESP32 (M1NL)

ΠŸΠ°Ρ‚Ρ‡ для Meshtastic firmware ΠΎΡ‚ M1NL, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ динамичСский light sleep Π½Π° ESP32. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ стандартного повСдСния, CPU ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π² low-power Ρ€Π΅ΠΆΠΈΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, Π½ΠΎ Bluetooth ΠΈ WiFi ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

УстройствоБатарСяБтокБ DLSΠŸΡ€ΠΈΡ€ΠΎΡΡ‚
Heltec V31200 мАч~8 Ρ‡~30 Ρ‡~3.75x
Heltec V32000 мАч~20 Ρ‡~48 Ρ‡ (WiFi Π²ΠΊΠ»)~2.4x

ΠŸΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅: 50 mA вмСсто 100 mA Π½Π° Heltec V3.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

  • ЗамСняСт стандартный Arduino framework Π½Π° ΠΊΠ°ΡΡ‚ΠΎΠΌΠ½ΡƒΡŽ сборку с Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΌ Power Management ΠΈΠ· ESP-IDF
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ esp_pm_* API для динамичСского управлСния частотой CPU
  • Event-driven ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ вмСсто polling β€” CPU засыпаСт ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ событий
  • SPI-Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ sleep Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°Π΄ΠΈΠΎ

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ измСнСния Π² ΠΊΠΎΠ΄Π΅: sleep.h/c, PowerFSM.cpp, variant.h (32kHz осцилляторы), GPIO wake-up.

Бтатус ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π² upstream

  • PR #7121 β€” open, 31 ΠΊΠΎΠΌΠΌΠΈΡ‚, с июня 2025
  • Issue #6660 β€” triaged, ΠΏΡ€ΠΈΠ·Π½Π°Π½Π° ΠΌΠ΅ΠΉΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ

Π‘Π»ΠΎΠΊΠ΅Ρ€Ρ‹ merge

  • IRAM overflow Π½Π° ESP32 β€” Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π½Π° Arduino 3.x (breaking change для всСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°)
  • ΠšΠ°ΡΡ‚ΠΎΠΌΠ½Ρ‹ΠΉ Arduino framework β€” Π½ΡƒΠΆΠ½ΠΎ пСрСнСсти ΠΏΠΎΠ΄ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ Meshtastic
  • Assertions Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ boot loops β€” риск для solar/ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… Π½ΠΎΠ΄
  • ΠšΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² Π½Π΅Ρ‚ β€” DLS СдинствСнная рСализация

ΠŸΡ€ΠΎΠ³Π½ΠΎΠ·: Π½Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ v2.8–v2.9.

Π’Π΅Ρ‚ΠΊΠΈ M1NL (ΠΌΠ°Ρ€Ρ‚ 2026)

Помимо dev-Π²Π΅Ρ‚ΠΊΠΈ esp_light_sleep, Ρƒ M1NL появились release-Π²Π΅Ρ‚ΠΊΠΈ:

Π’Π΅Ρ‚ΠΊΠ°ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
esp_light_sleepDev-Π²Π΅Ρ‚ΠΊΠ° (июнь 2025, 21 ΠΊΠΎΠΌΠΌΠΈΡ‚)
esp_light_sleep_releaseRelease с merge develop
esp_light_sleep_release_stableБамая Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ (ΠΌΠ°Ρ€Ρ‚ 2026, 45 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²). Ѐиксы GC1109 PA для V4, PSRAM allocator (NodeDB Π² PSRAM), LiPo OCV array, light sleep ΠΏΡ€ΠΈ MQTT

Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с кастомными модулями

DLS Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² слоС power management ΠΈ Π½Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ с модулями Ρ€Π°Π΄ΠΈΠΎ-уровня. ΠŸΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² минимальноС (platformio.ini).

ΠŸΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… мноТСствСнныС SPI-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ RSSI-сканы), Π½ΡƒΠΆΠ½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° concurrency::LockGuard guard(spiLock) Π½Π° вСсь Ρ†ΠΈΠΊΠ» β€” ΠΈΠ½Π°Ρ‡Π΅ DLS ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‹ΠΏΠΈΡ‚ΡŒ CPU ΠΌΠ΅ΠΆΠ΄Ρƒ SPI-транзакциями. ΠžΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ SPI-Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ автоматичСским spiLock Π²Π½ΡƒΡ‚Ρ€ΠΈ LockingArduinoHal.

Бсылки