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

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.