class LAN – control an Ethernet module

This class allows you to control the Ethernet interface. The PHY hardware type is board-specific.

Example usage:

import network
nic = network.LAN(0)

# now use socket as usual


class network.LAN(id, *, phy_type=<board_default>, phy_addr=<board_default>, phy_clock=<board_default>)

Create a LAN driver object, initialise the LAN module using the given PHY driver name, and return the LAN object.

Arguments are:

  • id is the number of the Ethernet port, either 0 or 1.

  • phy_type is the name of the PHY driver. For most board the on-board PHY has to be used and is the default. Suitable values are port specific.

  • phy_addr specifies the address of the PHY interface. As with phy_type, the hardwired value has to be used for most boards and that value is the default.

  • phy_clock specifies, whether the data clock is provided by the Ethernet controller or the PYH interface. The default value is the one that matches the board. If set to True, the clock is driven by the Ethernet controller, otherwise by the PHY interface.

For example, with the Seeed Arch Mix board you can use:

nic = LAN(0, phy_type=LAN.PHY_LAN8720, phy_addr=2, phy_clock=False)


With a parameter, it sets the interface active if state is true, otherwise it sets it inactive. Without a parameter, it returns the state.


Returns True if the physical Ethernet link is connected and up. Returns False otherwise.


Returns the LAN status.

LAN.ifconfig([(ip, subnet, gateway, dns)])

Get/set IP address, subnet mask, gateway and DNS.

When called with no arguments, this method returns a 4-tuple with the above information.

To set the above values, pass a 4-tuple with the required information. For example:

nic.ifconfig(('', '', '', ''))

Sets or gets parameters of the LAN interface. The only parameter that can be retrieved is the MAC address, using:

mac = LAN.config("mac")

The parameters that can be set are:

  • trace=n sets trace levels; suitable values are:

    • 2: trace TX

    • 4: trace RX

    • 8: full trace

  • low_power=bool sets or clears low power mode, valid values being False or True.

Specific LAN class implementations

On the mimxrt port, suitable values for the phy_type constructor argument are: PHY_KSZ8081, PHY_DP83825, PHY_DP83848, PHY_LAN8720, PHY_RTL8211F.