Joulescope on MacOS High Sierra

I wasn’t able to get Joulescope 0.2.4 in MacOS High Sierra 10.13.6

Here is the output when I ran it on the command line:

$ /Volumes/joulescope/joulescope.app/Contents/MacOS/joulescope_launcher 
INFO:joulescope.usb.libusb.device:scan found no devices
INFO:joulescope_ui.config:Configuration file not found: /Users/alvaro/.joulescope/config.json5
INFO:joulescope_ui.oscilloscope:x True
INFO:joulescope_ui.oscilloscope:on_zoom_auto_y_button(True)
INFO:joulescope_ui.oscilloscope:y False
INFO:joulescope_ui.oscilloscope:x True
INFO:joulescope_ui.oscilloscope:on_zoom_auto_y_button(True)
INFO:joulescope_ui.oscilloscope:y False
INFO:joulescope_ui.main:on_multimeterMenu(True)
INFO:joulescope_ui.main:device_close None
INFO:joulescope.usb.libusb.device:scan found ['16d0/0e88/̎000039']
INFO:joulescope_ui.main:current device = disable, True
INFO:joulescope_ui.main:device_scan activate first device Joulescope 16d0/0e88/̎000039
INFO:joulescope_ui.main:device_close disable
INFO:joulescope_ui.main:device_open Joulescope 16d0/0e88/̎000039
INFO:joulescope.usb.device_thread:open
INFO:joulescope.usb.libusb.device:open: start 16d0/0e88/̎000039
INFO:joulescope.usb.libusb.device:open: success
INFO:joulescope.usb.libusb.device:Configure device
ERROR:joulescope.usb.device_thread:DeviceThread.process
Traceback (most recent call last):
  File "joulescope/usb/device_thread.py", line 84, in cmd_process_all
  File "joulescope/usb/device_thread.py", line 53, in cmd_process
  File "joulescope/usb/libusb/device.py", line 562, in open
OSError: libusb_claim_interface 0 failed
ERROR:joulescope.usb.device_thread:device thread hung
Traceback (most recent call last):
  File "joulescope_ui/main.py", line 489, in <lambda>
  File "joulescope_ui/main.py", line 422, in _device_open
  File "joulescope/driver.py", line 204, in open
  File "joulescope/usb/device_thread.py", line 127, in open
  File "joulescope/usb/device_thread.py", line 109, in _post_block
  File "queue.py", line 178, in get
_queue.Empty
INFO:joulescope.usb.libusb.device:open
Traceback (most recent call last):
  File "joulescope_ui/main.py", line 275, in on_statusUpdateTimer
  File "joulescope/driver.py", line 530, in status
AttributeError: 'NoneType' object has no attribute 'status'
Traceback (most recent call last):
  File "joulescope_ui/main.py", line 275, in on_statusUpdateTimer
  File "joulescope/driver.py", line 530, in status
AttributeError: 'NoneType' object has no attribute 'status'
Traceback (most recent call last):
  File "joulescope_ui/main.py", line 275, in on_statusUpdateTimer
  File "joulescope/driver.py", line 530, in status
AttributeError: 'NoneType' object has no attribute 'status'
Traceback (most recent call last):
  File "joulescope_ui/main.py", line 275, in on_statusUpdateTimer
  File "joulescope/driver.py", line 530, in status
AttributeError: 'NoneType' object has no attribute 'status'
Traceback (most recent call last):
  File "joulescope_ui/main.py", line 275, in on_statusUpdateTimer
  File "joulescope/driver.py", line 530, in status
AttributeError: 'NoneType' object has no attribute 'status'
Traceback (most recent call last):
  File "joulescope_ui/main.py", line 275, in on_statusUpdateTimer
  File "joulescope/driver.py", line 530, in status
AttributeError: 'NoneType' object has no attribute 'status'
Traceback (most recent call last):
  File "joulescope_ui/main.py", line 275, in on_statusUpdateTimer
  File "joulescope/driver.py", line 530, in status
AttributeError: 'NoneType' object has no attribute 'status'
Traceback (most recent call last):
  File "joulescope_ui/main.py", line 275, in on_statusUpdateTimer
  File "joulescope/driver.py", line 530, in status
AttributeError: 'NoneType' object has no attribute 'status'
Traceback (most recent call last):
  File "joulescope_ui/main.py", line 275, in on_statusUpdateTimer
  File "joulescope/driver.py", line 530, in status
AttributeError: 'NoneType' object has no attribute 'status'
Traceback (most recent call last):
  File "joulescope_ui/main.py", line 275, in on_statusUpdateTimer
  File "joulescope/driver.py", line 530, in status
AttributeError: 'NoneType' object has no attribute 'status'
INFO:joulescope_ui.main:device_close Joulescope 16d0/0e88/̎000039
Traceback (most recent call last):
  File "joulescope_ui/main.py", line 690, in closeEvent
  File "joulescope_ui/main.py", line 476, in _device_close
AttributeError: 'NoneType' object has no attribute 'on_x_change'
INFO:joulescope.usb.libusb.device:close
^CException ignored in: <module 'threading' from '/Volumes/joulescope/joulescope.app/Contents/MacOS/threading.pyc'>
Traceback (most recent call last):
  File "threading.py", line 1273, in _shutdown
  File "threading.py", line 1032, in join
  File "threading.py", line 1048, in _wait_for_tstate_lock
KeyboardInterrupt

That being said… I upgraded to MacOS Mojave (10.14.3) and it is now working just fine :smiley:

1 Like

The 0.2.4 software was built with MacOS Mojave (10.14.3). Thanks for sending along the command line output! The key is that libusb could not open Joulescope:

OSError: libusb_claim_interface 0 failed
ERROR:joulescope.usb.device_thread:device thread hung

I don’t know why. Could libusb need different distributions for different MacOS versions? I am distributing just one version with the Joulecope software. I’ll investigate.

In the error, the Joulescope software detected the error, but I could certainly improve the error handling. Noted.

This issue was fixed in 0.2.7. The Joulescope UI now packages libusb for a variety of macOS versions.