fix: the Yaesu SWR bar showed a meter unrelated to the antenna

Measured on the radio, steady carrier for three seconds:

  RM1=0  RM2=unsupported  RM3=0  RM4=9→18→21→22  RM5=208 flat  RM6=0

RM4 is the index 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
on an operator reading 1.1, and 208/255 is exactly the 81 that appeared on the
bar. Borrowing the FT-991A's table, which puts SWR on RM5, is what put it there.

SWR now reads RM6. It stayed at 0 throughout, which is CONSISTENT with a 1.1
match but does not prove the index — only a deliberate mismatch would, and I am
not asking for that. A bar at zero on a good antenna is honest; 81 was actively
misleading.

The measurement is written into the code next to the mapping, so the next person
sees the evidence rather than a table copied from another model.
This commit is contained in:
2026-07-29 13:42:25 +02:00
parent a89c6e0df8
commit 3fd6763ff0
2 changed files with 16 additions and 1 deletions
+2
View File
@@ -3,6 +3,7 @@
"version": "0.21.9", "version": "0.21.9",
"date": "2026-07-28", "date": "2026-07-28",
"en": [ "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.", "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.", "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.", "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." "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": [ "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.", "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.", "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.", "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.",
+14 -1
View File
@@ -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, " ")) 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 { if v, ok := y.askNum("RM4;", "RM4", 3); ok {
y.panel.PowerMeter = scale255(v) 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) y.panel.SWRMeter = scale255(v)
} }
} else { } else {