Skip to content

Latest commit

 

History

History
232 lines (136 loc) · 8.91 KB

ArduinoNetLibsTestReport.md

File metadata and controls

232 lines (136 loc) · 8.91 KB

Testing compatibility of WiFi and Ethernet object

WiFi

The WiFi tests are WiFiTest and WiFiScanNetwork from the NetApiHelpers library. Tested are functions of the WiFi object.

WiFiNINA

With listed pull requests applied, only issue is the reversed macAddress and BSSID for compatibility with the older Arduino WiFi libraries.

pull requests:

WiFi101

With listed pull requests applied, remaining issues are

  • Doesn't have setDNS(). It is not simple to add it.
  • Requires WiFi.end() to repeat begin. With WiFi.disconnect() next begin hangs.
  • reversed ordering of bytes returned by macAddress, BSSID and BSSID(n) for compatibility with the first Arduino WiFi library

pull requests:

WiFiS3

All problems discovered with the test were solved.

pull requests:

WiFiEspAT

Issues are solved in version 2.

Issues:

  • WiFi.disconnect() clears static IP and config(0) doesn't
  • reversed macAddress and BSSID for compatibility with Arduino WiFi libraries.

Ethernet

The test is LegacyEthernetTest from the NetApiHelpers library. Tested are functions of the Ethernet object.

Ethernet

With listed pull requests applied, remaining minor issues is that it doesn't have Ethernet.end()

pull requests:

EthernetENC

All problems discovered with the test were solved.

STM32Ethernet

Issues:

  • MACAddress is a setter ! (issue)

Minor issues:

  • doesn't have hardwareStatus
  • doesn't have setHostname
  • doesn't have end()
  • doesn't have hostByName
  • doesn't have setDNS, dnsIP(n), macAddress
  • doesn't have Ethernet.h

pull requests:

  • doesn't have setDnsServerIP PR

QNEthernet

Minor issues:

  • doesn't have Ethernet.h
  • doesn't have setDNS, dnsIP(n)

LwIP WiFi + Ethernet

The WiFi tests are WiFiTest and WiFiScanNetwork. The Ethernet tests are LegacyEthernetTest and ModernEthernetTest. Tested are functions of the WiFi and Ethernet object.

ESP8266 WiFi

Differences:

  • begin is async. status = WiFi.waitForConnectResult(); can be used to wait

pull requests:

ESP8266 Ethernet

LwipIntfDev implements the modern Ethernet API draft. EthernetCompat wraps LwipIntfDev for legacy Ethernet API.

Minor issues:

  • doesn't have hostByName

pull requests:

ESP32 WiFi

Differences:

  • begin is async. status = WiFi.waitForConnectResult(); can be used to wait
  • ScanNetworks - encryptionType enum has different constants than other WiFi libraries

pull requests:

  • method setDNS
  • BSSID with parameter
  • config has wrong ordering of parameters and doesn't have auto configuration for DNS, gateway, net mask for static IP (PR)
  • disconnect is asynchronous. Without waiting for status change after it, it can interfere with immediately following begin (PR)

ESP32 Ethernet

Implements the modern Ethernet API draft.

Issues:

  • static IP is not applied with config invoked before begin(issue)
  • doesn't have linkStatus,status, hostByName, setDNS
  • config has wrong ordering of parameters, no default auto values
  • doesn't return to DHCP with config(INADDR_NONE)
  • end() clears static IP (issue)

Mbed Core WiFi

Issues:

  • doesn't have setHostname. Mbed doesn't support hostname
  • reversed ordering of bytes returned by macAddress, BSSID and BSSID(n) for compatibility with older Arduino WiFi libraries

pull requests:

Mbed Core Ethernet

Implements the legacy Ethernet API.

Issues are

  • doesn't have setHostname. Mbed doesn't support hostname
  • can't return to DHCP after using static IP PR
  • MACAddress` returns reversed ordering of bytes issue
  • DNS server IP getters fix

C33 WiFi (WiFiC3)

With listed pull requests applied, remaining issues are

  • hostname is not sent with DHCP request
  • doesn't have WiFi.h
  • firmwareVersion() returns a constant

pull requests:

C33 Ethernet

With listed pull requests applied, remaining minor issues are

  • doesn't have Ethernet.end()
  • doesn't have Ethernet.h

pull requests:

RP2040 Wifi

All problems discovered with the test were solved.

RP2040 LwipIntfDev

LwipIntfDev implements the modern Ethernet API draft. EthernetCompat wraps LwipIntfDev for legacy Ethernet API

All problems discovered with the test were solved.