Raspberry Pi Pico Bit-Bangs 100 Mbit/S Ethernet

elektormagazine.com

249 points by chaosprint a day ago


ggm - 20 hours ago

this is classic computing wheel of life stuff (Bell, Mudge, MacNamara wrote that up in the 70s)

* first you do it in the cpu * then you do it in a dedicated card off the bus * then you find the FPGA or whatever too slow, so you make the card have it's own CPU * then you wind up recursing over the problem, implementing some logic in a special area of the cpu, to optimise its bus to the other bus to ...

I expect to come back in 10years and find there is a chiplet which took the rpi core, and implements a shrunk version which can be reprogrammed, into the chiplet on the offload card, so we can program terabit network drivers with a general purpose CPU model.

ChuckMcM - a day ago

Fun stuff. You kids don't know how lucky you are to have really capable MCU's for just a few bucks. :-)

It is kind of the ultimate "not a TOE[1]" example yet.

[1] TOE or TCP Offload Engine was a dedicated peripheral card that implements both the layer 1 (MAC), layer 2 (Ethernet), and layer 3 (IP) functions as a co-processing element to relieve the 'main' CPU the burden of doing all that.

lukeinator42 - 19 hours ago

Something related to this that is really cool is directly reading from PDM microphones using PIO: https://github.com/ArmDeveloperEcosystem/microphone-library-.... This shouldn't be called bit-banging though if it's using PIO.

eqvinox - 16 hours ago

This is only talking about TX, presumably it can't receive? That'd be the hard part...

sherinjosephroy - 11 hours ago

Pretty wild that they got 100 Mbps Ethernet working on a Pico. Total overkill, but that’s what makes it fun — pure hacker energy.

junga - 8 hours ago

> Raspberry Pi Pico Bit-Bangs 100 Mbit/S Ethernet

Per Siemens? I'd prefer Ohm!

rasz - 16 hours ago

Great hack from very talented hacker. Steve Markgraf is the author of High Speed Data Acquisition over HDMI https://github.com/steve-m/hsdaoh Capturing raw data using super cheap USB3 HDMI Video Capture dongles. Up to 175MB/s with Pico2 as the sender https://github.com/steve-m/hsdaoh-rp2350

Sadly 100Mbit might be the limit for bitbanging ethernet. While 1Gbit uses easily reachable 125MHz clock it also does full duplex requiring echo cancellation and I dont see an easy way around external PHY. The next PICO challenge is implementing GRMII PHY support for that sweet $1 RTL8211 1Gbit. I havent seen that done yet.

majke - 9 hours ago

I'm confused. Why is there gnuradio on the screen? The RPI seems to have power (micro usb), TX (two wires to the ethernet port on the laptop), and ... what is the third thing?

unixfg - a day ago

Would this have been possible without PIO?

userbinator - 18 hours ago

and must not be connected to PoE-enabled hardware.

I assume passive PoE; or does it also happen to look like a real PoE PD and trick the PSE into turning on?

amelius - 12 hours ago

But how much juice is left to do useful stuff?

Dwedit - 18 hours ago

People have bit-banged out analog NTSC and PAL video signals before.

brcmthrowaway - 20 hours ago

How does PIO compare to Cypress PSoC?

varispeed - 5 hours ago

I wish something like Pi Pico existed but with 1GHz clock, DDR3 memory interface and PCIe and few dozens of GPIO.

karlkloss - 15 hours ago

Or you could just buy an ESP32 board at about the same price, which already has an integrated Ethernet MAC (besides WiFi).

But where would be the fun in that?

hackingonempty - 21 hours ago

PIO is great but the competition has working silicon and SDK for all of the common peripherals while RP gives you crappy example code. Want to connect to an audio codec with I2S? Almost every MCU has this built in but for RP2040/RP2350 you'll have to roll your own production quality version from a demo that only shows how to send. Years after release.