Skip to content

Pico 10base T Rs

v0.3.0 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

Published 1mo Infrastructure
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Summary

AI summary

Updates What's new since v0.2.0, Highlights, and None across a mixed release.

Changes in this release

Feature Low

Package now provides a library crate exposing the 10BASE-T transport core as Cargo dependency

Package now provides a library crate exposing the 10BASE-T transport core as Cargo dependency

Source: llm_adapter@2026-06-11

Confidence: high

Feature Low

Adds narrow `cyw43-phy` feature exposing smoltcp `phy::Device` adapter over the cyw43 radio

Adds narrow `cyw43-phy` feature exposing smoltcp `phy::Device` adapter over the cyw43 radio

Source: llm_adapter@2026-06-11

Confidence: high

Performance Medium

RX bulk throughput improves from 96 KB/s to ~310 KB/s (~3×)

RX bulk throughput improves from 96 KB/s to ~310 KB/s (~3×)

Source: llm_adapter@2026-06-11

Confidence: high

Full changelog

pico-10base-t-rs is a software 10BASE-T Ethernet NIC and wireless router for the Raspberry Pi Pico 2 W, on the RP2350's dual Hazard3 RISC-V cores in pure no_std Rust (no embassy-rp).

What's new since v0.2.0

RX bulk throughput: 96 → ~310 KB/s at stock MTU (~3×)

Two findings, three commits:

  • ACK pacing (31f538d, df9d067) — the baseline's 27–33 % "FCS fail" under inbound bulk was largely delayed-ACK × tail-loss-probe collisions on the half-duplex link, not decode error. Immediate ACKs (set_ack_delay(None)) + a 2-segment advertised window lifted RX-of-bulk 96 → ~200 KB/s.
  • The "decode cliff" root cause (212662d) — what looked like a decoder quality ceiling above ~1 kB on-wire was DMA-starved sample loss: running the full Manchester decode inside the DMA_IRQ_0 handler could overrun the 2.18 ms half-buffer period, leaving the DMA un-rearmed → PIO FIFO overflow → silently truncated frames. The pipeline is now split: the IRQ only captures each filled half into a 6-slot image ring and re-arms in bounded time; core 1 decodes in thread context. Full-MTU inbound now decodes at ~0.2 % fail, the mss-clamp workaround is obsolete, and the old sustained-full-MTU wedge stopped reproducing (the hardware watchdog stays as a backstop).

The transport is now a library crate

The package is lib + bin (03e2e47): src/lib.rs exposes the 10BASE-T transport core (eth_tx/eth_rx/eth_rx_dpll/eth_mac, manchester, crc, plus the Hazard3 core-1 launch, the picotool USB reset interface, and PIO helpers) so other projects can take it as a Cargo dependency instead of vendoring files. The router application in src/main.rs is the in-tree consumer; pico-remote-probe (a network-attached SWD debug probe) is the first external one.

  • New narrow cyw43-phy feature: the smoltcp phy::Device adapter over the cyw43 radio (cyw43 + embassy-net-driver only — no executor stack) for consumers that bring their own runtime.
  • All experiment/feature flags unchanged; the default, NIC, and router binaries build as before.

Docs

README + docs/performance.md updated for the 2026-06 RX results; README repo layout reflects the lib/bin split.

Highlights

  • Bit-bang 10BASE-T TX and RX (PIO + DMA + an edge-tracking DPLL Manchester decoder) exposed as a smoltcp phy::Device.
  • --features router: cyw43 Wi-Fi AP + L3 forwarding + NAPT between a Wi-Fi LAN and the 10BASE-T WAN.
  • Measured performance, limitations, and a full engineering log in the README + docs/.

License: MIT OR Apache-2.0.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Pico 10base T Rs

Get notified when new releases ship.

Sign up free

About Pico 10base T Rs

All releases →

Beta — feedback welcome: [email protected]