Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Steve Markgraf’s Pico-100BASE-TX project uses the RP2040 or RP2350’s PIO and DMA to transmit 100BASE-TX Ethernet signals and send UDP frames. It is a transmitter-focused project, not a general-purpose Ethernet interface: the implementation handles line coding and frame transmission, while its examples stream generated or sampled data. The project reports throughput of around 11 MByte/s; that is the author’s figure, not an independently verified benchmark.

What “bit-banged” means in this project

Despite the title, this is not simply a CPU repeatedly toggling GPIO pins in software. Pico-100BASE-TX uses the RP2040 or RP2350’s programmable I/O (PIO) to generate the signal, with DMA moving data through the transmission path. The processor still relies on substantial software and hardware coordination, but PIO handles time-critical signal output.

The implementation creates a three-state MLT-3 output pattern on two GPIOs. Before bits become that physical-layer signal, the transmitter must also apply Ethernet’s 4B5B encoding and an 11-bit LFSR scrambler, as well as insert special symbols for frame delimiters. The project says its scrambler lookup table uses around 10 KB of MCU RAM. These steps are why “bit-banging” can understate the engineering involved: GPIO output is only one part of producing a compatible Ethernet transmission.

The repository describes a 125 MHz symbol rate and reports that the project streams data at around 11 MByte/s. Both figures are project-reported; the throughput has not been independently tested here. See the Pico-100BASE-TX repository for the implementation and its author’s notes.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Ethernet/USB HUB HAT Expansion Board for Raspberry Pi 5/4B/3B+/Zero 2W
  • This Raspberry Pi Hub HAT provides more USB capability to your Pi, plus a RJ45 Ethernet port, which is great when you need a stable wired Ethernet connection.(Ethernet / USB HUB HAT for Raspberry Pi, 1x RJ45 Ethernet Port, 3x USB Ports)
  • It can work with various versions of the Pi( Raspberry Pi B+ / 2B / 3B / 3B+ /4B/ Zero / Zero W / Zero WH),and the size of the board is designed to perfectly fit the Zero / Zero W / Zero WH.
  • 1x RJ45 10/100M port, based on the RTL8152B Ethernet chip.;3x USB ports, compatible with USB2.0/1.1;
  • Onboard multi indicators, for monitoring the status of power, Ethernet, and each USB port
  • Operating voltage: 5V. Dimension: 65mm × 30mm. Mounting hole size: 3.0mm.

What data it can transmit

The library reads from a ring buffer and sends the data in UDP frames. The repository includes examples that generate a counter, stream readings from the Pico’s internal ADC, and stream audio from a PCM1802 ADC board at a stated sample rate of 75 kHz. Those are examples described by the project, not independently demonstrated performance results.

That focus matters when deciding whether the project fits. It illustrates a fast, purpose-built UDP transmitter; the repository does not describe it as a complete Ethernet MAC and general network-stack solution for arbitrary applications. If your goal is ordinary network connectivity with broader protocols and features, assess the project against those requirements rather than treating its headline data rate as a substitute for a full networking interface.

Rank #2
PCIe to 2.5G Ethernet Adapter Board (C) for Raspberry Pi 5, RTL8125 2.5GbE RJ45 LAN, PCIe x1 Gen2 16-Pin, Driver-Free Plug and Play, Side-Mount Acrylic Bracket
  • ✔️ DEDICATED 2.5G UPGRADE FOR RASPBERRY PI 5: PCIe to 2.5G Ethernet adapter board (C) adds a true 2.5GbE RJ45 LAN port for Raspberry Pi 5 via the 16-pin PCIe interface, ideal for NAS, router, firewall and home lab network builds.
  • 🍓 HIGH-PERFORMANCE RTL8125 CONTROLLER: Onboard Realtek RTL8125 2.5G Ethernet controller delivers stable 10/100/1000/2500 Mbps network performance with low latency, making this PCIe 2.5G network card perfect for 2.5GbE switches and servers.
  • ⭐ DRIVER-FREE PLUG AND PLAY IN RASP-BERRY PI OS: Fully supported by Rasp-berry Pi OS with no extra driver needed — just connect the PCIe cable, boot up, and enjoy high-speed 2.5G Ethernet without complex configuration.
  • ⚡ 16-PIN PCIE X1 GEN2 CONNECTION & SIDE-MOUNT DESIGN: Uses the native 16-pin PCIe x1 Gen2 interface on Rasp-berry Pi 5, and the included transparent acrylic side-mount bracket keeps this 2.5G Ethernet expansion board low-profile and saves space above the board.
  • 🔧 COMPACT & VERSATILE 2.5G ETHERNET EXPANSION: Simple 5V power via PCIe cable, clean layout and RJ45 status LEDs make this PCIe to 2.5G Ethernet board great for compact NAS enclosures, Pi 5 clusters, edge gateways and other 2.5GbE network projects.

What you need to build it

The upstream project targets RP2040 and RP2350 microcontrollers. Its documented Pico 2 build uses the Raspberry Pi Pico SDK, CMake, and a compiler, and produces UF2 application images. Raspberry Pi’s Pico C/C++ SDK documentation describes the SDK’s programming support and hardware APIs, including PIO for RP-series devices.

  • Microcontroller: an RP2040- or RP2350-based board supported by the project.
  • Build environment: the Pico SDK, CMake, and a suitable compiler, following the repository’s documented setup for the target board.
  • Ethernet connection: GPIO-driven signaling and an Ethernet cable, with an appropriate electrical interface. A LAN8720 breakout is not a required component for this project.

Electrical connection and PoE warning

The project author gives an explicit warning: “Do not connect to any POE capable equipment!” Follow that warning. The repository recommends a pulse transformer with proper matching circuitry, or describes an arrangement using 47 Ω and 470 Ω resistors. It also reports that direct connection from two GPIOs to an old Ethernet cable worked in the author’s experiments with some equipment, while advising that anyone doing so is acting at their own risk.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Ethernet to UART Converter for Raspberry Pi Pico Series,2-CH UART,10/100M Ethernet, Bi-Direction Transparent Data Transmission
  • Standard RPi Pico header, fits Raspberry Pi Pico series
  • Onboard Ethernet to UART transparent transceiver, 2-CH UART, standalone transparent transmission for each channel
  • Onboard jumpers for pin configurations; Embedded Ethernet MAC and PHY layers
  • Bi-direction transparent data transmission between UART and Ethernet;10/100M, full-duplex/half-duplex auto-negotiation Ethernet interface, 802.3-compliant
  • Auto-MDI/MDIX, detect and switch cable type automatically; Supports DHCP auto-obtained IP and DNS domain access

Those notes are not a universal wiring recipe or a safety certification. The cited material does not establish that the suggested resistor arrangement is suitable for every cable, device, or installation. In particular, do not infer that it protects against PoE or makes connection to PoE-capable equipment safe. Treat the physical interface as a design requirement, not an incidental detail of compiling the code.

How this differs from the Pico RMII-and-LAN8720 approach

Pico-100BASE-TX and the Raspberry Pi guide about software Ethernet MAC over RMII describe different architectures. The Pico-100BASE-TX project drives the signaling from GPIOs using PIO and DMA and describes UDP transmission. The RMII design uses an external PHY, such as a LAN8720, alongside a PIO/DMA software MAC and lwIP. In that setup, the PHY is part of the Ethernet interface; it is not required by Pico-100BASE-TX.

Rank #4
Sale
GeeekPi M.2 NVMe SSD Plus 2.5G Ethernet Adapter for Raspberry Pi 5, W01 U2500 Hat with NVMe SSD Expansion, USB 2.5G Network Port, GPIO Header, Support M.2 NVMe M-Key 2230/2242/2260/2280 SSD
  • Designed for Raspberry Pi 5 --- Dedicated to the latest single-board computer, the Raspberry Pi 5.
  • NVMe Capability --- Supports installing NVMe (M-key) drives in M.2 format sizes 2230,2242,2260 and 2280, extra custom CNC SSD mount screw, no soldering required.
  • PCIe Support--- PCIe x1 interface in both Gen2 & Gen3 standards.
  • RealtekRTL8156BG Chipset --- Powered by the reliable RealtekRTL8156BG chipset, this HAT offers seamless integration with your Raspberry Pi 5, delivering high-speed data transfer and networking performance.
  • Energy-Efficient Operation --- Designed for energy efficiency, the network card helps reduce power consumption without compromising on performance, making it a sustainable choice for your network setup.

Raspberry Pi’s guide, published on March 24, 2021, said its described RMII implementation ran at a 50 MHz system clock and was configured for 10 Mbps because of a transmit issue at 100 Mbps. That is a historical limitation of the guide’s implementation, not evidence about the current state of every RMII software design. Read the Raspberry Pi RMII guide for that separate design.

Approach Architecture and use Important qualification
Pico-100BASE-TX GPIO-driven PIO/DMA transmitter; repository describes UDP frame streaming. Targets RP2040 and RP2350. The author reports around 11 MByte/s, not independently verified here. Requires careful electrical interfacing.
Raspberry Pi’s RMII guide PIO/DMA software MAC with lwIP and an external RMII PHY such as LAN8720. The March 24, 2021 guide described a 50 MHz system clock and a 10 Mbps configuration because of a transmit issue at 100 Mbps; this does not establish current limits for all RMII implementations.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

When this project is a good fit

  • You want to study or build a PIO/DMA-based Ethernet transmitter for UDP data.
  • Your application fits the project’s transmission model and you can work within its examples and library.
  • You are prepared to evaluate the cable-side electrical interface and heed the explicit PoE warning.
  • You can build for a supported RP2040 or RP2350 board using the documented SDK-based toolchain.

Choose a different architecture if you need an external PHY, a broader Ethernet/network-stack feature set, or a conventional, fully specified interface for a particular product. The project’s reported throughput alone does not establish suitability for those needs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Quick Recap

Bestseller No. 1
Ethernet/USB HUB HAT Expansion Board for Raspberry Pi 5/4B/3B+/Zero 2W
Ethernet/USB HUB HAT Expansion Board for Raspberry Pi 5/4B/3B+/Zero 2W
Onboard multi indicators, for monitoring the status of power, Ethernet, and each USB port; Operating voltage: 5V. Dimension: 65mm × 30mm. Mounting hole size: 3.0mm.
$19.19
Bestseller No. 3
Ethernet to UART Converter for Raspberry Pi Pico Series,2-CH UART,10/100M Ethernet, Bi-Direction Transparent Data Transmission
Ethernet to UART Converter for Raspberry Pi Pico Series,2-CH UART,10/100M Ethernet, Bi-Direction Transparent Data Transmission
Standard RPi Pico header, fits Raspberry Pi Pico series; Onboard jumpers for pin configurations; Embedded Ethernet MAC and PHY layers
$17.30
Bestseller No. 5
Best Value
for Raspberry Pi Pico Network Communication Ethernet to UART Converter with 10/100M Ethernet Supports 2-CH Ethernet to UART Data Transparent Transmission @XYGStudy (Pico-ETH-CH9121)
  • Part Number: Pico-ETH-CH9121
  • Ethernet to UART converter for Raspberry Pi Pico, 10/100M Ethernet, enabling network communication through UART
  • Onboard Ethernet to UART transparent transceiver, 2-CH UART, standalone transparent transmission for each channel
  • Standard Raspberry Pi Pico header, supports Raspberry Pi Pico series
  • Embedded Ethernet MAC and PHY layers. Bi-direction transparent data transmission between UART and Ethernet. 10/100M, full-duplex/half-duplex auto-negotiation Ethernet interface, 802.3-compliant

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.