Skip to content

Add FRED programming via Z21 LAN DISPATCH_ADDR - #4

Merged
keskad merged 4 commits into
mainfrom
feat/fred-z21-programming
Aug 20, 2026
Merged

Add FRED programming via Z21 LAN DISPATCH_ADDR#4
keskad merged 4 commits into
mainfrom
feat/fred-z21-programming

Conversation

@keskad

@keskad keskad commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add minimal Z21 LAN client (wp-link/z21): framing, serial probe, LAN_LOCONET_DISPATCH_ADDR, mDNS _z21._udp plus UDP broadcast discovery on 21105/21106.
  • Add fred driver (one DCC address 1..=10239, no Wi‑Fi/throttle server) and runtime path that programs over UDP without joining a Soft-AP.
  • Expose scan --mode z21, relax program CLI flags for fred, fake UDP Z21 tests, and driver/docs updates.

Test plan

  • cargo test --workspace in wireless-programmer
  • wireless-programmer scan --mode z21 against a physical Z21 on the layout LAN
  • wireless-programmer program --driver fred --key host:port --roster-file … with FRED in LocoNet jack
  • Confirm dispatch errors map to dispatchFailed / z21NoLocoNet / noAck as documented

Introduce wp-link Z21 client (mDNS _z21._udp plus UDP serial probe),
driver fred (one DCC address, no Soft-AP), scan --mode z21, and runtime
UDP dispatch without joining a programming AP.

Co-authored-by: Cursor <cursoragent@cursor.com>
keskad and others added 3 commits August 20, 2026 20:24
Resolve hostnames via async DNS, send LAN_LOGOFF on dispatch errors,
preserve manually cached Z21 keys across rescans, map unreachable to a
stable job detail, and add runtime tests for noAck and z21NoLocoNet.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@keskad
keskad merged commit b4f2736 into main Aug 20, 2026
4 checks passed
@keskad
keskad deleted the feat/fred-z21-programming branch August 20, 2026 18:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant