Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 2 of 2

Thread: Teensy 4.1 Ethernet: Problem to assign a static IP if DHCP fails

  1. #1
    Junior Member
    Join Date
    May 2021

    Teensy 4.1 Ethernet: Problem to assign a static IP if DHCP fails

    Hello everyone

    I'm trying to get started with the Teensy 4.1 and its built in ethernet capabilities with the NativeEthernet library. I have tried using a static IP and DHCP in two seperate program attempts and both options work great. I'm now trying to first establich a DHCP connection to the network and if that doesn't work the Teensy should use a static IP address.

    #include <SPI.h>
    #include <NativeEthernet.h>
    #include <EEPROM.h>
    //mac address for the Teensy:
    byte mac[] = {...};  //in my code of course i did put a mac address here :)
    //the IP address:
    IPAddress ip;
    // the subnet mask:
    IPAddress subnet(255, 255, 255, 0 );
    //port 23
    EthernetServer server = EthernetServer(23);
    void setup()
      //Serial for testing purposes
      while (!Serial) {
        ; // wait for serial port to connect. Needed for native USB port only
    // start the Ethernet connection and the server:
      if(Ethernet.begin(mac) == 0)
        Serial.println("Failed to configure Ethernet using DHCP");
        // DHCP connection failed, use ip from EEPROM
        ip = IPAddress(,,,;
      // Check for Ethernet hardware
      if (Ethernet.hardwareStatus() == EthernetNoHardware)
        Serial.println("Ethernet Hardware problem with the WizChip :(");
      if (Ethernet.linkStatus() == LinkOFF)
        Serial.println("Ethernet cable is not connected.");
    // start the server
      Serial.print("Using static IP: ");
    //  client = server.available();
    void loop()
    If the DHCP fails and uses a static IP i get following message form Ethernet.localIP() in the serial monitor:

    Failed to configure Ethernet using DHCP
    Using static IP:

    Already checked:
    • EEPROM content is correct
    • Content of the ip variable right before and right after Ethernet.begin(mac,ip); is correct
    • Pinging the Teensy under the assigned IP address didn't work
    • Assigning the numbers directly to the ip variable without the function worked but still gave me nulls in the serial screen

    I tried the code on the Arduino with an ethernet shield and it worked just fine and gave me the assigned IP address instead of nulls.

    Is there anyone with a clue on what I did wrong in my code?
    Thanks in advance for helping.

  2. #2
    Junior Member
    Join Date
    May 2021
    Hello again,
    there is a bugfix for this issue in the new NativeEthernet libraries on Github. Install these libraries in the correct way and everything will work fine.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts