Repository navigation
Releases: djsincla/IC-905_SEND
Release list
v1.19
Home Assistant MQTT auto-discovery. The service now publishes ~30 retained HA discovery JSON messages on every (re)connect, so HA's MQTT integration auto-creates a complete IC-905 SEND device with all entities — sensors (band, freq, sub-VFO band/freq, power, status), binary sensors (TX, split, preamp, atten), 6 relay switches with close/open mapped to ic905/cmd/relay/, 6 per-relay '→ Auto' buttons, 6 per-relay mode sensors, and global 'All → Auto / Manual' buttons. All under one device card with mdi icons and matching sw_version. Adding new fields later (e.g. AGC) is a one-line addition; HA picks them up automatically.
New topic ic905/tx_state (on/off) — plain boolean companion to ic905/tx (which keeps its rich 'ON %' form). Lets HA's binary_sensor consume it cleanly. Additive — no breaking change.
New config knobs in /etc/ic905-relay.conf (both default-on): mqtt_ha_discovery and mqtt_ha_discovery_prefix.
Full HA setup walkthrough + sample Lovelace dashboard YAML in the new home-assistant/ folder of the repo.
v1.18
Preamp and attenuator in MQTT. New topics ic905/preamp and ic905/atten (on/off), decoded from byte 284 and byte 285 of the 288-byte 0x1801 status frame (per K7MDL, confirmed on-air — 0x01 = ON, 0x00 = OFF). Both also appear in ic905/state and as Preamp:/Atten: lines in the journal on change.
Credit: K7MDL (IC905_Ethernet_Decoder) for the byte offsets.
v1.17
ic905/band and ic905/freq now report the OPERATING (transmit) VFO — what's on the air, or what would be if you keyed. In split this is the secondary VFO; otherwise the primary. ic905/band_b / ic905/freq_b now report the OTHER VFO (the displayed/RX VFO during a split TX). The band/freq fields in ic905/state follow the same convention.
Fixes a confusing case: during a split TX, ic905/freq used to publish the primary VFO's freq — i.e. the RX freq, not what was on the air. Now they match the transmit reality.
ic905/tx is unchanged (already correct — carries ON %).
v1.16
Split detection switched to payload[27] == 1 — the long-validated indicator used by K7MDL's IC905_Ethernet_Decoder. A direct, band-independent flag — no frequency comparison, no derivation. With the existing decode (byte 184 = primary/displayed VFO, byte 196 = secondary), the rule is: split ON -> transmit VFO = secondary (byte 196); otherwise -> primary (byte 184).
Resolves the v1.15 known issue: with both VFOs on the same band + split, the TX frequency is now correctly the secondary VFO's frequency (verified on-air — same-band 23cm split key fires the right relays and reports the secondary's freq, not the primary's).
Credit: K7MDL for the byte-27 split flag and the matching VFO offsets (selected/unselected at 184/196).
v1.15
Frequency-based transmit-VFO / split detection (the definitive relay-safety fix). The transmit VFO is derived from byte 236 bit 7 on idle frames = 'the lower-frequency VFO is the transmit VFO', matched against byte 184 (primary/displayed VFO) and byte 196 (secondary VFO) frequencies. The relays, TX log and ic905/tx sequence the band of whichever VFO actually transmits. Verified on-air across every primary/secondary choice AND with the two bands swapped onto opposite VFOs — it tracks frequency order, not the VFO A/B slot. Supersedes the v1.10-v1.14 attempts that treated byte 236 bit 7 as a fixed split flag.
Known issue: with both VFOs on the same band + split enabled, the reported TX frequency may show the other VFO's frequency (byte 236 distinguishes the transmit band, not which of two same-band VFOs). Relay band/sequencing is unaffected and always correct; only the displayed frequency can be off in that case.
v1.12
Critical relay-safety fix for split operation. Confirmed on-air that byte 184 is the active/displayed VFO and byte 196 the secondary, and in split the radio transmits on the secondary VFO. The relay logic had always sequenced the active VFO, so a split transmit (active 23cm / secondary 2m) wrongly fired the 23cm relays. The operating band/frequency is now split ? secondary-VFO : active-VFO, used by the relay sequencer, the TX: log, and ic905/tx. Verified: split + secondary 2m now fires the 2m relay (relay 6), not the 23cm relays. ic905/tx now reads e.g. ON 2m 144.375.004 25% — the actual transmit band, RF and power.
v1.11
Relay-safety fix for split: if a frame asserts TX on a band different from the displayed/RX band (split with the transmit VFO on another band, e.g. RX 23cm / TX 2m), the relays now follow the band actually being transmitted. The non-transmitting dual-watch sub-VFO is still ignored during TX. Prevents a mis-set split from sequencing the wrong band's relays.
v1.10
Split + sub-VFO over MQTT: new ic905/split (on/off, byte 236 bit 7 read on idle frames), ic905/band_b + ic905/freq_b (dual-watch sub-VFO from byte 196 — e.g. main 23cm 1296.117 / sub 2m 144.375), all also in ic905/state and the Split: log line. Power now read only on TX frames so split-while-idle no longer shows a false 50%.
v1.9
Senior-C audit hardening (no behaviour change): removed dead code + stale comments, log dropped MQTT commands, defensive snprintf bounds, documented LE/I2C assumptions. Audit found no critical issues. Fixed the splash-page version (fallback bumped + changelog fetch cache-busted so it matches the release). Radio relabelled VHF/UHF/SHF.