Bit-Banging Bidirectional Ethernet on a Pi Pico

These days, even really cheap microcontroller boards have options that will give you ethernet or wifi access. But what if you have an original Raspberry Pi Pico board and you really want to MacGyver yourself a network connection? You could do worse than check out this project by [holysnippet] that gives you a bit-banged bidirectional ethernet port using only scrap passive components and software.


This project is similar to one we shared back in August by [kingyo], but differs in that what [holysnippet] has achieved is a fully-functional (albeit only around 7Mbps) ethernet port, rather than a simple UDP transmit device.


The ethernet connection itself is handled by the lwip stack. Connection to the RJ45 socket can be made from any of the Pi Pico pins, provided TX_NEG is followed directly by TX_POS, but the really hacky part is in the hardware.


schematic diagram showing the empirically-determined passive component values required.

Rather than developing hardware that would protect the Pico, this design admits that it “shamefully relies on the Pico’s input protection devices” to limit the ethernet voltages to 3.3V.


You’ll need an isolation transformer from some old ethernet-enabled gear (either standalone or as part of a magnetic jack), but then it’s only resistors and capacitors from there.


There are warnings not to connect this to PoE networks for obvious reasons, and the component layout needs to keep in mind the ~20MHz frequencies involved, but to get this working at all feels like quite a feat.


Normally, there’d be no reason to go ..

Support the originator by clicking the read the rest link below.