Bit banged 100 MBit/s Ethernet transmission on RPi Pico
2 days ago
- #FastEthernet
- #PIO
- #RP2040
- Library enables streaming data at ~11 Mbyte/s from RP2040/RP2350 MCUs using PIO for 100 Mbit Fast Ethernet.
- Warning: Do not connect to POE-capable equipment; use a pulse transformer or old Ethernet switch for safety.
- Implements 100BASE-TX with MLT-3 encoding, scrambling, 4B5B line code, and 125 MHz symbol rate via PIO side-set.
- Scrambler uses an 11-bit LFSR with taps at 11th and 9th bits, pre-computing a 10 KB LUT for efficiency.
- 4B5B encoding uses a 256-entry LUT for byte-to-symbol conversion, including special symbols for frame start/end.
- Build instructions provided for Pico2, requiring pico-sdk and generating a UF2 file for deployment.
- Includes libpico100basetx for core functionality and example apps: counter streaming, ADC data, and PCM1802 audio at 75 kHz.
- Developed by Steve Markgraf, inspired by hsdaoh-rp2350.