This is the documentation for the latest development branch of MicroPython and may refer to features that are not available in released versions.

If you are looking for the documentation for a specific release, use the drop-down menu on the left and select the desired version.

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>, ref_clk_mode=<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.

  • ref_clk_mode 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 LAN.OUT or Pin.OUT or True, the clock is driven by the Ethernet controller, if set to LAN.IN or Pin.IN or False, the clock is driven 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=1, ref_clk_mode=Pin.IN)


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.