Repository navigation
v0.3.5 — Flex sim SmartSDR v4.3 firmware (--firmware 4.3)
The Flex radio sim can now behave like a radio on SmartSDR v4.3.16, FlexRadio's release of 2026-10-13. Start it with --firmware 4.3 to test AetherSDR's 4.3 work without upgrading a radio. aethersdr/AetherSDR#6437 maps the wire changes this follows. Without the option nothing changes: the sim reports and behaves as before.
About the binaries below: they are the Flex radio sim (
flex_sim.py). The KPA1500, ANAN and station sims run from source.
Added: --firmware 4.3 (#19)
- Version: discovery and the connect greeting report
4.3.16.42034. Presets are3.3,4.1,4.2and4.3, or give a full version. - PTT Override (#6442): the transmit status reports
ptt_mic_override. A client can set it to 0 or 1; any other value is refused. Older firmware never reports it. - What a footswitch sends. On 4.3, a hardware PTT (MIC, ACC or RCA) transmits the selected source, DAX included. Before 4.3 it always forced the analog mic. PTT Override brings the old behaviour back.
- Simulate a footswitch with
http://<sim>:8731/hwptt?src=MIC&on=1. /stateshows what the radio would put on the air.
- Simulate a footswitch with
- Interlock sources: every latched source is listed, hardware first (
MIC,VOX,MIC,VOX,SW), and VOX is reported asVOX. - DSP levels: reported as
nrl_level,anfl_levelandnrs_level. NRS runs 0–50, andnrf_levelis ignored. - 48 and 96 kHz slice audio:
slice set N sample_rate=48000|96000streams with the new class codes (0x03E4/0x03E5, reduced bandwidth0x0124/0x0125). It switches live. - APD:
state=OFF|IDLE|ACTIVE, plus the new equalizer line with its antenna, frequency and power. - UDP keepalives:
udp_registerandpingare counted in/state. - DAX TX rate: the TX chain check gains stage 3b: TX audio rate must match the TX slice, which 4.3 firmware enforces.
- CWX: the
0x1Estand-in for a quote insidecwx sendis decoded.
Fixed
UDP keepalives were counted as DAX TX audio. AetherSDR sends its UDP keepalives to the radio's port 4991, which is also where the sim watches for DAX TX audio. So a client ping every 5 s could make the TX chain's "audio arriving" stage flicker true with no audio flowing. Keepalives are now recognised and counted separately, whatever the firmware setting.
Tested
tests/test_firmware_43.py: 44 checks, each behaviour run against an old-firmware sim and a 4.3 one.- The full suite and the offline loopback self-test pass.
- Against a real AetherSDR: the #6292 build connected to a
--firmware 4.3sim, showed version 4.3.16.42034, and took the new PTT Override key without complaint.
Documented in PROTOCOL.md §12.
One assumption: whether real 4.3 firmware ignores the dropped nrf_level command or refuses it isn't known. The sim ignores it.
Not covered: SmartLink WAN sessions, APD's TRAINING/HOLD/FAULT states, and the FLEX-8000/Aurora-only features (AutoDX, NTP, Noise Floor Range).