Skip to content

v0.3.2 — Flex sim TX routing for TCI; KPA1500 amplifier sim

Choose a tag to compare

@github-actions github-actions released this 10 Oct 21:06
· 17 commits to main since this release
38bec1d

Fixes to how the Flex radio sim handles transmit routing. This release also brings the new KPA1500 amplifier simulator. Anyone driving the Flex sim through TCI, or from an API client other than AetherSDR's GUI, should update.

About the binaries below: they are the Flex radio sim (flex_sim.py). The KPA1500, ANAN and station sims run from source.

Flex sim: transmit routing (#13)

Found while driving AetherSDR 26.10.1's TCI server from CAT4OM, a third-party CAT hub, with flex-sim as the radio. Each gap made a correct client look broken:

  • xmit 1 / xmit 0 now key the radio. AetherSDR turns a TCI trx:0,true; into xmit 1, and so do other API clients. The sim ignored it, so the radio never reported keyed and AetherSDR correctly dropped the PTT after its confirmation timeout. A malformed xmit keys nothing.
  • A new slice is announced before the slice create reply. AetherSDR's TCI VFO-B route looks the new slice up when the reply arrives. It found nothing, abandoned the slice and created another on the next request, so slices leaked (A, B, C …).
  • slice set N tx=1 moves the transmit slice. The sim ignored it, so TCI split never reached AetherSDR.

tests/test_tx_routing.py covers all three (19 checks; 10 fail on v0.3.1), and PROTOCOL.md §9 documents them. With these fixes, AetherSDR + CAT4OM passed 19/19 end-to-end checks against the sim. These covered frequency, mode, VFO B, split, PTT, and releasing TX when the controlling client drops.

New: KPA1500 amplifier simulator (kpa_sim.py)

An Elecraft KPA1500 built against Elecraft's Programming Reference V3. It is for aethersdr/AetherSDR#4097: can a KPA1500 be keyed safely over the LAN?

  • Network PTT (#9): ^TX; / ^TXnn; (keyed with a timeout) / ^RX; / ^TQ; on TCP and UDP :1500, with a T/R interlock bench. Run flex_sim.py --rf-sense 127.0.0.1:1510 so the radio tells the amp when its RF is on.
  • ^NI and the ACC INHIBIT line (#10).
  • The internal ATU (#12): ^AM ^AI ^AE ^FT ^FE ^TP, for aethersdr/AetherSDR#5905.

Also

  • Run the sims as always-on services on Linux (#11): example systemd units in deploy/systemd/ and a README section.