Repository navigation
Add Icom ID-51 Plus support via microSD (#50) - #155
Merged
Merged
Conversation
The radio saves and loads one .icf on its card (MENU > SD Card > Save / Load Setting > ALL), so the export builds a new SetYYYYMMDD_NN.icf from the newest file the radio saved: 500 memories, lists as banks A-Z, and 241 menu settings including all eight D-PRS items. The radio's own file is never modified. - radios/icom_id51/: layout (CHIRP's id51plus map, checked against the radio's file and CS-51PLUS), memory (the ID-5100's 49-byte record, this radio's 5 kHz-first multiplier and step table), settings (table and schema generated from CS-51PLUS measurements). - radios/icom_card.rs: the .icf card-folder rules shared by the ID-52 and ID-51. - SK::EnumBits for a multi-bit field inside a byte (ATT(AM)); ID-5100 settings helpers take per-radio ApplyRules. - Exporters can return notes (export_noting / export_settings_noting), so a setting the encoder declines reaches the report. A driver can mark a frequency unstorable, so channel_fit excludes 8.33 kHz airband channels on the ID-51 with a reason. Hardware ladder passed on an ID-51 Plus 50th Anniversary: identity copy, one-field rename (#CD), full 50-memory codeplug in two banks, band probe (108 AM / 173.995 / 380 / 478.995 / 2 m / 70 cm), settings spot check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #50.
What
Icom ID-51 Plus (and the 50th Anniversary edition) programmed from its own microSD card, the ID-52's arrangement. The radio saves and loads one
.icf(MENU › SD Card › Save / Load Setting › ALL). The export builds a newSetYYYYMMDD_NN.icffrom the newest file the radio saved, so the operator's own file is never modified.id51plusmap, checked against the radio's own file and Icom's CS-51PLUS for every memory. Uses the ID-5100's 49-byte record, with this radio's multiplier rule (5 kHz first) and step table.33900001) and the Plus2 (33900003) are refused by name.Shared changes
radios/icom_card.rs: the.icfcard-folder rules now shared by the ID-52 and ID-51. Behaviour is unchanged, but "newest file" now checks files newest-first.SK::EnumBits: an option list inside part of a byte, for ATT(AM).ApplyRules.export_noting/export_settings_noting: a setting the encoder declines now reaches the write report as a note.RadioDriver::unstorable_frequency:channel_fitexcludes a channel the radio's memory cannot hold. The ID-51 uses it for 8.33 kHz airband channels.Verified
#CDchecksum)#[ignore]d tests inicom_id51/real_file.rs): the file round-trips byte for byte, and all 500 records re-encode identically. The 87 memories re-encode from the channels they describe, and the radio's own settings re-apply with zero bytes moved.npm run ciis green locally (906 tests, clippy).Not verified
🤖 Generated with Claude Code