GQRX, limesuite, macOS Sequoia on Arm M2?

So, I’ve done some googling and not seen anything that makes sense yet.

I’ve looked at How To: LimeSDR + GQRX + macOS Sierra (OSX) - #25 by lool and think I have the correct device string, and it’s an old query.

I’ve installed limesuite, soapy, and Gqrx with brew

brew install limesuite
brew install soapysdr
brew install Gqrx

I’ve done the “Accept connections from this accessory” the first time I’ve attached the LimeSDR to the MacBook.

SoapySDRUtil appears to find my LimesDR:

% SoapySDRUtil --info
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Lib Version: v0.8.1-release
API Version: v0.8.0
ABI Version: v0.8
Install root: /opt/homebrew
Search path:  /opt/homebrew/lib/SoapySDR/modules0.8
Module found: /opt/homebrew/lib/SoapySDR/modules0.8/libHackRFSupport.so (0.3.4)
Module found: /opt/homebrew/lib/SoapySDR/modules0.8/libLMS7Support.so   (23.11.0)
Available factories... hackrf, lime
Available converters...
 -  CF32 -> [CF32, CS16, CS8, CU16, CU8]
 -  CS16 -> [CF32, CS16, CS8, CU16, CU8]
 -  CS32 -> [CS32]
 -   CS8 -> [CF32, CS16, CS8, CU16, CU8]
 -  CU16 -> [CF32, CS16, CS8]
 -   CU8 -> [CF32, CS16, CS8]
 -   F32 -> [F32, S16, S8, U16, U8]
 -   S16 -> [F32, S16, S8, U16, U8]
 -   S32 -> [S32]
 -    S8 -> [F32, S16, S8, U16, U8]
 -   U16 -> [F32, S16, S8]
 -    U8 -> [F32, S16, S8]
Voice-of-Evening:~
% SoapySDRUtil --probe
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Probe device 
[INFO] Make connection: 'LimeSDR Mini [USB 3.0] 1D3AC7A51BE670'
[INFO] Reference clock 40.00 MHz
[INFO] Device name: LimeSDR-Mini
[INFO] Reference: 40 MHz
[INFO] LMS7002M register cache: Disabled

----------------------------------------------------
-- Device identification
----------------------------------------------------
  driver=FT601
  hardware=LimeSDR-Mini
  boardSerialNumber=0x1d3ac7a51be670
  firmwareVersion=5
  gatewareVersion=1.24
  hardwareVersion=0
  protocolVersion=1

----------------------------------------------------
-- Peripheral summary
----------------------------------------------------
  Channels: 1 Rx, 1 Tx
  Timestamps: YES
  Clock sources: internal, external
  Sensors: clock_locked, lms7_temp
     * clock_locked (Clock Locked): true
        CGEN clock is locked, good VCO selection.
     * lms7_temp (LMS7 Temperature): 41.495247 C
        The temperature of the LMS7002M in degrees C.
  Registers: BBIC
  Other Settings:
     * SAVE_CONFIG - Save LMS settings to file
       [key=SAVE_CONFIG, type=string]
     * LOAD_CONFIG - Load LMS settings from file
       [key=LOAD_CONFIG, type=string]
     * OVERSAMPLING - oversampling ratio (0 - auto)
       [key=OVERSAMPLING, type=int, options=(0, 1, 2, 4, 8, 16, 32)]
  GPIOs: MAIN

----------------------------------------------------
-- RX Channel 0
----------------------------------------------------
  Full-duplex: YES
  Supports AGC: NO
  Stream formats: CF32, CS12, CS16
  Native format: CS16 [full-scale=32767]
  Stream args:
     * Buffer Length - The buffer transfer size over the link.
       [key=bufferLength, units=samples, default=0, type=int]
     * Latency - Latency vs. performance
       [key=latency, default=0.5, type=float]
     * Link Format - The format of the samples over the link.
       [key=linkFormat, default=CS16, type=string, options=(CS16, CS12)]
     * Skip Calibration - Skip automatic activation calibration.
       [key=skipCal, default=false, type=bool]
     * align phase - Attempt to align phase of Rx channels.
       [key=alignPhase, default=false, type=bool]
  Antennas: NONE, LNAH, LNAL_NC, LNAW, Auto
  Corrections: DC removal, DC offset, IQ balance
  Full gain range: [-12, 61] dB
    TIA gain range: [0, 12] dB
    LNA gain range: [0, 30] dB
    PGA gain range: [-12, 19] dB
  Full freq range: [0, 3800] MHz
    RF freq range: [30, 3800] MHz
    BB freq range: [-7.68, 7.68] MHz
  Tune args:
     * LO Offset - Tune the LO with an offset and compensate with the baseband CORDIC.
       [key=OFFSET, units=Hz, default=0.0, type=float, range=[-7.68e+06, 7.68e+06]]
     * BB - Specify a specific value for this component or IGNORE to skip tuning it.
       [key=BB, units=Hz, default=DEFAULT, type=float, range=[-7.68e+06, 7.68e+06], options=(DEFAULT, IGNORE)]
  Sample rates: [0.1, 30.72] MSps
  Filter bandwidths: [1.4001, 130] MHz
  Sensors: lo_locked
     * lo_locked (LO Locked): true
        LO synthesizer is locked, good VCO selection.
  Other Settings:
     * TSP_CONST - Digital DC test signal level in LMS7002M TSP chain.
       [key=TSP_CONST, default=16383, type=int, range=[0, 32767]]
     * CALIBRATE -  DC/IQ calibration bandwidth
       [key=CALIBRATE, type=float, range=[2.5e+06, 1.2e+08]]
     * ENABLE_GFIR_LPF - LPF bandwidth (must be set after sample rate)
       [key=ENABLE_GFIR_LPF, type=float]
     * TSG_NCO - Enable NCO test signal
       [key=TSG_NCO, default=4, type=int, options=(-1, 4, 8)]

----------------------------------------------------
-- TX Channel 0
----------------------------------------------------
  Full-duplex: YES
  Supports AGC: NO
  Stream formats: CF32, CS12, CS16
  Native format: CS16 [full-scale=32767]
  Stream args:
     * Buffer Length - The buffer transfer size over the link.
       [key=bufferLength, units=samples, default=0, type=int]
     * Latency - Latency vs. performance
       [key=latency, default=0.5, type=float]
     * Link Format - The format of the samples over the link.
       [key=linkFormat, default=CS16, type=string, options=(CS16, CS12)]
     * Skip Calibration - Skip automatic activation calibration.
       [key=skipCal, default=false, type=bool]
     * align phase - Attempt to align phase of Rx channels.
       [key=alignPhase, default=false, type=bool]
  Antennas: NONE, BAND1, BAND2, Auto
  Corrections: DC offset, IQ balance
  Full gain range: [-12, 64] dB
    PAD gain range: [0, 52] dB
    IAMP gain range: [-12, 12] dB
  Full freq range: [0, 3800] MHz
    RF freq range: [30, 3800] MHz
    BB freq range: [-7.68, 7.68] MHz
  Tune args:
     * LO Offset - Tune the LO with an offset and compensate with the baseband CORDIC.
       [key=OFFSET, units=Hz, default=0.0, type=float, range=[-7.68e+06, 7.68e+06]]
     * BB - Specify a specific value for this component or IGNORE to skip tuning it.
       [key=BB, units=Hz, default=DEFAULT, type=float, range=[-7.68e+06, 7.68e+06], options=(DEFAULT, IGNORE)]
  Sample rates: [0.1, 30.72] MSps
  Filter bandwidths: [5, 40], [50, 130] MHz
  Sensors: lo_locked
     * lo_locked (LO Locked): true
        LO synthesizer is locked, good VCO selection.
  Other Settings:
     * TSP_CONST - Digital DC test signal level in LMS7002M TSP chain.
       [key=TSP_CONST, default=16383, type=int, range=[0, 32767]]
     * CALIBRATE -  DC/IQ calibration bandwidth
       [key=CALIBRATE, type=float, range=[2.5e+06, 1.2e+08]]
     * ENABLE_GFIR_LPF - LPF bandwidth (must be set after sample rate)
       [key=ENABLE_GFIR_LPF, type=float]
     * TSG_NCO - Enable NCO test signal
       [key=TSG_NCO, default=4, type=int, options=(-1, 4, 8)]

Running GQRX gives me the following:

% gqrx
gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.10.11.0
built-in source types: file rtl rtl_tcp uhd hackrf bladerf rfspace airspy airspyhf soapy redpitaya 
Resampling audio 96000 -> 48000
PortAudio V19.7.0-devel, revision 147dd722548358763a8b649b3e4b41dfffbcfbb6 (version 1246976)
Number of audio devices: 3
  0:  MacBook Air Microphone  I:1  O:0
  1:  MacBook Air Speakers  I:0  O:2
  2:  Microsoft Teams Audio  I:1  O:1
Using default audio device
BandPlanFile is /Users/kf6gpe/.config/gqrx/bandplan.csv
BookmarksFile is /Users/kf6gpe/.config/gqrx/bookmarks.csv
PortAudio V19.7.0-devel, revision 147dd722548358763a8b649b3e4b41dfffbcfbb6 (version 1246976)
Number of audio devices: 3
  0:  MacBook Air Microphone  I:1  O:0
  1:  MacBook Air Speakers  I:0  O:2
  2:  Microsoft Teams Audio  I:1  O:1
[INFO] [UHD] Mac OS; Clang version 15.0.0 (clang-1500.3.9.4); Boost_108600; UHD_4.7.0.0
[WARNING] SoapySSDPEndpoint failed join group udp://[ff02::c]:1900 on bridge100
  setsockopt(IPV6_MULTICAST_IF, fdb2:2c26:f4e4::1) [22: Invalid argument]
[WARNING] SoapySSDPEndpoint failed join group udp://[ff02::c]:1900 on bridge101
  setsockopt(IPV6_MULTICAST_IF, fdb2:2c26:f4e4:1::1) [22: Invalid argument]
2025-01-18 10:39:07.192 gqrx[35744:579765] +[IMKClient subclass]: chose IMKClient_Modern
2025-01-18 10:39:07.192 gqrx[35744:579765] +[IMKInputSession subclass]: chose IMKInputSession_Modern
PortAudio V19.7.0-devel, revision 147dd722548358763a8b649b3e4b41dfffbcfbb6 (version 1246976)
Number of audio devices: 3
  0:  MacBook Air Microphone  I:1  O:0
  1:  MacBook Air Speakers  I:0  O:2
  2:  Microsoft Teams Audio  I:1  O:1

and connecting with the Device String soapy=0,driver=lime and an input rate of 5000000 fails with the dialog box SoapySDR::Device::make() no match.

I assume that I’ve fat-fingered the configuration somehow, and that the UDP warnings:

[WARNING] SoapySSDPEndpoint failed join group udp://[ff02::c]:1900 on bridge100
  setsockopt(IPV6_MULTICAST_IF, fdb2:2c26:f4e4::1) [22: Invalid argument]
[WARNING] SoapySSDPEndpoint failed join group udp://[ff02::c]:1900 on bridge101
  setsockopt(IPV6_MULTICAST_IF, fdb2:2c26:f4e4:1::1) [22: Invalid argument]

are a clue, but I’m not seeing the issue here.

Is there a problem with the brew package, maybe? Should I go buy a linex laptop? :slight_smile:

Thanks!

I tried your install on my MacBook pro M1 and I had the same problem.
I did the install with Macports and gqrx worked except that there was no way to select the correct antenna for my limeSDR Mini 2.0. If you have the old LimeSDR-Mini, it should work. I had to use SdrGlut which worked fine once I selected the LNAW antenna.

Thanks!!

Gave the port version a go, and it looks like one of the dependencies is suffering from bit rot. I’ll poke at it when I have time to see if I can come up with a fix to get upstreamed.

If you are using an old version of Macports, a ‘port selfupdate’ will sometimes clear the problem. With a new install, you will need to grab the source code of the problem dependency and do an install of it and remove the Macports version

Thanks.

Alas, yeah, I’m up to date. Time to budget some time on a weekend day to do some hacking!