OS X port of the awesome gqrx SDR software [Update 07/01/2013]

A while ago I already managed to compile gqrx on OS X, but then Alexandru Csete decided to move on to a new audio backend called pulseaudio. Sadly there is no proper pulseaudio port for OS X. Thus I bring you my branch of gqrx 2.1 which runs quite well on OS X.

This release bundles all the rtl-sdr, gr-osmosdr, GNU Radio, libUSB, boost and Qt dependencies allowing it to work out of the box. Though feel free to contact me in case you encounter problems. It has been reported to run fine on Snow Leopard (10.6), OS X Lion (10.7), OS X Mountain Lion (10.8) and OS X Mavericks (10.9). Sadly Leopard (10.5) isn’t supported due to Apple breaking binary compatibility on 64bit binaries for some reason.

Download the ready to use DMG/APP here:
gqrx_8.dmg – (07/01/2013) Latest GIT. Some people are reporting FFT issues with this build, in case you encounter those try the one below and leave a comment. (shasum: 66b9f6952aff5cb0bc995556c633b3cc7f5d990e)

Old versions:
gqrx_7.dmg – (02/03/2013) Up to date with GIT. I’ve added a deadlock prevention feature in case your settings keep gqrx from starting up properly. After a crash/forced-close it asks you whether you want to reset all your settings to default. This should help you guys with invalid rtl_tcp settings and the like. I have also fixed rtl_fm to now properly work on OS X (It used to only output noise), as well as multimonNG which now supports umlauts for POCSAG decoding. So check out the bundled command-line utilities! πŸ™‚ (e.g. /Applications/Gqrx.app/Contents/MacOS/rtl_test -t)

gqrx_6.dmg – Latest (01/16/2013) updates from GIT, yet again. This time I also packaged some command-line utilities (multimonNG rtl_adsb rtl_eeprom rtl_fm rtl_sdr rtl_tcp rtl_test) together with Gqrx. rtl_fm seems to be broken on OS X, yet we’re still triaging the bug. It would be great if you could try it and report whether it works for you. (http://kmkeen.com/rtl-demod-guide/index.html) I am considering packaging up the whole of gnuradio including the companion GUI if there is demand.
gqrx_5.dmg (Latest updates from GIT, supports adjusting the FFT resolution which should fix the pink curtain problem. The zoom slider has been removed from upstream, yet you can still zoom by using the mouse wheel on the axes.)
gqrx_4.dmg (GNU Radio component has now been compiled with “-DTRY_SHM_VMCIRCBUF=OFF”, this should hopefully fix the shared memory problem some of you have encountered. Please report whether it works now.)
gqrx_3.dmg (Rebased to the zoom branch. Credit goes to vpelletier for the awesome patch!)

Pan: left-click on X-axis labels & drag horizontally
Pan (alternative): Mouse wheel on X-axis labels, faster pan with Shift held and slower pan with Ctrl held.
Change central frequency: middle-click on X-axis labels & drag horizontally
Zoom: slider on FFT panel

gqrx_2.dmg (Updated gr-osmosdr and fixed a crash when disabling demod.)
gqrx.dmg

PS:
The screenshot was taken in direct sampling mode, that’s why I was able to receive 0-2.4mhz. I’ll probably blog about my modded dongle soon.

Software licenses:
Gqrx
Qt
multimonNG
boost
gr-osmosdr
rtl-sdr
GNU Radio
FFTW
PortAudio
libusb

200 Comments

  1. Hi There,

    Thank you for taking the time to develop this wonderful piece of software. There are lots of us out here who can only dream of being able to create the amazing stuff you do.

    I am running gqrx with a dongle and it works really great. It’s the only piece of software I can find which specifically runs on my macbook pro.

    Thanks once again and I wish you well with all your future projects.

    Kindest Regards

    Miles Kig

  2. Hi,

    for me, it crashes regularly when trying to start the DSP:

    Application Specific Information:
    abort() called

    Thread 0 Crashed: Dispatch queue: com.apple.main-thread
    0 libSystem.B.dylib 0x00007fff8200e0b6 __kill + 10
    1 libSystem.B.dylib 0x00007fff820ae9f6 abort + 83
    2 libSystem.B.dylib 0x00007fff8202e7d2 _Unwind_Resume + 66
    3 libSystem.B.dylib 0x00007fff8203262b _Unwind_Resume_or_Rethrow + 27
    4 com.yourcompany.gqrx 0x000000010000467e main + 670
    5 com.yourcompany.gqrx 0x0000000100004214 start + 52

    … any hint?

    fbx

  3. Hi,

    thank you for the fast responses!

    I am using Snow Leopard on a Macbook Pro (Core2 Duo).
    The dongle is detected correctly, and the device dialog looks like yours.
    Moreover I can use it normally with GNURadio or linrad.

    Does your app output logs somewhere?

    fbx

      • Hey, thanks for your great effort to backport gqrx. Sadly, I suffer from the same problem as fbx, I didn’t even manage to start the DSP once. I’ve captured the command line output as you advised, this is what’s going on:

        —-SNIP—
        flo$ /Applications/gqrx.app/Contents/MacOS/gqrx
        gr-osmosdr supported device types: file fcd rtl rtl_tcp
        >>> gr_fir_ccf: using SSE
        >>> gr_fir_ccc: using SSE
        Using Volk machine: sse4_1_64_orc
        >>> gr_fir_fff: using SSE
        gr-osmosdr supported device types: file fcd rtl rtl_tcp
        Using device #0: ezcap USB 2.0 DVB-T/DAB/FM dongle
        Found Elonics E4000 tuner
        Exact sample rate is: 910000,026819 Hz
        OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOgr_vmcircbuf_mmap_shm_open: mmap or shm_open is not available
        gr_buffer::allocate_buffer: failed to allocate buffer of size 64 KB
        Qt has caught an exception thrown from an event handler. Throwing
        exceptions from an event handler is not supported in Qt. You must
        reimplement QApplication::notify() and catch all exceptions there.

        libc++abi.dylib: terminate called throwing an exception
        Abort trap: 6
        —-SNIP—

        My system is a 2012 MBP non-retina, running on ML 10.8.2…

        Thanks in advance,
        Flo

          • Same problem πŸ™

            /Applications/gqrx.app/Contents/MacOS/gqrx
            gr-osmosdr supported device types: file fcd rtl rtl_tcp
            >>> gr_fir_ccf: using SSE
            >>> gr_fir_ccc: using SSE
            Using Volk machine: sse4_1_64_orc
            >>> gr_fir_fff: using SSE
            gr-osmosdr supported device types: file fcd rtl rtl_tcp
            Using device #0: Generic RTL2832U (e.g. hama nano)
            Found Elonics E4000 tuner
            OOOO00gr_vmcircbuf_mmap_shm_open: mmap or shm_open is not available
            gr_buffer::allocate_buffer: failed to allocate buffer of size 64 KB
            Qt has caught an exception thrown from an event handler. Throwing
            exceptions from an event handler is not supported in Qt. You must
            reimplement QApplication::notify() and catch all exceptions there.

            libc++abi.dylib: terminate called throwing an exception
            Abort trap: 6


            OSX 10.8.2
            Model: Macmini4,1, BootROM MM41.0042.B03, 2 processors, Intel Core 2 Duo, 2.4 GHz, 8 GB, SMC 1.65f2
            Graphics: NVIDIA GeForce 320M, NVIDIA GeForce 320M, PCI, 256 MB
            USB Device: RTL2832U, 0x0bda (Realtek Semiconductor Corp.), 0x2832, 0x24100000 / 2

  4. Pingback: OS X port of gqrx is the easiest way to get into software defined radio - Hack a Day

  5. Hi,

    I’m trying this on 10.6 with the FCD hardware. The IO dialog just say Other… for Device type, nothing else listed there. Typing fcd in the device string section results in this dump to terminal.

    Newton:MacOS dm$ ./gqrx
    gr-osmosdr supported device types: file fcd rtl rtl_tcp
    >>> gr_fir_ccf: using SSE
    >>> gr_fir_ccc: using SSE
    Using Volk machine: ssse3_64_orc
    >>> gr_fir_fff: using SSE
    gr-osmosdr supported device types: file fcd rtl rtl_tcp

    FATAL: bad lexical cast: source type value could not be interpreted as target

    Any ideas?

    Thanks.

  6. Same problem here when start : (10.8.2, MBP Corei7, USB Dongle “RTL2832U” VendorID/ProductID: 0x0BDA/0x2832 )

    gr-osmosdr supported device types: file fcd rtl rtl_tcp
    >>> gr_fir_ccf: using SSE
    >>> gr_fir_ccc: using SSE
    Using Volk machine: sse4_1_64_orc
    >>> gr_fir_fff: using SSE
    gr-osmosdr supported device types: file fcd rtl rtl_tcp
    Using device #0: Generic RTL2832U (e.g. hama nano)
    Found Elonics E4000 tuner
    Exact sample rate is: 3000000,178814 Hz
    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOgr_vmcircbuf_mmap_shm_open: mmap or shm_open is not available
    gr_buffer::allocate_buffer: failed to allocate buffer of size 64 KB
    Qt has caught an exception thrown from an event handler. Throwing
    exceptions from an event handler is not supported in Qt. You must
    reimplement QApplication::notify() and catch all exceptions there.

    libc++abi.dylib: terminate called throwing an exception
    Abort trap: 6

  7. Hi,

    … finally I got to my computer, … and I can confirm that I have the same problem as loic. A quick googling does not give obvious solutions, sigh. The thing that puzzles me is that this seems to come from gnuradio, which works OK here. It could be related to some configure switch I think.

    fbx

  8. This was BY FAR the best software I’ve tried for my RTL. I had issues with both Windows and Linux based software but this just plugged and played! THANKS!

    I have crashed it once when selecting the drop down box to change from the default audio output device. Also it only has default as an option doesn’t show any of the 3 output devices I have. Still I can’t complain. Especially for the price.

    Is there another module coming for pagers, etc? Or what did you use for that?Β 

  9. maybe we all share some software package or similiar, which alters the POSIX subsystem behaviour, on which shm_open/mmap rely? what about xcode, macports or homebrew? i’ve got an install of the former two on my mbp…

  10. Seems like this detected my RTL2832-based DVB-T/DAB/FM device OK (shows as ezcap USB 2.0 etc, etc) but all I get is a pink wall and no audio when I hit the start button. Pardon my ignorance, but is there something else I have to do to get the pretty lines (technical term) that I see in all the gqrx screenshots?

        • Nick, did you ever get this figured out? I’m seeing exactly the same thing: no audio (except for thunks on start and stop of some of the receive modes) and a big pink curtain where there should be demodulated signal spectrum. Also the meter at the top is constantly updating with a very large negative number dBFS.

          Mac mini late 2012 quad Core i7, 10.8.2
          Command line call and output:
          Jim$ gqrx.app/Contents/MacOS/gqrx
          gr-osmosdr supported device types: file fcd rtl rtl_tcp
          >>> gr_fir_ccf: using SSE
          >>> gr_fir_ccc: using SSE
          Using Volk machine: sse4_1_64_orc
          >>> gr_fir_fff: using SSE

          Configure I/O devices says:
          Device: Generic RTL2832U (e.g. hama nano)
          Device string: label=’Generic RTL2832U (e.g. hama nano)’,rtl=0
          Sample rate: (tried them all)
          LNB LO 0.000 MHz
          Audio device: Default
          Audio sample rate: 48 kHz

          Apple System Information has this under USB:
          RTL2832U:
          Product ID: 0x2832
          Vendor ID: 0x0bda (Realtek Semiconductor Corp.)
          Version: 1.00
          Serial Number: 77771111153705700
          Speed: Up to 480 Mb/sec
          Manufacturer: Generic
          Location ID: 0x1d134000 / 11
          Current Available (mA): 500
          Current Required (mA): 500

          The Gqrx 0.0 window appears ok, widgets work, but when I turn on the DSP, all I get is a slowly growing pink curtain. If I set the FFT to 30 fps, it uses slightly more CPU (22% vs 21%).

          Thanks for any advice. =Jim

  11. It looks like the gnuradio port has the same problem some of us are seeing, ‘mmap or shm_open is not available’.
    Until someone figures out how to get the shared memory mapping working on affected system,
    Could you please re-compile and post a version with -DTRY_SHM_VMCIRCBUF=OFF ??

    I tried to do it myself but failed, ..was my first attemp to compile on a mac tho.
    thanks

  12. Hi,
    Thank you for the nice software, however when running on 10.7 terminals, I got these errors below. Please help.

    XBook:~ XMac$ /Applications/gqrx.app/Contents/MacOS/gqrx
    gr-osmosdr supported device types: file fcd rtl rtl_tcp
    >>> gr_fir_ccf: using SSE
    >>> gr_fir_ccc: using SSE
    Using Volk machine: sse4_1_64_orc
    >>> gr_fir_fff: using SSE
    gr-osmosdr supported device types: file fcd rtl rtl_tcp
    Using device #0: ezcap USB 2.0 DVB-T/DAB/FM dongle
    Found Elonics E4000 tuner
    Exact sample rate is: 910000.026819 Hz
    OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOgr_vmcircbuf_mmap_shm_open: mmap or shm_open is not available
    gr_buffer::allocate_buffer: failed to allocate buffer of size 64 KB
    Qt has caught an exception thrown from an event handler. Throwing
    exceptions from an event handler is not supported in Qt. You must
    reimplement QApplication::notify() and catch all exceptions there.
    terminate called throwing an exceptionAbort trap: 6

  13. Hi,
    this is a very cool software, thanks a lot for developing!
    I am having problems with Macbook Air (2011), 4GB Ram, to get any signal at all. I’m using the Hama nano and left the device string unchanged, but tried later with different settings (like instructions for windows suggested “RTL tuner=e4k”), resuling in crashes). Whatever frequency I use, there is nothing, not even local radiostations…
    In Virtualbox I could get the DVB-T software to show up some 16 channels and HDSDR to show signals like radiostation (89-105MHz) but no wide-fm was possible – so I don’t think it is a hardware issue…
    Any help would be very appreciated πŸ˜‰
    Thanks, Sergej

  14. Hi Dekar,

    It’s working great on MBP Retina, 10.8.2. However, whenever I select Data->AFSK1200, the audio changes to a digital buzz and I’m unable to get any type of audio, regardless of mode, to work after that. Occasionally, the app freezes (rainbow cursor) and I have to force quit.

    Thanks,
    Kevin

  15. Yes, v4 indeed fixes the bug for me…still having some UI woes (buttons stuck on top of others etc.) but its definitely a great step towards the perfect rtlsdr-software πŸ™‚

    Thanks + Greets,
    Flo

  16. gqrx_4.dmg is Working!!
    Thank You for answering my request for a -DTRY_SHM_VMCIRCBUF=OFF Build
    I’ve got good FM stereo for the first time on my mac, tho the volume is extremely low. I’ve only tested for a half hour, had some crashes, changing any RTL settings, there’s no side scrolling the band.. this does give me hope for a OSX SDR, THX

    • Just increase the volume, there’s a slider for that. (Audio tab, gain slider) I am not sure what you mean by side scrolling, scrolling horizontal when zoomed in? You can actually do that, grab the X-axis labels and move the mouse sideways.

  17. Congratulations, the first sdr Mac program with usb dongle to function without complex installations.
    I would like to know why the receive frequency is indicated in small characters, while “channel filter frequency” characters are great. What is its use?
    I noticed that the program does not keep the configurations on reboot and there is a long delay in following commands. Eg sound levels, frequency shift. Crashes when I save the settings. I hope these data can help you
    I’m using a MacBook Pro Intel Core 2 Duo 2.5 GHz OSX 10.6.8.
    Tested with mac mini OSX 10.7.6 latest version, crashes on startup. I do not know why.
    I’ll follow the updates and I will cheer for you. many thanks !

    Claudio

    • That’s cause the channel filter frequency is an interactive widget, you can click on it or enter numbers to fine tune. Also about the delay, does it get better when using 2.4Mhz samplerate? Cause I only have that problem when using the lower rates.

  18. Pingback: Radio Surfing In Style For Cheap (Or Getting Started with RTL-SDR) | Jc's Boring-Ass Life

    • Recording actually works…kind of. The audio is indeed recorded in a wav file (saved in the same directory gqrx is launched from), however the simultaneus playback of what you’re recording is not implemented yet, I hope sooner than later it’ll be.
      In the meanwhile you can use Soundflower to set “Soundflower (2ch)” as the default input and output device for the system and record the audio with something else, Audacity for example or even just QuickTime Player.

  19. Thanks so much for this! It works great on my Macbook / OSX 10.8. I’ve been looking for an OSX software package and this is working perfectly. I was trying to run software on Windows under VMWare and the CPU just couldn’t handle it, but this software lets me run 2.4MHz stream with low CPU usage. Great job and much appreciated.

  20. No updates in the future? We are waiting for improvements, how can we help you?
    I remember that for “Windows” there is a great SDRSharp. But very complicated to install than GQRX. Thank you all!

  21. Hi,

    it works on OS X 10.6.8 with some defects: the buttons in the panel of the recorder and noise blanker are overlapped and if I try to change the demodulator settings at run time the program crashes.

    You should be able to choose the destination directory of the wav file.

    Other than that it works well.

    Thank you.

  22. Installed on my Macbook Pro intel snow leopard and works great, although if I try to change any config params, it freezes and I have to force quit. But works great for the most part.
    Does anyone know if there are any add-on’s to store frequencies in a list and recall them or scan from stored freqs? That would be a very useful addition.
    Keep up the good work!
    73…Arnie W8DU

    • You should be able to change the parameters before pressing the “Start DSP” button. So just close the application, reopen it and change them. I don’t feel like tracking that bug down right now since I think the workaround isn’t too much hassle.

  23. I’m having a weird issue. The very first time I plugged in the device and launched gqrx, I was able to get it to play static on the default frequency. Then the app locked up, I had to force quit it, and it has never worked since. Now, the device is usually recognized the first time I fire up the program, but it is never able to actually tune anything. If I run it from the command line, I see stuff like:

    [E4K] PLL not locked for 107900000 Hz!
    rtlsdr_demod_write_reg failed with -99
    rtlsdr_demod_read_reg failed with -99

    Then it stops working completely (i.e. the app locks up), and when I restart it, I get the error “FATAL: Wrong rtlsdr device index given.” Also rtl_test (I compiled myself) seems to not be able to find the device when it’s in that state. Sometimes unplugging it and plugging in back in makes it work briefly, sometimes not.

    Has anyone seen this before? I’m wondering if I just have a dud device (they’re cheap enough that I don’t really mind buying another, but I don’t want to waste my money if that’s not the issue). I tried it on my an MBP and a MacBook Air (both running Mountain Lion) with the same results…

    • I own three dongles and none of them ever showed such a problem. So I guess the dongle is indeed defective. Can you use it to watch TV using the vendor software? If you’re in a country without DVB-T you can probably still try to use the software it came with to listen to FM radio. I know that at least some dongles come with Windows software supporting FM reception.

      • Hmm, I don’t have any Windows machines handy, though I guess I can see if it works in VMWare (if I can even find the CD that came with it). I’m in the US, so no DVB-T.

        After I posted last night, I actually noticed that it works better when I remove it from the plastic case. So I’m thinking there’s probably a bad solder joint there somewhere, that’s getting compressed or flexed in the case, causing a flaky connection.

  24. Great job! But on my Mac 10.7.5 crashes often. When I restart the application, saves the frequency, but not the “mode” and the sound level. In “Save settings” I can save the configuration wen I load it crashes
    Device: label = ‘Generic RTL2832U (eg nano hama)’, rtl = 0
    Thank you for your support

  25. 10.8.2, Macbook Pro Retina, cheap Amazon dongle, works just fine. Thanks for your work on this. I tried to compile, but got some macports config errors and this was much much easier.

      • Packaging those two up together would be terrific! Thanks for a great port of gqrx: I run it under 10.8.2. It does crash sometimes when I change a setting, but I find turning the DSP off before making the change minimizes the number of these. Cheers!

  26. Mine doesn’t list the connected dongle. It’s 10.7.5 and the device manager has it as:
    Product ID: 0x0001
    Vendor ID: 0x0e0f (VMWare, Inc.) -> In fact it’s some hama dongle
    Verze: 1.00
    Serial Number: 991
    Speed: 480 Mb/s
    Vendor: Realtek
    ID location: 0xfa120000 / 8
    Available Current (mA): 500
    Requested Current (mA): Unknown

    The device actually runs on wxp with SDR#, so I guess the device is okay. The startup input selection dialogue only says other on the input selection, so I can’t even start it:(

    Any ideas?

  27. Picked up a 20.00 DVB-T dongle from Amazon, installed GQRX on to my Mac Mini running 10.8.2, it worked for about 10 seconds then died. Every time I ran it, the icon bounced in the dock and only a right click and a Force Quit would kill it. I created a different account on my min and presto, worked like a charm, so far have had a lot of fun with gqrx, very nice port on to OS X.

  28. I might be a minor problem with the Mac OS X distribution “gqrx_6.dmg – Latest (01/16/2013)”.
    I have manage to start the application manually. I.e. manually start of XQuarts, rtl_tcp, Gqrx.

    My guess is that a startup script is missing or corrupt, Can you please help me out.

    /Christer

Leave a Reply

Your email address will not be published.