Now You Can Add Ethernet Networking to Your Raspberry Pi Pico

Now You Can Add Ethernet Networking to Your Raspberry Pi Pico

Although Raspberry Pi Pico has many unique, impressive features, one thing it has been lacking is networking capability. But not anymore!

With all the growing demand for networking, Pi enthusiasts knew it would only be a matter of time before this request was fulfilled. True enough, Pi Day weekend witnessed the inclusion of both Ethernet PHY and USB Ethernet for both the RP2040 and Pico.

The added PHY support is the brainchild of Sandeep Mistry, who also authored the Arduino LoRa library and the bleno and noble Node.js libraries, among others. Based on the IwIP stack, this new feature leverages the dual-core, DMA, and PIO features of the RP2040 by creating a software-based Ethernet MAC stack. Currently supported by the project are the Microchip LAN8720 and other Ethernet PHY modules that are built around RMII.

With LAN8270 breakout boards available from some international retailers for as little as $1.50, you can now connect to the Internet not only easily but rather cheaply. Here at Vilros, we’re proud to be an official reseller of Raspberry Pi products, one of only a few in North America that offer the Raspberry Pi Pico, and you can buy Pico from us for just $4. Amazing cutting-edge tech for such a low cost!

 

Breadboard Wirings 

Unfortunately, the cheapest and most common LAN8720 breakout isn’t the most breadboard-friendly option out in the market. So, you’ll probably have to grab some of those male-to-female jumper wires with the breadboard before you’re ready to get started.

To get set up, you’ll need to wire your Pico to the breakout board. You should find that the board is well-labeled with the top row of breakout pins corresponding to the left-hand label. Here’s is how to map out the pins of your Pico with the RMII-based LAN8720 breakout board:

LAN8720 Breakout

RP2040

Pico

RX0

GP6

Pin 9

RX1 (RX0 + 1 )

GP7

Pin 10

CRS (RX0 + 2)

GP8

Pin 11

TX0

GP10

Pin 14

TX1 (TX0 + 1)

GP11

Pin 15

TX-EN (TX0 + 2)

GP12

Pin 16

MDIO

GP14

Pin 19

MDC

GP15

Pin 20

nINT / RETCLK

GP20

Pin 26

VCC

3V3 (OUT)

GND

GND

Pin 38

 

**Note: for the RP2040, these are the library default pins, which can be changed via software.

 

Limitations

You should be aware, the current network add-on implementation does have some limitations. Using the reference clock of the RMII modules, the RP2040 will run underclocked to only 50 MHz. Compiling the IwIP stack with NO_SYS also means neither the Socket API nor the Netcon API will be enabled. Lastly, there is the 10 Mbps limit with the link speed because of the current issue with transmission at 100 Mbps.

 

Your Next Steps

The example developed by Sandeep utilized the IwIP web server, but there are still many instances of library applications that enthusiasts can use and modify according to their requirements including MQTT and TFTP example applications. Best of all, IwIP is just another TCP/IP stack – which means anything that can be done over TCP can now be done from the Raspberry Pico!

If oy need more Pico development support, you can always check out the official Raspberry Pi forums. Unofficially, there’s also a highly active Discord server where many enthusiasts hang out.

Also, if you have documentation feedback, just post it to the Github pico-feedback repository as an Issue. Additionally, you can find other useful links and all of the necessary documentation on the Getting Started page.

If you try out the new ethernet networking with your Raspberry Pi Pico, our team here at Vilros would love to know what you think!

And to find out more news and updates regarding your favorite products from Raspberry Pi and Arduino, don’t forget to check out more articles here on our Vilros blog!

Leave a comment

* Required fields

Please note: comments must be approved before they are published.

x