Skip to content

Develop to master#8689

Merged
thebentern merged 56 commits into
masterfrom
develop-to-master
Nov 20, 2025
Merged

Develop to master#8689
thebentern merged 56 commits into
masterfrom
develop-to-master

Conversation

@thebentern

Copy link
Copy Markdown
Contributor

No description provided.

thebentern and others added 30 commits October 24, 2025 21:06
Node 24 is now the common version amoungst all of our actions.
This is a non-breaking change that increases the internal representation
of node counts from uint8_t (max 255) to uint16_t (max 65535) to support
larger mesh networks, particularly on ESP32-S3 devices with PSRAM.

Changes:
- NodeStatus: numOnline, numTotal, lastNumTotal (uint8_t -> uint16_t)
- ProtobufModule: numOnlineNodes (uint8_t -> uint16_t)
- MapApplet: loop counters changed to size_t for consistency with getNumMeshNodes()
- NodeStatus: Fixed log format to use %u for unsigned integers

Note: Default class methods keep uint32_t for numOnlineNodes parameter
to match the public API and allow flexibility, even though internal node
counts use uint16_t (max 65535 nodes).

This change does NOT affect protobuf definitions, maintaining wire
compatibility with existing clients and devices.
Updated the dimensions of various emotes in emotes.h from 30x30 or 25x25 to 16x16 pixels for consistency and optimization. Added new emotes including heart_smile, Heart_eyes, and others, all with the same 16x16 size. This change improves memory usage and aligns with the design specifications for smaller emotes.
Wio-E5 currently has LED appearing to be steadily on, due to incorrect LED_STATE_ON (it is actually briefly flashing off, but visually it is hard to perceive).

Wio-E5 has LED between GPIO PB5 and VCC, so LED_STATE_ON should be 0 for LED to blink correctly. With this commit, it is now flashing correctly.

Refer to schematics:

* [Wio-E5 Development Kit](https://files.seeedstudio.com/products/113990934/LoRa-E5%20Dev%20Board%20v1.0.pdf)
* [Wio-E5 mini](https://files.seeedstudio.com/products/113990939/LoRa-E5%20mini%20v1.0.pdf)

Signed-off-by: Andrew Yong <me@ndoo.sg>
Co-authored-by: HarukiToreda <116696711+HarukiToreda@users.noreply.github.com>
* regenerate protobuf with bh1750 TelemetrySensorType

* Added wollewald/BH1750_WE@^1.1.10 dependecy

* Added support for BH1750 during i2C detection

* Create new BH1750Sensor and added in EnvironmentTelemetry

* clean code

* Attempt to fix protobuf include

---------

Co-authored-by: Tom Fifield <tom@tomfifield.net>
* Update Default.h

* Update NodeDB.cpp

* Update WiFiAPClient.cpp

* Update userPrefs.jsonc

* set ipv6 to off by default

* Trunk fix

---------

Co-authored-by: Tom Fifield <tom@tomfifield.net>
* Update device-install.sh

* Update device-install.sh
* Rename screen options to display options and add units chooser

* Add InitialSelected to DisplayUnits_menu
Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com>
* nrf52: add watchdog

Main thread only for now.

* bump framework-arduinoadafruitnrf52 to pick up new wdt support

* clang-format the new parts of main-nrf52.cpp

---------

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* fix strlcpy compile error in Ubuntu 22.04 (#8520)

* fix strlcpy error in Ubuntu 20.04

* add to native after tests

* Add support for RAK_WISMESH_TAP_V2 and RAK3401 hardware models (#8537)

* Update RadioLib to v7.4.0

---------

Co-authored-by: Manuel <71137295+mverch67@users.noreply.github.com>
Co-authored-by: Daniel.Cao <144674500+DanielCao0@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Before this, all messages received when enabling S&F server would return
Hops away: -1
…st_heard unless CLIENT_BASE (#8495)

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Conditionally delete favourited nodes on reset

* trunk fmt

* Fix equality check, use existing macro for role validation

* Extend favourite persistence setting to devices of all roles

* Refactor: Decoupled role/config check and set role defaults appropriately

* Use American-English spelling

* Use existing reference

* Convert reset to bool, regen protos

* Add optional arg to nodedb_reset in favor of additional device setting

* Use correct proto commit ID

* Regen protos

* Log preservation status

* Pull latest from master
caveman99 and others added 17 commits November 10, 2025 22:31
Change RadioLib to commit zip til 7.4.1+ is released
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com>
* full thing. works

* works

* minimal changes

* roll back previous changes, move to using the alloc() overrride

* clean up comments

* format

* run clang-format manually.
Trunk may be the absolute worst formatter in existance

* format on WSL to fix trunks awfulness

* add a 3 minute cooldown to prevent messages going back and forth

* add ignoring the dummy neighbor.

* fix or.

* fix spelling, increase logging

---------

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
* Update digital clock draw to auto scale to correct size; no more fixed scaling

* Static scale calcuation to improve performance

* Update src/graphics/draw/ClockRenderer.cpp

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Back off for width or height exceeds

* Fixes for some calcuations

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Properly format timestamp in log message

* Better formatting of GPS_DEBUG logging in gps probe

* Reset GPS after serial speed change, and look for magic string to identify chip

* Add UC6580 to boot message detection, for Heltec Tracker

* Add L76K detect from boot string, for Heltec-v4

* Slightly more useful GPS debugging

* Back out detection of L76K via startup messages.

* Ignore PIN_GPS_RESET = -1 and rename passive_detect array.

---------

Co-authored-by: Tom Fifield <tom@tomfifield.net>
…back (#7882)

* Make RAK4631 nodes power back on deep sleep

The devices will hang if the VBAT goes under 1.7V (Brown-out reset) and
they will never come back unless power supply goes completely off.

This kills unattended nodes.

Using the SystemOff the LPCOMP we can get the nodes back again when
power comes back, even if VBAT goes under 1.7V, which moreover is more
unlikely because the device is off.

* Adding support for heltec t114

And moved particularities to variant.h

* Remove old cpp comment that belongs to variant.h

It was a leftover.

* Trunk fix

---------

Co-authored-by: Tom Fifield <tom@tomfifield.net>
Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com>
* Unify uptime formatting

* Fix small label alignment item

---------

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Jason P <applewiz@mac.com>
@thebentern thebentern added the enhancement New feature or request label Nov 20, 2025
@thebentern thebentern requested a review from Xaositek November 20, 2025 02:54
@thebentern thebentern requested a review from Copilot November 20, 2025 12:28

@Xaositek Xaositek left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All seems sane - has been running in develop without issues

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR merges development changes into master for version 2.7.16, containing numerous bug fixes, feature additions, and code improvements across the Meshtastic firmware.

  • Build version incremented from 15 to 16
  • Adds BH1750 light sensor support
  • Implements IPv6 support for WiFi on ESP32 platforms
  • Adds LR1121 radio module support for tbeam-s3-core
  • Improves neighbor info module with reply throttling and dummy packet filtering
  • Refactors uptime display logic into reusable formatter
  • Fixes battery low voltage detection on NRF52 platforms
  • Improves I2C device detection logic

Reviewed Changes

Copilot reviewed 49 out of 50 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
version.properties Increments build number to 16
variants/stm32/wio-e5/variant.h Fixes LED state polarity
variants/nrf52840/rak4631/variant.h Adds low power comparator for battery wake-up
variants/nrf52840/heltec_*/variant.h Updates ADC multiplier and adds low power comparator
variants/esp32s3/tbeam-s3-core/* Adds LR1121 radio support
userPrefs.jsonc Adds IPv6 configuration option
src/power.h Exports battery_adcEnable function
src/platform/stm32wl/main-stm32wl.cpp Adds wrapper functions to reduce code size
src/platform/portduino/PortduinoGlue.cpp Improves auto-configuration logic
src/platform/nrf52/main-nrf52.cpp Implements low power comparator for battery wake-up
src/mqtt/MQTT.cpp Simplifies MQTT queue check logic
src/modules/Telemetry/Sensor/BH1750Sensor.* Adds BH1750 light sensor support
src/modules/NeighborInfoModule.* Adds reply throttling and dummy packet filtering
src/mesh/wifi/WiFiAPClient.cpp Adds IPv6 support for ESP32
src/mesh/ProtobufModule.h Changes numOnlineNodes from uint8_t to uint16_t
src/mesh/NodeDB.cpp Adds IPv6 configuration support
src/main.cpp Adds null check for rIf pointer
src/graphics/* Refactors uptime display and adds new emoji support
src/gps/* Improves GPS detection and logging
src/detect/ScanI2CTwoWire.cpp Improves I2C device detection for SHT4X and DA217
src/Power.cpp Renames adcEnable/adcDisable and removes NRF52 deep sleep exception
platformio.ini Updates RadioLib dependency

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

exit(EXIT_FAILURE);
}
if (access((portduino_config.available_directory + product_config).c_str(), R_OK) != 0) {
std::cerr << "autoconf: Unable to find config for " << autoconf_product << "(tried " << product_config << ")"

Copilot AI Nov 20, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing space after 'for' in error message. Should be 'for ' + autoconf_product + ' (tried'.

Copilot uses AI. Check for mistakes.
Comment thread src/graphics/draw/MenuHandler.cpp Outdated
if (registerValue == 0x5449) {
type = OPT3001;
logFoundDevice("OPT3001", (uint8_t)addr.address);
} else if (getRegisterValue(ScanI2CTwoWire::RegisterLocation(addr, 0x89), 2) != 0) { // unique SHT4x serial number

Copilot AI Nov 20, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The logic has been inverted to check for non-zero register value. However, the comment 'unique SHT4x serial number' is ambiguous - it should clarify that a non-zero value indicates presence of SHT4x, or that the check verifies the serial number is readable.

Suggested change
} else if (getRegisterValue(ScanI2CTwoWire::RegisterLocation(addr, 0x89), 2) != 0) { // unique SHT4x serial number
} else if (getRegisterValue(ScanI2CTwoWire::RegisterLocation(addr, 0x89), 2) != 0) { // SHT4x: non-zero serial number at 0x89 indicates device presence

Copilot uses AI. Check for mistakes.
Comment thread src/graphics/draw/ClockRenderer.cpp
Comment thread src/modules/NeighborInfoModule.cpp
Comment thread src/platform/nrf52/main-nrf52.cpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@thebentern thebentern merged commit 38b0c15 into master Nov 20, 2025
76 checks passed
@thebentern thebentern deleted the develop-to-master branch November 20, 2025 14:50
jeek pushed a commit to jeek/Meshtastic-Exploiteers-Hacker-Pager that referenced this pull request Jun 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.