LimeSDR mini on OSX -- Must be unplugged and replugged after every run

Macbook Pro - OSX 10.13.4 - 2.5 GHz Intel Core i7 - 16 gb RAM - 2 USB 3.0 Ports

Just received my LimeMini a few days ago.

I know LimeSDR is designed for the Linux environment but, this problem I’m having is very annoying. Every time I’ve accessed my Lime Mini to receive some samples or run a flow graph, the device becomes unresponsive and I have to unplug it from the usb port and replug it to make it work again.

Any suggestions from any Mac users out there?

Best Regards,
Ben

This sounds vaguely familiar and trying to recall who uses OS X. Perhaps @joshblum or @luigi may have some ideas.

I saw that post too. It seems someone else has the same issue. Interestingly, he mentioned that if you use the shutdown icon inside of Gnuradio Companion instead of simply closing the python window the application is running in, this faulty behavior doesn’t occur.

Andrew, while I’ve got your attention, I’ve noticed that I with my new Mini I get a much stronger signal using USB 2.0 than when I use USB 3.0. I thought I read that the mini basically requires the extra power of USB 3.0. If you have an insight on this, I’d love to hear it.

I’m not sure if its relevant, but I use USB 2.0 over a small extension cable and I use USB 3 by having the mini plugged directly into the USB slot. Could the proximity to the laptop itself account for this?

Thanks

USB 3.0 should definitely give better performance and this does seem odd. @IgnasJ or @Zack may be able to assist with debugging.

Which software are you using? I’ve experienced something similar with the early version of gr-limesdr, but I think the problem is fixed in the latest version.

I’m using the latest version gr-limesdr now and still having the issue. I suspect that it something related to the lime mini directly because I experience the same thing when I run the Lime API examples in C++. It runs fine the first time but, then receives 0 samples on all runs after this.

I’ve experienced this zeroed I/Q problem with Soapy API on macOS. Never saw it happening with LMS7 direct API. There is definitely something wrong with the software.

I have the same problem on my MacBook. Any possible resolution or maybe workaround?

Unfortunately, I’ve been dealing with this issue since I received by LimeMini and haven’t found a real fix. This problem doesn’t exist within my Ubuntu VM’s and so I’m led to believe it has something to do with how the LimeMini interacts with the FTDI drivers on OSX. My full-size LimeSDR doesn’t have this quirk.

Despite this annoying problem, the actual performance doesn’t appear affected. It sure makes for a slow workflow though.

I already discussed this with you in another thread :slight_smile:

Yes, trouble certainly software, on linux and windows all seems ok, but on Mac looks like a trouble with libusb with closing/resetting device on Darwin: when application tries gracefully close lime mini, it get errors from libusb

libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3
libusb: warning [darwin_abort_transfers] aborting all transactions on interface 1 pipe 3

or with LIBUSB_DEBUG=4:

[ 6.610774] [00004707] libusb: debug [usbi_handle_transfer_completion] transfer 0x7f9fce6056e8 has callback 0x103b8ad90
[ 6.610777] [00004707] libusb: debug [sync_transfer_cb] actual_length=64
[ 6.610782] [00004707] libusb: debug [libusb_get_next_timeout] no URBs, no timeout!
[ 6.610785] [00004707] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 6.610789] [00004707] libusb: debug [handle_events] poll() 1 fds with timeout in 250ms
[ 6.610784] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce6056e8
[ 6.610913] [00000307] libusb: debug [libusb_alloc_transfer] transfer 0x7f9fce605668
[ 6.610917] [00000307] libusb: debug [libusb_submit_transfer] transfer 0x7f9fce605668
[ 6.610919] [00000307] libusb: debug [ep_to_pipeRef] converting ep address 0x01 to pipeRef and interface
[ 6.610921] [00000307] libusb: debug [ep_to_pipeRef] pipe 1 on interface 0 matches
[ 6.610946] [00000307] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
[ 6.610950] [00000307] libusb: debug [libusb_handle_events_timeout_completed] another thread is doing event handling
[ 6.610977] [00002907] libusb: debug [darwin_async_io_callback] an async io operation has completed
[ 6.610988] [00004707] libusb: debug [handle_events] poll() returned 1
[ 6.610993] [00004707] libusb: debug [handle_events] caught a fish on the event pipe
[ 6.610996] [00004707] libusb: debug [darwin_handle_transfer_completion] handling bulk completion with kernel status 0
[ 6.610998] [00004707] libusb: debug [usbi_handle_transfer_completion] transfer 0x7f9fce605668 has callback 0x103b8ad90
[ 6.611001] [00004707] libusb: debug [sync_transfer_cb] actual_length=20
[ 6.611008] [00004707] libusb: debug [libusb_get_next_timeout] no URBs, no timeout!
[ 6.611010] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce605668
[ 6.611017] [00000307] libusb: debug [libusb_alloc_transfer] transfer 0x7f9fce401bb8
[ 6.611022] [00000307] libusb: debug [libusb_submit_transfer] transfer 0x7f9fce401bb8
[ 6.611027] [00000307] libusb: debug [ep_to_pipeRef] converting ep address 0x01 to pipeRef and interface
[ 6.611031] [00000307] libusb: debug [ep_to_pipeRef] pipe 1 on interface 0 matches
[ 6.611011] [00004707] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 6.611057] [00004707] libusb: debug [handle_events] poll() 1 fds with timeout in 250ms
[ 6.611078] [00000307] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
[ 6.611083] [00000307] libusb: debug [libusb_handle_events_timeout_completed] another thread is doing event handling
[ 6.611107] [00002907] libusb: debug [darwin_async_io_callback] an async io operation has completed
[ 6.611118] [00004707] libusb: debug [handle_events] poll() returned 1
[ 6.611123] [00004707] libusb: debug [handle_events] caught a fish on the event pipe
[ 6.611125] [00004707] libusb: debug [darwin_handle_transfer_completion] handling bulk completion with kernel status 0
[ 6.611128] [00004707] libusb: debug [usbi_handle_transfer_completion] transfer 0x7f9fce401bb8 has callback 0x103b8ad90
[ 6.611130] [00004707] libusb: debug [sync_transfer_cb] actual_length=20
[ 6.611138] [00004707] libusb: debug [libusb_get_next_timeout] no URBs, no timeout!
[ 6.611141] [00004707] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 6.611146] [00004707] libusb: debug [handle_events] poll() 1 fds with timeout in 250ms
[ 6.611140] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce401bb8
[ 6.611157] [00000307] libusb: debug [libusb_alloc_transfer] transfer 0x7f9fce7011b8
[ 6.611159] [00000307] libusb: debug [libusb_submit_transfer] transfer 0x7f9fce7011b8
[ 6.611162] [00000307] libusb: debug [ep_to_pipeRef] converting ep address 0x01 to pipeRef and interface
[ 6.611164] [00000307] libusb: debug [ep_to_pipeRef] pipe 1 on interface 0 matches
[ 6.611192] [00000307] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
[ 6.611196] [00000307] libusb: debug [libusb_handle_events_timeout_completed] another thread is doing event handling
[ 6.611222] [00002907] libusb: debug [darwin_async_io_callback] an async io operation has completed
[ 6.611232] [00004707] libusb: debug [handle_events] poll() returned 1
[ 6.611235] [00004707] libusb: debug [handle_events] caught a fish on the event pipe
[ 6.611238] [00004707] libusb: debug [darwin_handle_transfer_completion] handling bulk completion with kernel status 0
[ 6.611240] [00004707] libusb: debug [usbi_handle_transfer_completion] transfer 0x7f9fce7011b8 has callback 0x103b8ad90
[ 6.611242] [00004707] libusb: debug [sync_transfer_cb] actual_length=20
[ 6.611249] [00004707] libusb: debug [libusb_get_next_timeout] no URBs, no timeout!
[ 6.611251] [00004707] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 6.611256] [00004707] libusb: debug [handle_events] poll() 1 fds with timeout in 250ms
[ 6.611250] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce7011b8
[ 6.611266] [00000307] libusb: debug [libusb_alloc_transfer] transfer 0x7f9fce605668
[ 6.611268] [00000307] libusb: debug [libusb_submit_transfer] transfer 0x7f9fce605668
[ 6.611271] [00000307] libusb: debug [ep_to_pipeRef] converting ep address 0x01 to pipeRef and interface
[ 6.611273] [00000307] libusb: debug [ep_to_pipeRef] pipe 1 on interface 0 matches
[ 6.611297] [00000307] libusb: debug [libusb_get_next_timeout] no URB with timeout or all handled by OS; no timeout!
[ 6.611301] [00000307] libusb: debug [libusb_handle_events_timeout_completed] another thread is doing event handling
[ 6.611326] [00002907] libusb: debug [darwin_async_io_callback] an async io operation has completed
[ 6.611336] [00004707] libusb: debug [handle_events] poll() returned 1
[ 6.611342] [00004707] libusb: debug [handle_events] caught a fish on the event pipe
[ 6.611344] [00004707] libusb: debug [darwin_handle_transfer_completion] handling bulk completion with kernel status 0
[ 6.611347] [00004707] libusb: debug [usbi_handle_transfer_completion] transfer 0x7f9fce605668 has callback 0x103b8ad90
[ 6.611349] [00004707] libusb: debug [sync_transfer_cb] actual_length=20
[ 6.611356] [00004707] libusb: debug [libusb_get_next_timeout] no URBs, no timeout!
[ 6.611358] [00004707] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 6.611363] [00004707] libusb: debug [handle_events] poll() 1 fds with timeout in 250ms
[ 6.611357] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce605668
[ 6.611375] [00000307] libusb: debug [libusb_release_interface] interface 1
[ 6.611530] [00000307] libusb: debug [libusb_close] 
[ 6.611546] [00004707] libusb: debug [handle_events] poll() returned 1
[ 6.611551] [00004707] libusb: debug [handle_events] caught a fish on the event pipe
[ 6.611553] [00004707] libusb: debug [handle_events] someone is closing a device
[ 6.611559] [00004707] libusb: debug [libusb_get_next_timeout] no URBs, no timeout!
[ 6.611562] [00004707] libusb: debug [libusb_try_lock_events] someone else is closing a device
[ 6.611568] [00004707] libusb: debug [libusb_event_handler_active] someone else is closing a device
[ 6.611573] [00004707] libusb: debug [libusb_handle_events_timeout_completed] another thread is doing event handling
[ 6.611561] [00000307] libusb: debug [libusb_release_interface] interface 0
[ 6.611723] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604e68
[ 6.611732] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604d68
[ 6.611739] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604c68
[ 6.611744] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604b68
[ 6.611749] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604a68
[ 6.611753] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604968
[ 6.611758] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604868
[ 6.611763] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604768
[ 6.611768] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604668
[ 6.611772] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604568
[ 6.611722] [00004707] libusb: debug [libusb_get_next_timeout] no URBs, no timeout!
[ 6.611775] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604468
[ 6.611781] [00004707] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 6.611787] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604368
[ 6.611793] [00004707] libusb: debug [handle_events] poll() 1 fds with timeout in 250ms
[ 6.611799] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604268
[ 6.611809] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604168
[ 6.611812] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce604068
[ 6.611815] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce603f68
[ 6.611817] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce603e68
[ 6.611819] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce603d68
[ 6.611822] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce603c68
[ 6.611824] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce603b68
[ 6.611826] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce603a68
[ 6.611828] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce6038f8
[ 6.611831] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce6037f8
[ 6.611833] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce6036f8
[ 6.611835] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce6035f8
[ 6.611837] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce6034f8
[ 6.611840] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce6033f8
[ 6.611842] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce6032f8
[ 6.611844] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce602ff8
[ 6.611846] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce602ef8
[ 6.611849] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce602df8
[ 6.611851] [00000307] libusb: debug [libusb_free_transfer] transfer 0x7f9fce602cf8
[ 6.797411] [0000480f] libusb: debug [handle_events] poll() returned 0
[ 6.797479] [0000480f] libusb: debug [libusb_get_next_timeout] no URBs, no timeout!
[ 6.797496] [0000480f] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 6.797510] [0000480f] libusb: debug [handle_events] poll() 1 fds with timeout in 250ms
[ 6.863828] [00004707] libusb: debug [handle_events] poll() returned 0
[ 6.864069] [00000307] libusb: debug [libusb_exit] 
[ 6.864081] [00000307] libusb: debug [libusb_get_next_timeout] no URBs, no timeout!
[ 6.864087] [00000307] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 6.864093] [00000307] libusb: debug [handle_events] poll() 1 fds with timeout in 0ms
[ 6.864108] [00000307] libusb: debug [handle_events] poll() returned 0
[ 6.864114] [00000307] libusb: debug [libusb_unref_device] destroy device 20.24
[ 6.864121] [00000307] libusb: debug [libusb_unref_device] destroy device 20.3
[ 6.864125] [00000307] libusb: debug [libusb_unref_device] destroy device 20.2
[ 6.864131] [00000307] libusb: debug [usbi_remove_pollfd] remove fd 5
[ 7.050191] [0000480f] libusb: debug [handle_events] poll() returned 0
[ 7.050291] [00000307] libusb: debug [libusb_exit] 
[ 7.050307] [00000307] libusb: debug [libusb_exit] destroying default context
[ 7.050315] [00000307] libusb: debug [libusb_get_next_timeout] no URBs, no timeout!
[ 7.050321] [00000307] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 7.050326] [00000307] libusb: debug [handle_events] poll() 1 fds with timeout in 0ms
[ 7.050345] [00000307] libusb: debug [handle_events] poll() returned 0
[ 7.050351] [00000307] libusb: debug [libusb_unref_device] destroy device 20.24
[ 7.050358] [00000307] libusb: debug [libusb_unref_device] destroy device 20.3
[ 7.050364] [00000307] libusb: debug [libusb_unref_device] destroy device 20.2
[ 7.050369] [00000307] libusb: debug [usbi_remove_pollfd] remove fd 3
[ 7.050472] [00002907] libusb: debug [darwin_event_thread_main] darwin event thread exiting
MacBook-Pro-Oleg:gps-sdr-sim oleg$ 

I found an issue on GitHub https://github.com/libusb/libusb/issues/455, but this commit (https://github.com/jiez/libusb/commit/8483de433e60b7771298b03deaec95c5e80551dc) breaks communication with LimeMini at all.