Commit Graph
1094 Commits
Author SHA1 Message Date
ford-jones 02efef3aaf Set appropriate mqtt root upon lora region change 2025-09-30 16:36:52 +13:00
Ben MeadorsandGitHub a15d654767 Finish deprecating the Repeater role behavior (#8144)
* Finish deprecating the Repeater role behavior

* Validate

* Fixed bad if/else block

* Get your crap together!
2025-09-28 15:30:53 -05:00
033fc0c8f3 Validate CR and SF lora config (#8146)
* Validate CR and SF lora config

* No zero-bw

* Update src/modules/AdminModule.cpp

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

* Fix braces

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-28 13:13:07 -05:00
ford-jones 6448f069f8 Use channel as specified in the received packet 2025-09-28 13:18:21 +13:00
ford-jones f6a28e15d2 Pull latest, regen protos 2025-09-28 11:38:36 +13:00
Ford JonesandGitHub 7eb0109e33 Merge branch 'develop' into clear-rangetest-results 2025-09-28 01:02:44 +12:00
WillyJLandGitHub a2d86454d3 I2S: Fix silent RTTTL regression (#8129) 2025-09-27 15:07:38 +10:00
Ben MeadorsandGitHub d9f0590f8e Merge branch 'develop' into reduce_cpu_load 2025-09-25 11:59:22 -05:00
Ford JonesandGitHub 8d9fda38d6 Merge branch 'develop' into clear-rangetest-results 2025-09-25 22:47:16 +12: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
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
Ford JonesandGitHub d461eb35fc Merge branch 'develop' into clear-rangetest-results 2025-09-24 23:59:46 +12:00
Ben Meadors f55db903b2 Merge branch 'master' into develop 2025-09-23 05:38:52 -05:00
Ben MeadorsandGitHub e1485b530f Handle ext. notification module things even if not enabled (#8089) 2025-09-22 19:59:05 -05:00
ford-jones e7840122e8 Decouple node-mute from channel-mute 2025-09-23 11:40:45 +12:00
Ford JonesandGitHub c811e4c573 Merge branch 'develop' into 7943-mute-target 2025-09-21 13:36:16 +12:00
ford-jones 3463006f73 Merge branch 'develop' of https://github.com/meshtastic/firmware into clear-rangetest-results 2025-09-21 00:26:19 +12:00
MarkusandBen Meadors 44968415a5 fix build with HAS_TELEMETRY 0 (#8051) 2025-09-20 06:34:47 -05:00
MarkusandGitHub 8db9b24934 fix build with HAS_TELEMETRY 0 (#8051) 2025-09-20 06:33:41 -05:00
ford-jones 58e4dcea61 Merge branch 'develop' of https://github.com/meshtastic/firmware into clear-rangetest-results 2025-09-20 14:31:05 +12:00
Jason PandBen Meadors a1cf305336 Show GPS Date properly in drawCommonHeader (#7887)
* Commit good code that is sustainable

* Fix new build errors
2025-09-19 08:33:37 -05:00
Jonathan BennettandBen Meadors cc579dd0bd Portduino config refactor (#7796)
* Start portduino_config refactor

* refactor GPIOs to new portduino_config

* More portduino_config work

* More conversion to portduino_config

* Finish portduino_config transition

* trunk

* yaml output work

* Simplify the GPIO config

* Trunk
2025-09-19 08:24:35 -05:00
Ben Meadors 1ac2382d7c Revert "Fix excluded modules configuration handling (#7838)"
This reverts commit 9c6544ebfa.
2025-09-19 07:29:54 -05:00
ford-jones 901bcc24ee Reflect requirement of ESP32 hardware in rangetest logs 2025-09-19 22:17:03 +12:00
Jonathan BennettandBen Meadors 68ba3b315c Auto-favorite remote admin node 2025-09-18 20:37:56 -05:00
MarkusandBen Meadors ec29100a88 Allow Left / Right Events for selection and improve encoder responsives (#8016)
* Allow Left / Right Events for selection and improve encoder responsives

* add define for ROTARY_DELAY
2025-09-18 19:29:09 -05:00
MarkusandGitHub 89cccdbbe2 Allow Left / Right Events for selection and improve encoder responsives (#8016)
* Allow Left / Right Events for selection and improve encoder responsives

* add define for ROTARY_DELAY
2025-09-18 19:25:58 -05:00
Ben Meadors 8f0e17a653 Merge branch 'master' into develop 2025-09-18 19:18:53 -05:00
71d84404c6 add WIP for Unit C6L (#7433)
* add WIP for Unit C6L
* adapt to new config structure
* Add c6l BLE and screen support (#7991)
* Minor c6l fix
* Move out of PRIVATE_HW
---------
Co-authored-by: Austin <vidplace7@gmail.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
Co-authored-by: Jason P <Xaositek@users.noreply.github.com>
Co-authored-by: Markus <Links2004@users.noreply.github.com>
2025-09-17 22:40:55 +02:00
Jonathan Bennett ba18467bd1 Auto-favorite remote admin node 2025-09-17 08:37:51 -05:00
ford-jones e0f88be2d7 Merge branch 'develop' of https://github.com/meshtastic/firmware into 7943-mute-target 2025-09-16 19:16:44 +12:00
ford-jones f8d44f8f6c Revert previous commit - this needs it's own proto 2025-09-13 17:45:07 +12:00
ford-jones ccff2769fe Make use of pre-existing channel_settings.module_settings.is_client_muted setting 2025-09-13 13:39:32 +12:00
Ben MeadorsandGitHub e6bfc4a97a Merge pull request #7969 from meshtastic/master
Backmerge
2025-09-12 18:23:40 -05:00
ford-jones e0890b2a13 Don't mute alerts 2025-09-12 23:01:42 +12:00
ford-jones 693181b2be Disable message-invoked ext notifs for muted channels and nodes 2025-09-12 15:45:10 +12:00
ford-jones 39c663f203 Merge branch 'develop' of https://github.com/meshtastic/firmware into 7943-mute-target 2025-09-12 14:23:01 +12:00
ford-jones 4e879a7b26 Disable bell-invoked ext notifs for muted channels 2025-09-12 14:12:55 +12:00
ford-jones 8c9c00172c Clearly dilineate module mute from sender or channel mute 2025-09-12 14:12:22 +12:00
ford-jones d5300a1141 Disable bell-invoked ext notifs for muted nodes 2025-09-12 13:54:52 +12:00
Ben Meadors ac4bcd2f56 Cleanup 2025-09-11 18:57:30 -05:00
Ben MeadorsandGitHub 83ae72cbb2 Merge pull request #7961 from meshtastic/master
Backmerge
2025-09-11 08:14:46 -05:00
Ben MeadorsandGitHub e17c50bb86 Put guards in place around debug heap operations (#7955)
* Put guards in place around debug heap operations

* Add macros to clean up code

* Add pointer as well
2025-09-11 07:57:42 -05:00
ford-jones 02cb306bb1 Merge branch 'develop' into 7943-mute-target 2025-09-11 19:59:38 +12:00
ford-jones fa1ccf4779 Create node-mute toggle functions 2025-09-11 17:30:59 +12:00
Ben Meadors f267b5f5f7 Exclude trackball if we aren't a trackball device 2025-09-09 11:15:55 -05:00
Ben Meadors 0cd860e300 RangeTest must be enabled 2025-09-09 10:53:18 -05:00
Ben Meadors 31fdb36987 Detection sensor add module only when enabled 2025-09-09 10:46:33 -05:00
Jonathan BennettandGitHub e7741c20e4 Add LOG_HEAP log type, and more heap debug messages (#7937) 2025-09-09 10:29:07 -05:00
Ben Meadors ca4b98f2b1 Merge branch 'master' into develop 2025-09-09 08:42:29 -05:00