PIO: Fix ESP32 sub-variant inheritance by @vidplace7 in https://github.com/meshtastic/firmware/pull/8983
Prep work for better Store and Forward by @jp-bennett in https://github.com/meshtastic/firmware/pull/8999
Additional Emoji by @Ixitxachitl in https://github.com/meshtastic/firmware/pull/9020
Add Russell, an STM32WL balloon-optimized node by @ndoo in https://github.com/meshtastic/firmware/pull/9079
Add menus for Smart Position, Broadcast Interval and Position Interval by @Xaositek in https://github.com/meshtastic/firmware/pull/9080
Improve sanitizeString function for Node Names by @Xaositek in https://github.com/meshtastic/firmware/pull/9086
Add Temporary Mute to Home frame and unbury Notification Options by @Xaositek in https://github.com/meshtastic/firmware/pull/9097
Add a welcome message for new contributors by @fifieldt in https://github.com/meshtastic/firmware/pull/9119
Calculate hops correctly even when hop_start==0 by @esev in https://github.com/meshtastic/firmware/pull/9120
Add STORE_FORWARD_PLUSPLUS_APP to core portnum checks by @jp-bennett in https://github.com/meshtastic/firmware/pull/9127
Faster rotary encoder events by @brad112358 in https://github.com/meshtastic/firmware/pull/9146
Add support for LilyGo T-Echo Plus by @thebentern in https://github.com/meshtastic/firmware/pull/9149
Refactored some of the system menus to the new DRY method (Redux) by @Xaositek in https://github.com/meshtastic/firmware/pull/9152
Add a .clang-format file by @Jorropo in https://github.com/meshtastic/firmware/pull/9154
Add custom coding rate configuration for LoRa by @jp-bennett in https://github.com/meshtastic/firmware/pull/9155
Add list of text message packet IDs, and check for dupes by @jp-bennett in https://github.com/meshtastic/firmware/pull/9180
Add option to Mute/Unmute Channel to BaseUI by @Xaositek in https://github.com/meshtastic/firmware/pull/9194
Mute: Nodes by @ford-jones in https://github.com/meshtastic/firmware/pull/9209
Screenless Devices want to mute too! by @Xaositek in https://github.com/meshtastic/firmware/pull/9210
Migrate all of the Meshtastic API attributes into the ini as a source of truth by @thebentern in https://github.com/meshtastic/firmware/pull/9214
Pioarduino preparation by @MartinEmrich in https://github.com/meshtastic/firmware/pull/9223
Meshtastic unified OTA by @thebentern in https://github.com/meshtastic/firmware/pull/9231
Fix TFT_MESH settings across setting and recalling by @Xaositek in https://github.com/meshtastic/firmware/pull/9234
Add release notes generation and publishing workflow by @thebentern in https://github.com/meshtastic/firmware/pull/9255
Unified ESP32 OTA firmware by @vidplace7 in https://github.com/meshtastic/firmware/pull/9258
Add support for uMesh Modules by @linser233 in https://github.com/meshtastic/firmware/pull/9259
Extra pins by @jp-bennett in https://github.com/meshtastic/firmware/pull/9260
BaseUI: Autosave Messages by @HarukiToreda in https://github.com/meshtastic/firmware/pull/9269
Node Actions Menu Overhaul by @Xaositek in https://github.com/meshtastic/firmware/pull/9287
Added I2C scanner a check for the QMC6310N. by @lewisxhe in https://github.com/meshtastic/firmware/pull/9305
Allow ICM20948 IMU to sleep by @HarukiToreda in https://github.com/meshtastic/firmware/pull/9324
Meshtastic OTA (moar) by @thebentern in https://github.com/meshtastic/firmware/pull/9327
Add sqlite depdendency (Cherry-picks from sfpp) by @fifieldt in https://github.com/meshtastic/firmware/pull/9328
Add interrupt for external charge detection by @jp-bennett in https://github.com/meshtastic/firmware/pull/9332
Improve BaseUI Preset Change Flow by @Xaositek in https://github.com/meshtastic/firmware/pull/9343
Implement graduated scaling for NodeInfo send timeout based on active mesh size by @thebentern in https://github.com/meshtastic/firmware/pull/9364
๐ Bug fixes and maintenance
RTC: PCF85063 support, port to SensorLib 0.3.1 by @WillyJL in https://github.com/meshtastic/firmware/pull/8061
Added tcxo definition to mesh-tab by @valzzu in https://github.com/meshtastic/firmware/pull/8604
Preliminary Thinknode M4 Support by @caveman99 in https://github.com/meshtastic/firmware/pull/8754
Actions: Compact manifest job output summary by @vidplace7 in https://github.com/meshtastic/firmware/pull/8957
PlatformIO: Restructure networking_base for re-use by @vidplace7 in https://github.com/meshtastic/firmware/pull/8964
Add LilyGO T-Beam 1W support by @santosvivos in https://github.com/meshtastic/firmware/pull/8967
PIO: Remove useless inheritence (references extends env) by @vidplace7 in https://github.com/meshtastic/firmware/pull/8987
Macro guard heap_caps_malloc_extmem_enable from SENSECAP_INDICATOR by @Xaositek in https://github.com/meshtastic/firmware/pull/9007
Add Rak 6421 autoconf by @jp-bennett in https://github.com/meshtastic/firmware/pull/9010
Implement basic github action comment reporting target diffs by @Jorropo in https://github.com/meshtastic/firmware/pull/9022
In protobuf update, allow develop branch to auto-update by @jp-bennett in https://github.com/meshtastic/firmware/pull/9027
๐ง Fix LNA/PA power control for Heltec v4, wireless tracker v2 by @weebl2000 in https://github.com/meshtastic/firmware/pull/9029
Shame do not complain about missing targets by @Jorropo in https://github.com/meshtastic/firmware/pull/9032
Action: skip trying to comment binary size change results if it is not a PR by @Jorropo in https://github.com/meshtastic/firmware/pull/9033
Fix gps pin defs for various NRF variants. by @NomDeTom in https://github.com/meshtastic/firmware/pull/9034
Fix Rotary enc long press by @brad112358 in https://github.com/meshtastic/firmware/pull/9039
Add needed support bits for the Meshstick by @jp-bennett in https://github.com/meshtastic/firmware/pull/9042
In statusLEDModule, also detect isCharging by @jp-bennett in https://github.com/meshtastic/firmware/pull/9050
PlatformIO: Re-Org ESP32 family shared props by @vidplace7 in https://github.com/meshtastic/firmware/pull/9060
Cleanup: Remove icarus custom framework-arduinoespressif32 by @vidplace7 in https://github.com/meshtastic/firmware/pull/9064
M6 shutdown and LEDs work by @jp-bennett in https://github.com/meshtastic/firmware/pull/9065
Implement HAS_PHYSICAL_KEYBOARD for devices with physical keyboards by @Xaositek in https://github.com/meshtastic/firmware/pull/9071
KZ_863 is not wide lora by @fifieldt in https://github.com/meshtastic/firmware/pull/9075
In autoconf, don't probe Wire unless i2c device is set by @jp-bennett in https://github.com/meshtastic/firmware/pull/9081
Correctly set type for event_mode max() position threshold by @vidplace7 in https://github.com/meshtastic/firmware/pull/9083
Fix PR#8061 SensorLib nRF ThinkNode M-series by @vidplace7 in https://github.com/meshtastic/firmware/pull/9084
Pioarduino .gitignore by @vidplace7 in https://github.com/meshtastic/firmware/pull/9085
Pass GH_TOKEN to shame's gh run download step by @Jorropo in https://github.com/meshtastic/firmware/pull/9087
GPS Menu Validation Fix - Missed in Reviews by @Xaositek in https://github.com/meshtastic/firmware/pull/9093
Noop "download" portion of #shame by @vidplace7 in https://github.com/meshtastic/firmware/pull/9114
Syntax fix for first timer welcome bot. by @fifieldt in https://github.com/meshtastic/firmware/pull/9144
Fix link formatting in welcome message by @fifieldt in https://github.com/meshtastic/firmware/pull/9163
Fixed shouldFilterReceived function to check prev relay according to the function definition by @strngr in https://github.com/meshtastic/firmware/pull/9168
Add EByte EoRa-Hub by @vidplace7 in https://github.com/meshtastic/firmware/pull/9169
Fix zero in sp02 and Heart Rate on screen by @sergeygalkin in https://github.com/meshtastic/firmware/pull/9174
RadioInterface::getRetransmissionMsec now handles encrypted packets cโฆ by @rbreesems in https://github.com/meshtastic/firmware/pull/9184
Added support for the new SSD1306 control panel. by @lewisxhe in https://github.com/meshtastic/firmware/pull/9192
Fix Function + M in code by @Xaositek in https://github.com/meshtastic/firmware/pull/9200
Fix TSL2591 detection by adding command bit to register read by @heathdutton in https://github.com/meshtastic/firmware/pull/9215
Fix screen not sleeping due to power status updates by @heathdutton in https://github.com/meshtastic/firmware/pull/9216
Fix rotary regression and tighten up playBeep by @thebentern in https://github.com/meshtastic/firmware/pull/9221
Use correct name for ALT_BUTTON_PIN by @jp-bennett in https://github.com/meshtastic/firmware/pull/9225
CH341 MAC address derivation from serial and product string by @jp-bennett in https://github.com/meshtastic/firmware/pull/9226
T-Watch S3 Plus GPS support by @mverch67 in https://github.com/meshtastic/firmware/pull/9235
Update diy_promicro platformio.ini by @mrekin in https://github.com/meshtastic/firmware/pull/9245
Recover long_name, short_name from our own NodeDB entry if device.proto is unreadable by @compumike in https://github.com/meshtastic/firmware/pull/9248
Remove a strlcpy reference by @jp-bennett in https://github.com/meshtastic/firmware/pull/9249
Add unified OTA to manifest by @thebentern in https://github.com/meshtastic/firmware/pull/9261
Tiny - include mt-ota in firmware zips by @vidplace7 in https://github.com/meshtastic/firmware/pull/9275
EXCLUDE_AUDIO on (original) ESP32 by @vidplace7 in https://github.com/meshtastic/firmware/pull/9276
Partition name in manifest script by @thebentern in https://github.com/meshtastic/firmware/pull/9294
SafeFile: use atomic rename-with-overwrite, rather than non-atomic delete-then-rename by @compumike in https://github.com/meshtastic/firmware/pull/9296
Fix OTA partition name matching by @thebentern in https://github.com/meshtastic/firmware/pull/9302
T-Deck Pro: speed up eink force refresh by @vicliu624 in https://github.com/meshtastic/firmware/pull/9303
Small fix in register size for SHT4X by @oscgonfer in https://github.com/meshtastic/firmware/pull/9309
Fix GPS for T-Watch S3 plus by @mverch67 in https://github.com/meshtastic/firmware/pull/9312
Adds Custom battery curve for thinknode m6 by @jp-bennett in https://github.com/meshtastic/firmware/pull/9313
/api/v1/fromradio OPTIONS handler: fix sending proper HTTP response. by @cpatulea in https://github.com/meshtastic/firmware/pull/9322
Heltec V4 TFT metadata by @thebentern in https://github.com/meshtastic/firmware/pull/9325
Filter BLE updates that don't change pairing status by @jp-bennett in https://github.com/meshtastic/firmware/pull/9333
Don't Mute DMs just because we mute a channel by @Xaositek in https://github.com/meshtastic/firmware/pull/9348
โ๏ธ Dependencies
Rp2xx0: Update to arduino-pico 5.4.4 by @vidplace7 in https://github.com/meshtastic/firmware/pull/8979
Replace PIO fuzzy version matches (reproducible builds) by @vidplace7 in https://github.com/meshtastic/firmware/pull/8984
PIO: Renovate all the things by @vidplace7 in https://github.com/meshtastic/firmware/pull/8994
Update lewisxhe/SensorLib to 0.3.3 by @vidplace7 in https://github.com/meshtastic/firmware/pull/9061
Update meshtastic-esp8266-oled-ssd1306 digest to b34c681 by @app/renovate in https://github.com/meshtastic/firmware/pull/9062
Update meshtastic/device-ui digest to 272defc by @app/renovate in https://github.com/meshtastic/firmware/pull/9166
Update dorny/test-reporter action to v2.5.0 by @app/renovate in https://github.com/meshtastic/firmware/pull/9167
Update INA226 to v0.6.6 by @app/renovate in https://github.com/meshtastic/firmware/pull/9247
Update meshtastic/device-ui digest to 12f8cdd by @app/renovate in https://github.com/meshtastic/firmware/pull/9263
Update meshtastic-gxepd2 digest to a05c11c by @app/renovate in https://github.com/meshtastic/firmware/pull/9264
Update ArduinoJson to v6.21.5 by @app/renovate in https://github.com/meshtastic/firmware/pull/9265
Update GxEPD2 to v1.6.5 by @app/renovate in https://github.com/meshtastic/firmware/pull/9266
Update ESP8266SAM to v1.1.0 by @app/renovate in https://github.com/meshtastic/firmware/pull/9271
Update pschatzmann_arduino-audio-driver to v0.2.0 by @app/renovate in https://github.com/meshtastic/firmware/pull/9272
Renovate: Ignore lovyangfx for elecrow-panel by @vidplace7 in https://github.com/meshtastic/firmware/pull/9279
Update RadioLib to v7.5.0 by @vidplace7 in https://github.com/meshtastic/firmware/pull/9281
Update meshtastic/device-ui digest to 5a870c6 by @app/renovate in https://github.com/meshtastic/firmware/pull/9301
Update Adafruit BMP280 to v3 by @app/renovate in https://github.com/meshtastic/firmware/pull/9307
Update meshtastic/device-ui digest to 3480b73 by @app/renovate in https://github.com/meshtastic/firmware/pull/9353
Full Changelog: https://github.com/meshtastic/firmware/compare/v2.7.17.9058cce...v2.7.18.fb3bf78