mirror of
https://github.com/alexhopeoconnor/firmware.git
synced 2026-10-22 03:02:08 +10:00
older G3 operational. M7 next.
This commit is contained in:
+2
-2
@@ -59,12 +59,12 @@ NimbleBluetooth *nimbleBluetooth = nullptr;
|
|||||||
NRF52Bluetooth *nrf52Bluetooth = nullptr;
|
NRF52Bluetooth *nrf52Bluetooth = nullptr;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_WIFI || defined(USE_WS5500)
|
#if HAS_WIFI || defined(USE_WS5500) || defined(USE_CH390D)
|
||||||
#include "mesh/api/WiFiServerAPI.h"
|
#include "mesh/api/WiFiServerAPI.h"
|
||||||
#include "mesh/wifi/WiFiAPClient.h"
|
#include "mesh/wifi/WiFiAPClient.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_ETHERNET && !defined(USE_WS5500)
|
#if HAS_ETHERNET && !defined(USE_WS5500) && !defined(USE_CH390D)
|
||||||
#include "mesh/api/ethServerAPI.h"
|
#include "mesh/api/ethServerAPI.h"
|
||||||
#include "mesh/eth/ethClient.h"
|
#include "mesh/eth/ethClient.h"
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
#include <RAK13800_W5100S.h>
|
#include <RAK13800_W5100S.h>
|
||||||
#include <SPI.h>
|
#include <SPI.h>
|
||||||
|
|
||||||
#if HAS_NETWORKING
|
#if HAS_NETWORKING && !defined(USE_WS5500) && !defined(USE_CH390D)
|
||||||
|
|
||||||
#ifndef DISABLE_NTP
|
#ifndef DISABLE_NTP
|
||||||
#include <NTPClient.h>
|
#include <NTPClient.h>
|
||||||
|
|||||||
@@ -62,12 +62,43 @@ unsigned long lastrun_ntp = 0;
|
|||||||
|
|
||||||
bool needReconnect = true; // If we create our reconnector, run it once at the beginning
|
bool needReconnect = true; // If we create our reconnector, run it once at the beginning
|
||||||
bool isReconnecting = false; // If we are currently reconnecting
|
bool isReconnecting = false; // If we are currently reconnecting
|
||||||
|
#if defined(USE_WS5500) || defined(USE_CH390D)
|
||||||
|
static volatile bool ethNetworkConnectedPending = false;
|
||||||
|
#endif
|
||||||
|
|
||||||
WiFiUDP syslogClient;
|
WiFiUDP syslogClient;
|
||||||
meshtastic::Syslog syslog(syslogClient);
|
meshtastic::Syslog syslog(syslogClient);
|
||||||
|
|
||||||
Periodic *wifiReconnect;
|
Periodic *wifiReconnect;
|
||||||
|
|
||||||
|
#if defined(USE_WS5500) || defined(USE_CH390D)
|
||||||
|
static void onNetworkConnected();
|
||||||
|
static uint32_t lastEthIP = 0;
|
||||||
|
static int32_t ethNetworkConnectedPoll()
|
||||||
|
{
|
||||||
|
if (ethNetworkConnectedPending) {
|
||||||
|
ethNetworkConnectedPending = false;
|
||||||
|
uint32_t ip = (uint32_t)ETH.localIP();
|
||||||
|
bool ipChanged = APStartupComplete && ip != 0 && ip != lastEthIP;
|
||||||
|
onNetworkConnected();
|
||||||
|
if (ipChanged) {
|
||||||
|
LOG_INFO("Ethernet IP changed (%u.%u.%u.%u), restarting mDNS", ip & 0xff, (ip >> 8) & 0xff, (ip >> 16) & 0xff,
|
||||||
|
(ip >> 24) & 0xff);
|
||||||
|
MDNS.end();
|
||||||
|
if (MDNS.begin("Meshtastic")) {
|
||||||
|
MDNS.addService("meshtastic", "tcp", SERVER_API_DEFAULT_PORT);
|
||||||
|
MDNS.addServiceTxt("meshtastic", "tcp", "shortname", String(owner.short_name));
|
||||||
|
MDNS.addServiceTxt("meshtastic", "tcp", "id", String(nodeDB->getNodeId().c_str()));
|
||||||
|
MDNS.addServiceTxt("meshtastic", "tcp", "pio_env", optstr(APP_ENV));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ip != 0)
|
||||||
|
lastEthIP = ip;
|
||||||
|
}
|
||||||
|
return 500;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef USE_WS5500
|
#ifdef USE_WS5500
|
||||||
// Startup Ethernet
|
// Startup Ethernet
|
||||||
bool initEthernet()
|
bool initEthernet()
|
||||||
@@ -78,6 +109,7 @@ bool initEthernet()
|
|||||||
#if !MESHTASTIC_EXCLUDE_WEBSERVER
|
#if !MESHTASTIC_EXCLUDE_WEBSERVER
|
||||||
createSSLCert(); // For WebServer
|
createSSLCert(); // For WebServer
|
||||||
#endif
|
#endif
|
||||||
|
new concurrency::Periodic("EthConnect", ethNetworkConnectedPoll);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,7 +123,7 @@ bool initEthernet()
|
|||||||
{
|
{
|
||||||
// Configure CH390
|
// Configure CH390
|
||||||
ch390_config_t ch390_conf = CH390_DEFAULT_CONFIG();
|
ch390_config_t ch390_conf = CH390_DEFAULT_CONFIG();
|
||||||
ch390_conf.spi_host = SPI3_HOST; // SPI2_HOST or SPI3_HOST
|
ch390_conf.spi_host = SPI3_HOST;
|
||||||
ch390_conf.spi_cs_gpio = ETH_CS_PIN;
|
ch390_conf.spi_cs_gpio = ETH_CS_PIN;
|
||||||
ch390_conf.spi_sck_gpio = ETH_SCLK_PIN;
|
ch390_conf.spi_sck_gpio = ETH_SCLK_PIN;
|
||||||
ch390_conf.spi_mosi_gpio = ETH_MOSI_PIN;
|
ch390_conf.spi_mosi_gpio = ETH_MOSI_PIN;
|
||||||
@@ -104,6 +136,7 @@ bool initEthernet()
|
|||||||
#if !MESHTASTIC_EXCLUDE_WEBSERVER
|
#if !MESHTASTIC_EXCLUDE_WEBSERVER
|
||||||
createSSLCert(); // For WebServer
|
createSSLCert(); // For WebServer
|
||||||
#endif
|
#endif
|
||||||
|
new concurrency::Periodic("EthConnect", ethNetworkConnectedPoll);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -266,7 +299,7 @@ bool isWifiAvailable()
|
|||||||
|
|
||||||
if (config.network.wifi_enabled && (config.network.wifi_ssid[0])) {
|
if (config.network.wifi_enabled && (config.network.wifi_ssid[0])) {
|
||||||
return true;
|
return true;
|
||||||
#ifdef USE_WS5500
|
#if defined(USE_WS5500) || defined(USE_CH390D)
|
||||||
} else if (config.network.eth_enabled) {
|
} else if (config.network.eth_enabled) {
|
||||||
return true;
|
return true;
|
||||||
#endif
|
#endif
|
||||||
@@ -526,18 +559,18 @@ static void WiFiEvent(WiFiEvent_t event)
|
|||||||
LOG_INFO("Ethernet disconnected");
|
LOG_INFO("Ethernet disconnected");
|
||||||
break;
|
break;
|
||||||
case ARDUINO_EVENT_ETH_GOT_IP:
|
case ARDUINO_EVENT_ETH_GOT_IP:
|
||||||
#ifdef USE_WS5500
|
#if defined(USE_WS5500) || defined(USE_CH390D)
|
||||||
LOG_INFO("Obtained IP address: %s, %u Mbps, %s", ETH.localIP().toString().c_str(), ETH.linkSpeed(),
|
LOG_INFO("Obtained IP address: %s, %u Mbps, %s", ETH.localIP().toString().c_str(), ETH.linkSpeed(),
|
||||||
ETH.fullDuplex() ? "FULL_DUPLEX" : "HALF_DUPLEX");
|
ETH.fullDuplex() ? "FULL_DUPLEX" : "HALF_DUPLEX");
|
||||||
onNetworkConnected();
|
ethNetworkConnectedPending = true;
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case ARDUINO_EVENT_ETH_GOT_IP6:
|
case ARDUINO_EVENT_ETH_GOT_IP6:
|
||||||
#ifdef USE_WS5500
|
#if defined(USE_WS5500) || defined(USE_CH390D)
|
||||||
#if ESP_ARDUINO_VERSION >= ESP_ARDUINO_VERSION_VAL(3, 0, 0)
|
#if ESP_ARDUINO_VERSION >= ESP_ARDUINO_VERSION_VAL(3, 0, 0)
|
||||||
LOG_INFO("Obtained Local IP6 address: %s", ETH.linkLocalIPv6().toString().c_str());
|
LOG_INFO("Obtained Local IP6 address: %s", ETH.linkLocalIPv6().toString().c_str());
|
||||||
LOG_INFO("Obtained GlobalIP6 address: %s", ETH.globalIPv6().toString().c_str());
|
LOG_INFO("Obtained GlobalIP6 address: %s", ETH.globalIPv6().toString().c_str());
|
||||||
#else
|
#elif defined(USE_WS5500)
|
||||||
LOG_INFO("Obtained IP6 address: %s", ETH.localIPv6().toString().c_str());
|
LOG_INFO("Obtained IP6 address: %s", ETH.localIPv6().toString().c_str());
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -22,6 +22,9 @@
|
|||||||
#if HAS_ETHERNET && defined(USE_WS5500)
|
#if HAS_ETHERNET && defined(USE_WS5500)
|
||||||
#include <ETHClass2.h>
|
#include <ETHClass2.h>
|
||||||
#define ETH ETH2
|
#define ETH ETH2
|
||||||
|
#elif HAS_ETHERNET && defined(USE_CH390D)
|
||||||
|
#include "ESP32_CH390.h"
|
||||||
|
#define ETH CH390
|
||||||
#endif // HAS_ETHERNET
|
#endif // HAS_ETHERNET
|
||||||
#include "Default.h"
|
#include "Default.h"
|
||||||
#if !defined(ARCH_NRF52) || NRF52_USE_JSON
|
#if !defined(ARCH_NRF52) || NRF52_USE_JSON
|
||||||
@@ -344,6 +347,9 @@ inline bool isConnectedToNetwork()
|
|||||||
#ifdef USE_WS5500
|
#ifdef USE_WS5500
|
||||||
if (ETH.connected())
|
if (ETH.connected())
|
||||||
return true;
|
return true;
|
||||||
|
#elif defined(USE_CH390D)
|
||||||
|
if (ETH.isConnected())
|
||||||
|
return true;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_WIFI
|
#if HAS_WIFI
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ void variant_shutdown() {}
|
|||||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !MESHTASTIC_EXCLUDE_BLUETOOTH
|
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !MESHTASTIC_EXCLUDE_BLUETOOTH
|
||||||
void setBluetoothEnable(bool enable)
|
void setBluetoothEnable(bool enable)
|
||||||
{
|
{
|
||||||
#ifdef USE_WS5500
|
#if defined(USE_WS5500) || defined(USE_CH390D)
|
||||||
if ((config.bluetooth.enabled == true) && (config.network.wifi_enabled == false))
|
if ((config.bluetooth.enabled == true) && (config.network.wifi_enabled == false))
|
||||||
#elif HAS_WIFI
|
#elif HAS_WIFI
|
||||||
if (!isWifiAvailable() && config.bluetooth.enabled == true)
|
if (!isWifiAvailable() && config.bluetooth.enabled == true)
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ build_flags =
|
|||||||
lib_ignore =
|
lib_ignore =
|
||||||
Ethernet
|
Ethernet
|
||||||
|
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
symlink://E:/dev/embedded/mt/ESP32-CH390-master
|
# renovate: datasource=github-tags depName=ESP32-CH390 packageName=meshtastic/ESP32-CH390
|
||||||
# https://github.com/caveman99/ESP32-CH390.git#c72bcd25f566b3ecd24f26893e70cc9d3211cd68
|
https://github.com/meshtastic/ESP32-CH390/archive/refs/tags/v1.0.1.zip
|
||||||
@@ -33,4 +33,4 @@
|
|||||||
#define ETH_CS_PIN 14
|
#define ETH_CS_PIN 14
|
||||||
#define ETH_INT_PIN 10
|
#define ETH_INT_PIN 10
|
||||||
#define ETH_RST_PIN 9
|
#define ETH_RST_PIN 9
|
||||||
//#define ETH_ADDR 1
|
// #define ETH_ADDR 1
|
||||||
Reference in New Issue
Block a user