diff --git a/changelog.json b/changelog.json index 8f7f13a..3caf1c3 100644 --- a/changelog.json +++ b/changelog.json @@ -3,6 +3,7 @@ "version": "0.21.9", "date": "2026-07-28", "en": [ + "Yaesu console: the SWR bar read about 80 on a perfect match. It was showing a meter that does not move with the antenna at all; power and SWR are now read from the indices measured on the radio.", "CW speed is now one setting wherever you change it: the Yaesu console slider and the CW panel drive the keyer that is actually sending, and the rig own keyer follows so its front panel agrees.", "Antenna Genius: port A no longer jumps onto port B antenna a few seconds after a change. Only one port can hold the transmit antenna, so the switch reports the same one on both — the display now follows each port own receive antenna.", "CW through the Yaesu keyer: a fifth CW engine sends your macros with the radio own keyer (CAT \"KY\"), for the FTDX101 / FT-991A / FT-710 family. An FTDX10 does not accept it — DAKY included — and OpsLog says so, pointing to the serial DTR keyer on the rig second COM port, which works.", @@ -20,6 +21,7 @@ "CQ and ITU zones you correct by hand in your profile stay corrected. They are derived from cty.dat, which gives the zones of the whole entity — in a country spanning several, the automatic value is wrong and it came back at every restart. They now only fill in when empty, and recompute when the callsign or grid changes." ], "fr": [ + "Console Yaesu : la barre de ROS indiquait environ 80 sur une antenne parfaitement adaptée. Elle affichait un instrument qui ne suit pas l'antenne ; la puissance et le ROS sont désormais lus sur les index mesurés sur la radio.", "La vitesse CW est désormais un réglage unique où que vous la changiez : le curseur de la console Yaesu et le panneau CW pilotent le manipulateur qui émet réellement, et le keyer interne de la radio suit pour que sa façade affiche la même valeur.", "Antenna Genius : le port A ne bascule plus sur l'antenne du port B quelques secondes après un changement. Un seul port peut porter l'antenne d'émission, le switch renvoie donc la même sur les deux — l'affichage suit désormais l'antenne de réception propre à chaque port.", "CW par le keyer Yaesu : un cinquième moteur CW envoie vos macros avec le keyer de la radio (CAT « KY »), pour la famille FTDX101 / FT-991A / FT-710. Un FTDX10 ne l'accepte pas — DAKY compris — et OpsLog le dit en renvoyant vers le keyer série DTR sur son second port COM, qui fonctionne.", diff --git a/internal/cat/yaesu_panel.go b/internal/cat/yaesu_panel.go index daacc15..24ed5e9 100644 --- a/internal/cat/yaesu_panel.go +++ b/internal/cat/yaesu_panel.go @@ -145,10 +145,23 @@ func (y *Yaesu) readPanel(mode string, split bool, txHz int64) { } debugLog.Printf("yaesu: meters while transmitting: %s (send this if a bar reads wrong)", strings.Join(raw, " ")) } + // Measured on an FTDX10 (2026-07-29), a steady carrier for three seconds: + // + // RM1=0 RM2=unsupported RM3=0 RM4=9→18→21→22 RM5=208 flat RM6=0 + // + // RM4 is the one that RAMPS with the output, so RM4 is the power meter. + // RM5 sat at 208 from the first sample to the last, unmoved by the power — + // that is not SWR (the operator's was 1.1) and not a meter that reads + // anything we can show; borrowing the FT-991A's table, which puts SWR + // there, is exactly what made the bar read 81. if v, ok := y.askNum("RM4;", "RM4", 3); ok { y.panel.PowerMeter = scale255(v) } - if v, ok := y.askNum("RM5;", "RM5", 3); ok { + // SWR: RM6 is the remaining candidate. It read 0 throughout, which is + // CONSISTENT with the 1.1 match but does not prove the index — only a + // deliberate mismatch would. Shown because a bar stuck at zero on a good + // antenna is honest, where 81 was actively misleading. + if v, ok := y.askNum("RM6;", "RM6", 3); ok { y.panel.SWRMeter = scale255(v) } } else {