This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Summary
AI summaryUpdates What's new since v0.2.0, Highlights, and None across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| 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 theDMA_IRQ_0handler 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, themss-clampworkaround 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-phyfeature: the smoltcpphy::Deviceadapter 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
About Pico 10base T Rs
All releases →Beta — feedback welcome: [email protected]