A Rust firmware for the Raspberry Pi Pico W (RP2040) that brings a packet-radio node to feature parity with the C# node host in m0lte/packet.net, built on the AX.25 v2.2 SDL state machine from m0lte/ax25sdl.
Four capabilities, mirroring the C# node:
- AXUDP — AX.25-over-UDP, node↔node over WiFi (BPQ-compatible AXIP/AXUDP).
- KISS-over-TCP — to net-sim (the emulated RF channel) over WiFi.
- KISS-over-serial — to a NinoTNC, over a direct UART link.
- Telnet command console over WiFi.
docs/PLAN.md is the living plan: architecture, the module breakdown mapping to the four capabilities, the SDL integration story, the hands-free dev cycle (build → flash via probe-rs → defmt/RTT logs), the host-side test strategy, the package-approval gate, and the "when the hardware arrives" checklist + blockers.
crates/ax25-node-core— portable,no_std-able, zero-dependency logic (KISS, AXUDP, AX.25 codec, CRC, console, SDL glue). Host-tested withcargo testtoday.crates/ax25-node-fw— the thin RP2040 / Embassy firmware binary (standalone, workspace-excluded; built once the embedded toolchain is in place).
cargo test # host unit tests (default std feature)
cargo build -p ax25-node-core --no-default-features --features alloc # prove the no_std posturecargo build --manifest-path crates/ax25-node-fw/Cargo.toml --release
cargo run --manifest-path crates/ax25-node-fw/Cargo.toml --release # flash + stream defmt over SWD