diff --git a/MQTT_IMPLEMENTATION.md b/MQTT_IMPLEMENTATION.md index 550513ec1..aeb4ebc32 100644 --- a/MQTT_IMPLEMENTATION.md +++ b/MQTT_IMPLEMENTATION.md @@ -225,11 +225,14 @@ pio run -e ThinkNode_M7_repeater_observer_mqtt pio run -e ThinkNode_M7_room_server_observer_mqtt ``` -**ThinkNode M7 — WiFi only:** the M7 has an onboard CH390 Ethernet controller, and -`ThinkNode_M7_companion_radio_ethernet` uses it, but the MQTT bridge's link -management is bound to the WiFi station API, so the observer envs uplink over WiFi. -See `UPSTREAM_BUGS.md` for the Ethernet gap. The board has PSRAM, so these builds -get neighbors publication (`WITH_MQTT_NEIGHBORS`) automatically. +**ThinkNode M7 — Ethernet preferred, WiFi fallback:** the observer envs use the onboard +CH390 Ethernet when it has a DHCP lease at boot, otherwise the stored WiFi network, and +switch between the two at runtime (`get link.status`, `get link.diag`). Nodes without a +cable behave like WiFi observers after a brief (about 1 s) Ethernet probe at boot. The DHCP hostname is +`meshcore-` on either medium. A first boot on Ethernet with no WiFi configured +opens WebConfig on the LAN with a one-time login code printed on serial (and shown on +the display), and requires replacing the admin password. The board has PSRAM, so these +builds get neighbors publication (`WITH_MQTT_NEIGHBORS`) automatically. **TLora naming:** The env prefix `LilyGo_TLora_V2_1_1_6` is LilyGo’s **T-LoRa V2.1–1.6** board (SX1276); PlatformIO selects **`ttgo-lora32-v1`** (TTGO LoRa32 V1.0). **MQTT observer** envs extend a slim base **without** `sensor_base` so the image fits `min_spiffs`; **all other** `LilyGo_TLora_V2_1_1_6_*` targets still use optional I2C environmental sensors as before. The **`lilygo_tlora_c6`** variant is separate hardware (ESP32-C6). diff --git a/variants/thinknode_m7/platformio.ini b/variants/thinknode_m7/platformio.ini index 620fe390d..60945e041 100644 --- a/variants/thinknode_m7/platformio.ini +++ b/variants/thinknode_m7/platformio.ini @@ -191,10 +191,9 @@ extends = ThinkNode_M7 build_src_filter = ${ThinkNode_M7.build_src_filter} +<../examples/kiss_modem/> -; Wi-Fi remains the default observer transport. Ethernet twins below select the -; onboard CH390 through the Ethernet-preferred network manager without enabling the legacy CLI -; transport. The board has PSRAM, so MAX_NEIGHBOURS enables -; WITH_MQTT_NEIGHBORS (see MQTTBridge.h). +; MQTT observers prefer the onboard CH390 Ethernet and fall back to Wi-Fi, without +; enabling the legacy Ethernet CLI transport (no ETHERNET_ENABLED). The board has +; PSRAM, so MAX_NEIGHBOURS enables WITH_MQTT_NEIGHBORS (see MQTTBridge.h). [env:ThinkNode_M7_repeater_observer_mqtt] extends = ThinkNode_M7 extra_scripts = @@ -204,6 +203,8 @@ board_ssl_cert_source = adafruit-full board_build.embed_files = src/certs/x509_crt_bundle.bin build_flags = ${ThinkNode_M7.build_flags} + ${ThinkNode_M7_ch390.build_flags} + -D NETWORK_PREFER_ETHERNET=1 -D ADVERT_NAME='"MQTT Observer"' -D ADVERT_LAT=0.0 -D ADVERT_LON=0.0 @@ -231,6 +232,7 @@ build_src_filter = ${ThinkNode_M7.build_src_filter} +<../examples/simple_repeater> lib_deps = ${ThinkNode_M7.lib_deps} + ${ThinkNode_M7_ch390.lib_deps} ${esp32_ota.lib_deps} elims/PsychicMqttClient@^0.2.4 bblanchon/ArduinoJson @ 7.4.3 @@ -239,17 +241,6 @@ lib_deps = paulstoffregen/Time@1.6.1 0neblock/SNMP_Agent -[env:ThinkNode_M7_repeater_observer_mqtt_ethernet] -extends = env:ThinkNode_M7_repeater_observer_mqtt -build_flags = - ${env:ThinkNode_M7_repeater_observer_mqtt.build_flags} - ${ThinkNode_M7_ch390.build_flags} - -D NETWORK_PREFER_ETHERNET=1 -build_src_filter = ${env:ThinkNode_M7_repeater_observer_mqtt.build_src_filter} -lib_deps = - ${env:ThinkNode_M7_repeater_observer_mqtt.lib_deps} - ${ThinkNode_M7_ch390.lib_deps} - [env:ThinkNode_M7_room_server_observer_mqtt] extends = ThinkNode_M7 extra_scripts = @@ -259,6 +250,8 @@ board_ssl_cert_source = adafruit-full board_build.embed_files = src/certs/x509_crt_bundle.bin build_flags = ${ThinkNode_M7.build_flags} + ${ThinkNode_M7_ch390.build_flags} + -D NETWORK_PREFER_ETHERNET=1 -D ADVERT_NAME='"ThinkNode M7 Room Observer"' -D ADVERT_LAT=0.0 -D ADVERT_LON=0.0 @@ -287,6 +280,7 @@ build_src_filter = ${ThinkNode_M7.build_src_filter} +<../examples/simple_room_server> lib_deps = ${ThinkNode_M7.lib_deps} + ${ThinkNode_M7_ch390.lib_deps} ${esp32_ota.lib_deps} elims/PsychicMqttClient@^0.2.4 bblanchon/ArduinoJson @ 7.4.3 @@ -294,14 +288,3 @@ lib_deps = JChristensen/Timezone paulstoffregen/Time@1.6.1 0neblock/SNMP_Agent - -[env:ThinkNode_M7_room_server_observer_mqtt_ethernet] -extends = env:ThinkNode_M7_room_server_observer_mqtt -build_flags = - ${env:ThinkNode_M7_room_server_observer_mqtt.build_flags} - ${ThinkNode_M7_ch390.build_flags} - -D NETWORK_PREFER_ETHERNET=1 -build_src_filter = ${env:ThinkNode_M7_room_server_observer_mqtt.build_src_filter} -lib_deps = - ${env:ThinkNode_M7_room_server_observer_mqtt.lib_deps} - ${ThinkNode_M7_ch390.lib_deps}