Important
This release adds Public Key encryption to direct messages and enhanced session key based security to remote admin messages. It's recommended to back up your private keys.
Remote administration of 2.5 nodes will require client updates to all of the platforms.
Warning
There is a known-issue with LR111X based radios (Seeed Tracker / T1000-E) in communicating with older SX1276 based devices. The issue pre-dates this release.
Enhancements
- 2.5 Changes by @thebentern in #4431
- Re-implement PKI from #1509 by @jp-bennett in #4379
- User to UserLite in NodeDB by @thebentern in #4438
- Add logic to nodeDB to prefer evicting boring nodes by @jp-bennett in #4441
- Shorter nodeinfo timeout redux by @jp-bennett in #4458
- Add PKI channel for MQTT by @jp-bennett in #4464
- Short turdbo by @thebentern in #4465
- Re-compute correct timeslot on applyModemConfig by @thebentern in #4469
- Master downstream to 2.5 by @thebentern in #4474
- Send local stats telemetry to phone every 15 minutes by @thebentern in #4475
- Set time-only admin command by @thebentern in #4479
- AdminModule session_passkey by @jp-bennett in #4478
- Add two-way traceroute result with SNR per hop by @GUVWAF in #4485
- Add 4 bytes of random nonce to PKI by @jp-bennett in #4493
- Feature: default to fuzzy GPS location on the Default Channel by @mrfyda in #4467
- Add admin getter for
SECURITY_CONFIG
by @andrekir in #4499 - Only accept PKI messages for MQTT downlink for known nodes by @GUVWAF in #4498
- Fix deprecated macros. by @Mictronics in #4505
- Set RP2040 in dormant mode when deep sleep is triggered. by @Mictronics in #4510
- Make it possible to define TCXO and XTAL radio modules within one variant by @Nestpebble in #4492
- Add a .yml to setup a Gitpod instance quickly by @Nestpebble in #4551
- Add devcontainer by @jhollowe in #4491
- Add support for Adafruit Feather RP2040 with RFM95. by @miltieIV2 in #4451
- Deal with admin_key being repeated by @jp-bennett in #4558
- Don't compare nodeDB macaddr to owner.macaddr, because in rare cases … by @jp-bennett in #4562
- Set current time to system time in portduino build by @pccr10001 in #4556
- Set high priority for text messages by @GUVWAF in #4592
- Add button secondary and enable scan-select on T190 by @thebentern in #4577
- Move Time set from system to main by @jp-bennett in #4583
- Support for Polish OLED characters by @And137 in #4572* Key regen and MQTT fix by @jp-bennett in #4585
- Add bluetooth capability marker to some ESP32S3 boards by @S5NC in #4587
- Lilygo T3S3 E-Paper support by @mverch67 in #4569
- More priorities for different types of MeshPackets by @GUVWAF in #4606
- Hello world for MeshTestic by @thebentern in #4607
- Add option to preserve private key for factory reset (config) by @thebentern in #4679
Bug fixes and Maintenace
- Remove heltec-specific gps code from main.cpp by @fifieldt in #4508
- Add heartbeat LED for HT-VME290 and HT-VME213 by @todd-herbert in #4511
- JP frequency - 20mW limit, change freqs to avoid duty cycle by @fifieldt in #4446
- Bin: remove unused imports from readprops.py by @Jorropo in #3907
- Fall back to default modem preset if requested bandwidth is too large by @GUVWAF in #4497
- Fix array out of bounds read. by @Mictronics in #4514
- Add handling for sessionkey config by @jp-bennett in #4513
- Fix #4448 (by seeing there is actually no problem) by @geeksville in #4517
- Add Fix for SHT4X detection on Wio Tracker wm1110 by @markbirss in #4520
- Fixes for ME25LS01_4Y10TD and ESP32-PICO by @markbirss in #4522
- Enable RED Power LED for WIO-E5 Mini and WIO-E5 DEV Kit by @markbirss in #4534
- Save nodedb after favoriting (or removing) by @thebentern in #4537
- Adds has_x bools to position packet. by @jp-bennett in #4540
- Initial support for RadioMaster Bandit. by @gjelsoe in #4523
- Use the '+' wildcard for MQTT rather than '#' by @ianmcorvidae in #4528
- Found more places to set explicit has_optional on position by @thebentern in #4542
- Remove deprecated serial/bt logging options (fix #4375) by @geeksville in #4516
Mask out random bits when doing queue ordering by @jp-bennett in #4561 - Consider an admin timestamp to be higher quality than from mesh by @jp-bennett in #4589
- Ignore (from)Net time on positions with an unknown or fixed location source by @thebentern in #4593
- Fix #4390 by @caveman99 in #4571
- Fix devcontainer Dockerfile build by @mrfyda in #4568
- Fix super tiny T1114 TFT font size and fork repo to fix compiler warnings by @thebentern in #4573
- Fix T1000-E default to turn on buzzer for Ext. Notification by @thebentern in #4575
- Fix display of certain Unicode symbols by @Coloradohusky in #4610
- Add BMP388 as a new pressure and temp sensor by @dhskinner in #4482
- For #4154 Only enable Vext regulator when needed for either Screen or GPS by @geeksville in #4527
- Nuke proxy variable by @S5NC in #4588
- Own node should be favorited and have zero hops away by @thebentern in #4618
- Remove unused define by @fifieldt in #4620
- several small changes for Tracker 1000E by @caveman99 in #4612
- Fix RF switch for Tracker E by @caveman99 in #4621
- Same priority packets processed in enqueue order by @gitbisector in #4608
- Minor GPS fixes by @fifieldt in #4630
- Bring 2.4G back in line with preset bandwidth by @caveman99 in #4634
- Add LR11x0 firmware version to init. by @caveman99 in #4641
- Update E-Ink GPS icon immediately when triple-pressing user button by @todd-herbert in #4637
- Add missing linefeeds to gps code by @fifieldt in #4638
- Gather canned message magic numbers into header defines. by @robertfisk in #4623
- Tryfix #4384 by @caveman99 in #4642
- RAK13800 Ethernet improvements by @zerolint in #4639
- Draft contributing.md file by @rcarteraz in #4507
- Simplify GNSS Probe code by @fifieldt in #4647
- Report PWD when no battery present. by @gitbisector in #4646
- Adds the ok_to_mqtt bit by @jp-bennett in #4643
- Remove undefined declaration by @fifieldt in #4652
- If GPS sleepTime is Zero, don't sleep. by @fifieldt in #4658
- Fix for MESHTASTIC_MINIMIZE_BUILD by @dhskinner in #4660
- Fix out-of-bound array access in T1000X Sensor by @fifieldt in #4663
- Add explicit to JSONValue constructors by @fifieldt in #4665
- Add support for AG3352 and fix AG3335 support by @fifieldt in #4650
- Try fix repeatedly getting a new NodeNum by @GUVWAF in #4670
- Fix traceroute not adding more than one SNR or route entry by @GUVWAF in #4669
- Fix repeatedly getting new NodeNum and add more debug by @jp-bennett in #4674
- Remove scaling of smart position broadcast minimum interval specifically by @thebentern in #4677
- Print Unix epoch on time_t 64bit platforms by @zerolint in #4673
New Contributors
- @ianmcorvidae made their first contribution in #4528
- @jhollowe made their first contribution in #4491
- @mrfyda made their first contribution in #4467
- @miltieIV2 made their first contribution in #4451
- @pccr10001 made their first contribution in #4556
- @And137 made their first contribution in #4572
- @Coloradohusky made their first contribution in #4610
- @dhskinner made their first contribution in #4482
- @gitbisector made their first contribution in #4608
- @RCGV1 made their first contribution in #4635
- @robertfisk made their first contribution in #4623
- @zerolint made their first contribution in #4639
Full Changelog: v2.4.3.91d6612...v2.5.0.9ac0e26