Commit Graph
10352 Commits
Author SHA1 Message Date
bc516ebbac Remove memcpy (#8079)
Obsolete since #7652 returns false for mismatching keys

Co-authored-by: dfsx1 <dfsx1@users.noreply.github.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2025-09-27 08:33:07 -05:00
Ben Meadors 045176789e Fix int comparison and client_base base should really not be on this list 2025-09-27 08:32:43 -05:00
Ben MeadorsandGitHub 73147c4028 Merge pull request #8110 from meshtastic/develop
Develop --> Master
2025-09-27 08:00:52 -05:00
Ben MeadorsandGitHub ab00e991f6 Revert cross-preset default-key bridging with UDP and disable UDP by default (#8130)
* Revert cross-preset UDP bridging

* Don't enable UDP by default
2025-09-27 07:09:24 -05:00
WillyJLandGitHub a2d86454d3 I2S: Fix silent RTTTL regression (#8129) 2025-09-27 15:07:38 +10:00
Jonathan BennettandGitHub bc3db1b5c1 Properly output the TCXO Voltage in yaml (#8128) 2025-09-26 18:23:09 -05:00
2f1198ddf3 Upgrade trunk (#8118)
Co-authored-by: vidplace7 <1779290+vidplace7@users.noreply.github.com>
2025-09-26 11:17:38 -05:00
Jason PandGitHub 0624059683 Saving changes are required (#8122) 2025-09-26 11:17:15 -05:00
Jason PandGitHub 9980c56d81 Correct Inverted Mute Icon on Clock Display (#8111) 2025-09-26 08:48:34 +10:00
Ben MeadorsandGitHub fc9f1ac056 Merge branch 'master' into develop 2025-09-25 17:09:47 -05:00
Ben MeadorsandGitHub c65dbe490e Merge pull request #8101 from Links2004/reduce_cpu_load
reduce cpu load by optimizing OSThread runOnce calls
2025-09-25 16:29:42 -05:00
Ben MeadorsandGitHub 44636cc9f5 Merge pull request #8053 from GUVWAF/assymRelay
Make sure next-hop is only set when they received us directly
2025-09-25 13:54:22 -05:00
GUVWAFandGitHub aa876ba42f Merge branch 'develop' into assymRelay 2025-09-25 20:01:35 +02:00
GUVWAF 12c3ddf457 Resolve comments 2025-09-25 19:59:38 +02:00
Ben MeadorsandGitHub d9f0590f8e Merge branch 'develop' into reduce_cpu_load 2025-09-25 11:59:22 -05:00
Ben MeadorsandGitHub 191d20ed04 Merge pull request #7982 from meshtastic/develop
Test develop --> master
2025-09-25 08:34:07 -05:00
3c25652cdf If a packet is heard multiple times, rebroadcast using the highest hop limit (#5534)
* If a packet is heard multiple times, rebroadcast using the highest hop limit

Sometimes a packet will be in the TX queue waiting to be transmitted,
when it is overheard being rebroadcast by another node, with a higher
hop limit remaining. When this occurs, modify the pending packet in
the TX queue to avoid unnecessarily wasting hops.

* Reprocess instead of modifying queued packet

In order to ensure that the traceroute module works correctly, rather
than modifying the hop limnit of the existing queued version of the
packet, simply drop it ifrom the queue and reprocess the version of the
packet with the superior hop limit.

* Update protobufs submodule

* Merge upstream/develop into overheard-hoptimisation branch

Resolved conflicts in:
- src/mesh/FloodingRouter.cpp: Integrated hop limit optimization with refactored duplicate handling
- src/mesh/MeshPacketQueue.h: Kept both hop_limit_lt parameter and new find() method

* Improve method naming and code clarity

- Rename findPacket() to getPacketFromQueue() for better clarity
- Make code DRY by having find() use getPacketFromQueue() internally
- Resolves method overloading conflict with clearer naming

* If a packet is heard multiple times, rebroadcast using the highest hop limit

Sometimes a packet will be in the TX queue waiting to be transmitted,
when it is overheard being rebroadcast by another node, with a higher
hop limit remaining. When this occurs, modify the pending packet in
the TX queue to avoid unnecessarily wasting hops.

* Improve router role checking using IS_ONE_OF macro

- Replace multiple individual role checks with cleaner IS_ONE_OF macro
- Add CLIENT_BASE support as suggested in PR #7992
- Include MeshTypes.h for IS_ONE_OF macro
- Makes code more maintainable and consistent with other parts of codebase

* Apply IS_ONE_OF improvement to NextHopRouter.cpp

- Replace multiple individual role checks with cleaner IS_ONE_OF macro
- Add CLIENT_BASE support for consistency
- Include MeshTypes.h for IS_ONE_OF macro
- Matches the pattern used in FloodingRouter.cpp

* Create and apply IS_ROUTER_ROLE() macro across codebase

- Add IS_ROUTER_ROLE() macro to meshUtils.h for consistent router role checking
- Update FloodingRouter.cpp to use macro in multiple locations
- Update NextHopRouter.cpp to use macro
- Include CLIENT_BASE role support

* Core Changes:
- Add hop_limit field to PacketRecord (17B→20B due to alignment)
- Extend wasSeenRecently() with wasUpgraded parameter
- Enable router optimization without duplicate app delivery
- Handle ROUTER_LATE delayed transmission properly

Technical Details:
- Memory overhead: ~4000 bytes for 1000 records
- Prevents duplicate message delivery while enabling routing optimization
- Maintains protocol integrity for ACK/NAK handling
- Supports upgrade from hop_limit=0 to hop_limit>0 scenarios

* Delete files accdentally added for merge

* Trunk formatting

* Packets are supposed to be unsigned. Thankfully, it's only a log message.

* Upgrade all packets, not just 0 hop packets.

* Not just unsigned, but hex. Updating packet log IDs.

* Fixed order of operations issue that prevented packetrs from being removed from the queue

* Fixing some bugs after testing. Only storing the maximum hop value in PacketRecord which makes sense. Also, updating messaging to make more sense in the logs.

* Fixed flow logic about how to handle re-inserting duplicate packets. Removed IS_ROUTER_ROLE macro and replaced it with better isRebroadcaster().

* Add logic to re-run modules, but avoid re-sending to phone.

* Refactor how to process the new packet with hops. Only update nodeDB and traceRouteModule.

* - Apply changes to both FloodingRouter and NextHopRouter classes to make packets mutable for traceroute
- MESHTASTIC_EXCLUDE_TRACEROUTE guard for when we don't want traceroute

* Allow MeshPacket to be modified in-place in processUpgradePacket

* let's not make a copy where a copy is unncessary.

---------

Co-authored-by: Clive Blackledge <clive@ansible.org>
Co-authored-by: Clive Blackledge <git@ansible.org>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2025-09-25 05:44:49 -05:00
Ben MeadorsandGitHub 9b3d76967b Merge branch 'develop' into assymRelay 2025-09-25 05:18:56 -05:00
Clive BlackledgeandGitHub fd5ca8b73c Feat/0-cost hops for favorite routers (#7992)
* feat: implement router hop preservation for router-to-router communication

- Preserve hop_limit when both local device and previous relay are routers/CLIENT_BASE
- Only preserve hops for favorite routers to prevent abuse
- Apply to both FloodingRouter and NextHopRouter
- Update hop counting logic in MeshService for router-to-router communication

This allows routers to communicate over longer distances without
consuming hop limits, improving mesh network efficiency for
infrastructure nodes.

* chore: update protobufs submodule to latest

* Optimized to check friend list first before nodedb.

* Reverting unintended changes

* revert: remove protobufs submodule update

This reverts the protobufs submodule back to a84657c22 to remove
unintended changes from this branch.

* Slight rewrite to remove flawed NO_RELAY_NODE logic and added logic to add isFirstHop. If isFirstHop, always decrease hop_limit to avoid retry logic.

* DRY code. Remove NodeInfo logic that was left over.

* Trunk formatting
2025-09-25 05:17:51 -05:00
18058ef507 Fix 2.4GHz reconfiguration on LR11xx (#8102)
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2025-09-25 04:50:56 -05:00
Ben MeadorsandGitHub 68fc931518 Merge branch 'master' into develop 2025-09-25 04:48:08 -05:00
0ad6b813fc Upgrade trunk (#8105)
Co-authored-by: vidplace7 <1779290+vidplace7@users.noreply.github.com>
2025-09-25 04:45:14 -05:00
Ben MeadorsandGitHub d41fb7bcb5 Merge branch 'develop' into reduce_cpu_load 2025-09-25 04:43:56 -05:00
WillyJLandGitHub 47a82bdb98 Fix duplicated lines from merge (#8104) 2025-09-24 16:36:14 -05:00
Ben MeadorsandGitHub 8ed6514771 Merge branch 'develop' into assymRelay 2025-09-24 15:17:40 -05:00
Links2004 17ecd69416 onReceive does only exist for HardwareSerial not for USB CDC serial but we can at least check for USB connection in a longer interval 2025-09-24 22:09:32 +02:00
Links2004 bb6f19dddf the BluetoothPhoneAPI runOnce is triggerd by events any way no need to loop 2025-09-24 17:14:22 +02:00
Links2004 2fdc0d0928 save CPU cycles in ExternalNotificationModule
e.g. no need for a 25ms loop when we only blink a LED at 1sec
2025-09-24 17:14:22 +02:00
Links2004 85cdcad194 only run the ButtonThread if a button is pressed 2025-09-24 17:14:22 +02:00
Links2004 0b4a28866b add optional debug logging to see which OSThread / loops have what delays 2025-09-24 17:14:22 +02:00
Links2004 91e2e3f0e8 remove OSThread from BuzzerFeedbackThread 2025-09-24 17:14:22 +02:00
Links2004 14e64d6b9e move SerialConsole to event based trigger 2025-09-24 17:14:14 +02:00
Ben Meadors 371313080b Merge branch 'master' into develop 2025-09-24 06:18:13 -05:00
Ben Meadors db55d8a59d Trunk 2025-09-24 06:16:51 -05:00
949f881ae8 Add three expansion screens for heltec mesh solar. (#7995)
* Add three expansion screens for heltec mesh solar.

* delete whitespace

Update variants/nrf52840/heltec_mesh_solar/variant.h

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

* delete whitespace

Update variants/nrf52840/heltec_mesh_solar/platformio.ini

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2025-09-24 06:16:51 -05:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ca3c45a2f3 Update Adafruit BusIO to v1.17.4 (#8098)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-24 06:15:00 -05:00
c33c368315 Add three expansion screens for heltec mesh solar. (#7995)
* Add three expansion screens for heltec mesh solar.

* delete whitespace

Update variants/nrf52840/heltec_mesh_solar/variant.h

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

* delete whitespace

Update variants/nrf52840/heltec_mesh_solar/platformio.ini

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2025-09-24 06:14:24 -05:00
1835ff2d78 Upgrade trunk (#8094)
Co-authored-by: vidplace7 <1779290+vidplace7@users.noreply.github.com>
2025-09-24 06:05:36 -05:00
Ben Meadors 8e04f9f631 Merge branch 'master' into develop 2025-09-24 06:03:14 -05:00
83be632a1a Automated version bumps (#8100)
Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com>
2025-09-24 06:02:55 -05:00
1ed7aad976 Automated version bumps (#8100)
Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com>
2025-09-24 06:01:31 -05:00
Ben Meadors 94d4bdf05c Revert "Fix build errors (#8067)"
This reverts commit d998f70b56.
2025-09-23 08:57:04 -05:00
Ben MeadorsandGitHub 1968a009dd Clear lasttoradio on BLE disconnect (#8095)
* On disconnect, clear the lastToRadio buffer

* Move it, bucko!
2025-09-23 07:31:25 -05:00
Ben Meadors 8e608e8186 Heltec V4 is 16mb 2025-09-23 06:04:47 -05:00
Jason PandBen Meadors d998f70b56 Fix build errors (#8067) 2025-09-23 05:39:57 -05:00
Ben Meadors f55db903b2 Merge branch 'master' into develop 2025-09-23 05:38:52 -05:00
Jonathan Bennett 91efaba389 Remove line from BLE pin screen, to make pin readible on tiny screens 2025-09-22 21:59:00 -05:00
Jonathan BennettandGitHub a8c66547cc Also pull a deviceID from esp32c6 devices (#8092) 2025-09-22 21:46:57 -05:00
f77ca2533b Try-fix: Unstick that PhoneAPI state (#8091)
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
2025-09-22 21:46:35 -05:00
Jonathan BennettandGitHub 07b58a82d5 tlora-pager wake on button, and kb backlight toggling (#8090) 2025-09-22 21:06:23 -05:00