Skip to content

ethernet library issue with W5500 #7654

Closed
@infrafast

Description

@infrafast

Basic Infos

  • [ x] This issue complies with the issue POLICY doc.
  • [ x] I have read the documentation at readthedocs and the issue is not addressed there.
  • [ x] I have tested that the issue is present in current master branch (aka latest git).
  • [x ] I have searched the issue tracker for a similar issue.
  • If there is a stack dump, I have decoded it.
  • [x ] I have filled out all fields below.

Platform

  • Hardware: ESP-12
  • Core Version: 2.6.3 and also 2.7
  • Development Env: Arduino IDE 1.5
  • Operating System: Windows

Settings in IDE

  • Module: Wemos D1 mini r2
  • Flash Mode:
  • Flash Size: 4MB
  • lwip Variant: v2 Lower Memory
  • Reset Method:
  • Flash Frequency: [40Mhz]
  • CPU Frequency: 80Mhz
  • Upload Using: both OTA and SERIAL
  • Upload Speed: 115200

Problem Description

I am facing an issue with trying to implement a WP5500 an ESP12 module
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 know I should use the the Ethernet library from Arduinom 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/en/latest/libraries.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);

MCVE Sketch

#include <Arduino.h>
#include <Ethernet.h>

byte mac[] = {
  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02
};

void setup() {
if (Ethernet.begin(mac) == 0)
}

void loop() {
 // void
}

Debug Messages

no messages
Debug messages go here



Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions