Skip to content

feat(syntonia): UV-5R EEPROM clone protocol#18

Merged
forkwright merged 1 commit intomainfrom
p1-02/uv5r-protocol
Mar 16, 2026
Merged

feat(syntonia): UV-5R EEPROM clone protocol#18
forkwright merged 1 commit intomainfrom
p1-02/uv5r-protocol

Conversation

@forkwright
Copy link
Owner

Summary

  • Low-level serial protocol for Baofeng UV-5R family EEPROM clone
  • Programming mode entry, ident, block read/write, full image download/upload
  • Safety: forbidden calibration ranges enforced, retry logic, timeout handling
  • SerialPort trait with MockSerialPort for hardware-free testing

Test plan

  • cargo build && cargo test --workspace
  • cargo clippy --workspace --all-targets -- -D warnings
  • Mock serial tests for all protocol operations (34 tests)
  • Forbidden address write correctly rejected
  • Retry and timeout paths tested

🤖 Generated with Claude Code

@github-actions
Copy link
Contributor

⚠️ Large PR detected — 18 files, 2890 lines changed.

Consider splitting into smaller PRs for easier review. Not a blocker, just a signal.

@forkwright forkwright force-pushed the p1-02/uv5r-protocol branch from eb2c84f to cfe8977 Compare March 15, 2026 15:48
Low-level serial protocol for the Baofeng UV-5R radio family:
- SerialPort trait with HardwareSerialPort (feature-gated) and MockSerialPort
- Programming mode entry with variant-specific magic byte sequences
- Radio identification with 8/12-byte response normalization
- EEPROM block read/write with response header validation
- Full image download (main + aux blocks) and upload (safe ranges only)
- Forbidden calibration address enforcement prevents radio bricking
- Retry logic (3 attempts per block) with timeout handling
- 34 unit tests covering all protocol operations

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@forkwright forkwright force-pushed the p1-02/uv5r-protocol branch from cfe8977 to 4dd15a4 Compare March 16, 2026 14:53
@forkwright forkwright merged commit 9cf06be into main Mar 16, 2026
@forkwright forkwright deleted the p1-02/uv5r-protocol branch March 16, 2026 14:53
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