airspy hf + discovery

Discussion in 'Software Defined Radio (SDR)' started by N2DTS, Mar 25, 2021.

ad: L-HROutlet
ad: l-rl
ad: L-MFJ
ad: Subscribe
ad: Left-2
ad: Left-3
ad: abrind-2
  1. KA9Q

    KA9Q Ham Member QRZ Page

    I struggled for a long time with WiFi multicast.

    WiFi multicast transmits at a low, fixed data rate that is only sometimes configurable, and there's no link level ACK. This was acceptable back when WiFi had a small set of data rates but it is completely unusable now beyond the occasional ARP or mDNS query. Anything more will bring a base station to its knees. The best workaround is multicast to unicast conversion, where the base station sends a separate, acknowledged copy to each group member at whatever data rate its link can support. Because this may involve retransmissions, the latency can vary.

    You can tell if a base station is performing multicast-to-unicast conversion by looking at the frames received by the clients, e.g., with Wireshark. If conversion is being done, the Ethernet destination MAC address will be that of the client station, not the Ethernet multicast destination address in the originated frame. The IP header will not be modified, so it will still have a multicast IP destination address.

    It's ironic, but radio is rapidly losing what used to be its defining property: the ability to broadcast to arbitrarily large sets of listeners within an area. Spatial reuse, multi-access contention, rate-adaptive links and directional antennas (especially MIMO) are all valuable for increasing spectrum efficiency, but they've turned radio into a large set of point-to-point links.
    KX4O likes this.
  2. KA9Q

    KA9Q Ham Member QRZ Page

    I am currently using two SDR front ends with my receiver: the AMSAT UK Funcube dongle (192 kHz complex) and the Airspy R2 (20 MHz real). The RPi3 easily handles the Funcube. The thread that performs the forward FFT uses about 13% of an ARM core, including reading the IQ samples from the network, processing the RTP headers and doing integer-to-float conversions. I'm using 2:1 overlap, so that's 15,360 point complex FFTs @ 25 Hz. The inverse FFTs require less since they run at a lower sample rate (e.g., 12 kHz for CW/SSB involves 960 point IFFTs @ 25 Hz).

    The Airspy is a little harder. I'm running it on an 8-core 3.4 GHz i7 (4 real cores with hyperthreading). The forward FFT uses about 32% of one core for 800k point real FFTs @ 50 Hz. Again, the inverse FFTs individually use very little CPU time because of the low sample rate (24 kHz for NBFM) but it does add up when you have 216 running in parallel; the total for the entire program including FM squelch and demodulation is about 66% of a core. But it's too much for the RPi4. I've been playing with the threading option in FFTW3, but I haven't gotten it going in real time. I think there's a FFT available for the Pi's GPU that I need to learn about.
    Last edited: Apr 16, 2021
    KX4O likes this.
  3. N6YWU

    N6YWU Ham Member QRZ Page

    I currently have 3 SDRs connected, and 3 on the shelf that I occasionally swap in. My Airspy HF+ Discovery is connected to a 40M loop-on-ground antenna and a Raspberry Pi 4 rtl_tcp/hfp_tcp sever. I use it for ft8 skimming, and some experiments with CW skimming using machine learning. My Hermes Lite 2 transceiver is connected to a 20M vertical and another Raspberry Pi 4 rtl_tcp/hl2_tcp server, but I can also operate it over UDP directly from my iPad. I periodically use it to transmit QRP and QRPp FT8 and WSPR beacons to see how far my 1 mW to 1W digital mode signals will reach. I also have an RTL-SDR connected to a VHF discone on the roof, with a Raspberry Pi 3B+ rtl_tcp server. I occasionally swap in a Red Pitaya 288-16, but the extra dynamic range from its 16 bit ADC doesn't seem to buy it any advantage over the 12 bit ADC in the Hermes Lite 2 at my (high noise floor) QTH. And the Red Pitaya runs a lot hotter than the HL2 on Rx. I also use a LimeSDR Mini as test signal generator. It's not very sensitive for Rx. I also have an RSP2, but haven't found a need for it's very wide bandwidth lately.

    I operate all these SDRs with software that I've written (except for the USB support libraries for the HF+, RTL-SDR, and RSP2) for my iPhone, iPad, and Raspberry Pi's. My software may not have all the latest state-of-the-art features, but I learned a lot from developing the code (some in Swift instead of C or Python). And there was (is?) almost nothing else available for SDR on iOS devices, so I pretty much had to roll my own. Reasonable to do, since I currently have more pure Gflops of DSP capability in iOS devices, than in any of my Intel i5 PC's.
    KA9Q likes this.
  4. N2DTS

    N2DTS Ham Member QRZ Page

    Passive splitter into two receivers, one analog (tubes) and the discovery.
    I can hook any receiver/rig along with the analog receiver which is my benchmark for performance wanted.

    You guys are way beyond me on the nuts and bolts of the sdr software.
    Interesting about the unicast, multicast and broadcast, we do ethernet tests in work and I never figured out what all that was about.

    I also picked up a new I phone 12 mini, seems quite good!
    But its too small for sdr for me...

  5. N6YWU

    N6YWU Ham Member QRZ Page

    When I last measured absolute receiver latency, I transmitted (CW mW QRPp) to myself. Put one scope probe on the dummy load, and the other on the test SDR receiver's audio output.
    KX4O and KA9Q like this.
  6. KA9Q

    KA9Q Ham Member QRZ Page

    That's the way to do it...
    KX4O likes this.

Share This Page

ad: elecraft