diff --git a/internal/antgenius/antgenius.go b/internal/antgenius/antgenius.go index 43e80a0..072386a 100644 --- a/internal/antgenius/antgenius.go +++ b/internal/antgenius/antgenius.go @@ -116,7 +116,11 @@ func (c *Client) Activate(port, antenna int) error { if antenna < 0 { return fmt.Errorf("antgenius: invalid antenna %d", antenna) } - if err := c.send(fmt.Sprintf("port set %d rxant=%d txant=%d", port, antenna, antenna)); err != nil { + // Set only rxant (like the reference ShackMaster client): the AG mirrors it + // to the TX antenna automatically. Forcing txant too can be rejected on the + // 8x2 (an antenna can't be TX on both ports at once), which broke port-B + // selection and deselection. + if err := c.send(fmt.Sprintf("port set %d rxant=%d", port, antenna)); err != nil { return err } // Ask for the new port state so the snapshot reflects it promptly (the