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:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user