- Thu Oct 15, 2020 3:50 am
#89109
I am facing an issue with trying to implement a WP5500 an ESP12 module. This emai thread was very usefull.
The business case is that I need a very small scale device having both WIFI and ethernet connectity because of mechanical and other constraints.
As far as I undrestood I should use the the Ethernet library which I tried.
However looks like the implementation of this library for the ESP8266 is a bit behind other board as it does't allow to for instance use CS pin (using init method) and lacks a few other method like EthernetLinkStatus
Configuration as following:
- ESP8266 IDE package: 2.6.3 (also tested with latest 2.7.x)
- ESP8266 model: D1 mini pro noname (wemos like)
- pinout as following:
D0 GPIO16 4
D1 GPIO5 20
D2 GPIO4 19 CS
D3 GPIO0 18
D4 DGPIO2 19
D5 GPIO14 5 SCLK
D6 CPIO12 6 MISO
D7 GPIO13 7 MOSI
D8 GPIO15 16
I kept D5,D6,D7 as the standard SPI config (
https://arduino-esp8266.readthedocs.io/ ... s.html#spi) and only use D2 as CS
Header of ethernet.h from last github repo:
https://github.com/arduino-libraries/Ethernet static int maintain();
static EthernetLinkStatus linkStatus();
static EthernetHardwareStatus hardwareStatus();
static void begin(...);
static void init(uint8_t sspin = 10);
static void MACAddress(uint8_t *mac_address);
static IPAddress localIP();
static IPAddress subnetMask();
static IPAddress gatewayIP();
static IPAddress dnsServerIP() { return _dnsServerAddress; }
void setMACAddress(const uint8_t *mac_address);
void setLocalIP(const IPAddress local_ip);
void setSubnetMask(const IPAddress subnet);
void setGatewayIP(const IPAddress gateway);
void setDnsServerIP(const IPAddress dns_server) { _dnsServerAddress = dns_server; }
void setRetransmissionTimeout(uint16_t milliseconds);
void setRetransmissionCount(uint8_t num);
etc...
Header of ethernet.h from ESP8266 board (for arduino IDE 1.5):
only:
void begin(...);
int maintain();
IPAddress localIP();
IPAddress subnetMask();
IPAddress gatewayIP();
IPAddress dnsServerIP();
I tried to :
- use the ESP8266 native library from the package "as is" but the program is just pending at
if (Ethernet.begin(mac) == 0)
and never continues...(no reset no errors)
- force usage of the most recent library but when compiling I get followinging error message. I could try to but I am a bit afraid that by doing that I will pull a things that will never end:
W5100.setSubnetMask(subnet._address.bytes);
Thanks a lot for your help