- Replaced ETHClass2 with esp_eth.h / esp_netif.h
- Both SX1262 and SX1276 variants tested and working
- Ethernet + Radio coexist correctly on native SDK
- Added IP validation in CommonCLI.cpp to prevent boot-time garbage:
* isValidUnicastIp() — rejects 0.x.x.x and >=224.x.x.x
* isValidSubnetMask() — rejects non-contiguous masks
* Applied in loadPrefsInt to zero out corrupted eth_* fields before netif apply
* This fixes the 254.192.168.254 stale SPIFFS issue
Security fixes:
- IP validation: bounds checking for octets (0-255)
- ETH.config() return value now checked with distinct logging
- set ip 0.0.0.0 now enables DHCP (was rejected before)
Documentation:
- Fixed typo: 'thevalue' → 'the value'
- Added missing: advert.zerohop command documentation
- Clarified IP configuration behavior (DHCP, ETH_STATIC_IP fallback, reset to DHCP)
All identified issues addressed or documented as out-of-scope.
PR #2260 ready for maintainer review.
ESP-NOW radios (ie, Generic_ESPNOW_* variants) do not compile due to
missing methods
Changes in January 2026 (019bbf74) to add additional stats (receive errors)
to CMD_GET_STATS was not implemented in the ESPNOWRadio() class
Changes in March 2026 (9a95e25e) to add setRxBoostedGainMode to all devices
rather than just SX1262/SX1268 were not applied to the ESPNowRadio() driver
Specifically, this change adds the following to ESPNOWRadio()
* getPacketsRecvErrors() - always returns 0
* getRxBoostedGainMode() - always returns false
* setRxBoostedGainMode() - does nothing
There is a lot to this PR, so if there are any questions let me know.
The idea here is to merge T-Beam fw so that there is less redundant code. Most versions (except the 0.7) share PMU code, init sequence, and most IO pin definitions.
- Merged all T-Beam board.h files into one TBeamBoard.
- Added PMU code to identify different AXP chips.
- Modified "lilygo tbeam SX1276" variant to cover all T-Beam SX1276 versions
- Modified "lilygo tbeam SX1262" variant to cover all T-Beam SX1262 versions
- Enabled GPS on all T-Beam versions/models
- Enabled BME280 on the Supreme
I am also updating EnvironmentSensorManager to allow for boards that do or don't have GPS enable pins, as well as a PERSISTANT_GPS define check for boards that want GPS to stay active after boot.