marek-simonik / record3d

Accompanying library for the Record3D iOS app (https://record3d.app/). Allows you to receive RGBD stream from iOS devices with TrueDepth camera(s).
https://record3d.app/
GNU Lesser General Public License v2.1
379 stars 55 forks source link

Windows python demo: usbmuxd_connect: Connect failed, Error code=3 #56

Open xinaesthete opened 1 year ago

xinaesthete commented 1 year ago

When running python demo-main.py on Windows 10, I get

Searching for devices
1 device(s) found
        ID: 4779 
        UDID: 00008112-000C215A3C03401E

[libusbmuxd] usbmuxd_connect: Connect failed, Error code=3

(and then ctrl-c doesn't seem able to break out of the script).

I have installed iTunes, and accepted prompts on the iPad to trust this computer etc. The C++ demo seems to manage to connect and stream data across, although I have yet to get it properly configured to use OpenCV. I couldn't see any graphics output in the C++ demo, but I imagine that might be because it was built without OpenCV. All other signs were that the connection was fine in C++ (status messages in the iPad app, console output from C++, setting breakpoints in frame callbacks...).

On Mac, the Python demo ran fine - although it was necessary to manually install python-opencv which isn't mentioned in the readme.

In case it's useful:

C:\code\record3d>pip list
Package       Version
------------- -----------
numpy         1.24.2
opencv-python 4.7.0.72
pip           22.3
record3d      1.3.1.post2
setuptools    65.5.0
Ar4enal commented 1 year ago

Follow these steps works fine with me:

  1. start APP and press the red button.
  2. run python demo-main.py on Windows

If I start demo-main.py firstly, it shows the same error like you said.

marek-simonik commented 1 year ago

Unfortunately, I couldn't replicate the issue. When running demo-main.py using Python 3.11 on Windows 11 and with the latest version of iTunes, I was able to run the demo without errors, so I want to apologize for not being able to troubleshoot this issue. The C++ and Python demos both use the same underlying C++ library, so it is strange that the C++ demo seems to work meanwhile the Python does not.

I can only suggest what I usually do when Record3D does not seem to stream data:

  1. Physically disconnect both sides of the USB cable and reattach them (surprisingly, this has helped me a few times).
  2. [Optional] Force-restart iPhone (note that this is different than ordinary restart).
  3. Make sure to have only one iDevice connected to your computer.
  4. Kill the Record3D app on your iPhone and open it again.
  5. Press the red circular button in Record3D on your iPhone and run python demo-main.py. The order should not matter.

The reason why OpenCV isn't listed as a dependency is that the record3d library itself is not dependent on OpenCV (I didn't want to include such a heavy dependency), only the demos are (those are not a part of the library per se). But I agree that I should have mentioned the OpenCV requirement for the demos.

xinaesthete commented 1 year ago

Thanks, I'll try to have another look at some point.

Rationale with OpenCV seems sensible.