- 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.
- Add PIN_USER_BTN_ANA=7 globally to platformio.ini
- Remove abs() from millis() comparison (unsigned overflow)
- Add auto declaration to ev variable in PIN_USER_BTN_ANA block
Fixes compilation errors on ESP32-S3 with analog button support
- Protect MomentaryButton instantiation with #ifdef PIN_USER_BTN_ANA
- Use dummy pin 0 when PIN_USER_BTN_ANA is not defined
- Allows compilation on boards without analog button support
- Applied to both SX1262 and SX1276 variants
* room server: added RegionMap, and new CommonCLI wiring, default_scope handling
* sensor: only minimal RegionMap wiring. Still needs work to handle default-scope
The Waveshare RP2040-LoRa board has an RF switch with two complementary
control lines:
- DIO2 (CTRL) -- driven automatically by the SX1262 chip: HIGH on TX,
LOW on RX
- GPIO17 (!CTRL) -- was not configured in MeshCore, so it floated and
the switch never properly selected the LNA/RX path
Without this pin driven, the RF switch never switches to RX mode,
resulting in completely degraded reception. TX was unaffected because
DIO2 alone is sufficient to activate the TX path.
Adding SX126X_RXEN=17 lets RadioLib drive GPIO17 as the complement of
DIO2, so the switch correctly routes the signal to the LNA on receive.
Reference: https://files.waveshare.com/wiki/RP2040-LoRa/Rp2040-lora-sch.pdf