sparkfun / SparkFun_RTK_Everywhere_Firmware

Centimeter precision GPS/GNSS using L1/L2/L5 signals broadcast over Bluetooth, WiFi, and Ethernet.
http://docs.sparkfun.com/SparkFun_RTK_Everywhere_Firmware/
Other
9 stars 6 forks source link

Checklist / minimum requirements for Ethernet on EVK #289

Open PaulZC opened 1 month ago

PaulZC commented 1 month ago

This issue is to capture the minimum requirements for Ethernet on the EVK, and provide a "Done" & "Tested" checklist.

Background:

At the time of writing, EVK W5500 Ethernet functionality is provided by the standard Arduino Ethernet Library 2.0.2. Configure-Via-Ethernet uses the SparkFun_WebServer_ESP32_W5500; the hardware needs to be restarted in a dedicated Configure-Via-Ethernet mode as the WebServer does not play nicely with Arduino SPI or Interrupts. Meanwhile, Espressif have been busy and have added dedicated Arduino support for the W5500 on SPI - but only in arduino-esp32 >= v3.0.0. We need to decide if we should upgrade the core to v3.0.0 so we can take advantage of the much-improved W5500 support (interrupt support; larger packets; ability to access microSD over SPI while configuring over Ethernet; seamless web serving, making the SparkFun_WebServer_ESP32_W5500 obsolete and removing the need to restart into the dedicated Configure-Via-Ethernet mode). This checklist will inform that decision.

Checklist:

Last update: May 16th 17:50 BST

Feature Required Done Tested
DHCP
Fixed IP
Configure-Via-Ethernet
NTP Server
PointPerfect Get Keys
PointPerfect Corrections via MQTT
NTRIP Client
NTRIP Server
TCP Client
TCP Server
UDP Server

✔❌

PaulZC commented 1 month ago

I think I've answered my question about whether we need to upgrade to v3.0.0...

pointperfectUpdateKeys uses WiFiClientSecure to manage the MQTT certificates etc.. For Ethernet, if we upgrade to v3.0.0 we can continue to use WiFiClientSecure - the new arduino-esp32 Ethernet (ETH.h) inherits all of the WiFi functionality, including ClientSecure. If we don't upgrade, we will need to bolt a secure MQTT layer on top of Arduino Ethernet and we'll end up in a big old mess.

For Cellular, the LARA-R6 looks after the secure connection. We can enhance the network layer so it: uses WiFiClientSecure for both WiFi and Ethernet; adds a new layer for the LARA which calls setSecurityManager, configSecurityProfileString, setMQTTserver, setMQTTsecure, etc..

Additionally, the KEYS states are hardwired to WiFi. We need to change this so they use the network layer, making it possible to update the keys over Ethernet and Cellular too...

nseidle commented 1 week ago

Since we've migrated to v3, I thought an updated list would be good.

Checklist:

Last update: June 26th

Feature Required Done Tested
DHCP
Fixed IP
Configure-Via-Ethernet
NTP Server
PointPerfect Get Keys
PointPerfect Corrections via MQTT
NTRIP Client
NTRIP Server
TCP Client
TCP Server
UDP Server

✔❌

PaulZC commented 2 days ago

NTP Server - done and tested (with #404) UDP Server - done and tested (with #405)

Checklist:

Last update: July 5th

Feature Required Done Tested
DHCP
Fixed IP
Configure-Via-Ethernet
NTP Server
PointPerfect Get Keys
PointPerfect Corrections via MQTT
NTRIP Client
NTRIP Server
TCP Client
TCP Server
UDP Server

✔❌

PaulZC commented 1 day ago

TCP Server and Client - done and tested (with #408)

Firmware update via Ethernet - done and tested (with #410)

TO DO: retest EVK on WiFi - just to make sure we haven't broken anything! (See below)

Checklist:

Last update: July 6th

Feature Required Done Tested
DHCP
Fixed IP
Configure-Via-Ethernet
NTP Server
PointPerfect Get Keys
PointPerfect Corrections via MQTT
NTRIP Client
NTRIP Server
TCP Client
TCP Server
UDP Server
Firmware update from menu
Firmware update from Config-Via-Eth

✔❌

PaulZC commented 1 day ago

WiFi Testing:

Testing the Combined branch on EVK:

Disconnect Ethernet Factory reset - to ensure Ethernet/WiFi Failover is enabled and PP cert and private key are deleted Provide credentials for one WiFi network Verify the following:

Firmware update from menu over WiFi works with #411 Firmware update from web config (AP and STN/WiFi) over WiFi works with #412

Last update: July 7th

Feature Required Test Result
Configure-Via-WiFi AP
Configure-Via-WiFi STN
PointPerfect Get Keys
PointPerfect Corrections via MQTT
NTRIP Client
NTRIP Server
TCP Client
TCP Server
UDP Server
Firmware update from menu
Firmware update from Config-Via-WiFi (STN / WiFi mode)
Firmware update from Config-Via-WiFi (AP mode)

✔❌