Hello there, I've been trying to use my OAK-D pro wide POE on MacBook Air M1 but I keep getting this error, I have tried troubleshooting but none of it seems to work. Please help!

  • Happy to see a solution arose that was able to maintain internet connection while connected to the camera! Playing around with some of the above, the summary I've extracted from this is the following:

    Configuring Network Settings

    In network settings, not only do you need to make sure you "Manually" specify the IP address to something within the 169.254.XXX.XXX range with a 255.255.0.0 subnet, but you need to also make sure that the Router value is set to the same. So for example, for me, this looks like:

    You will then need to check/change the service order, found in the overflow menu here:

    Case 1: With Dongle at the TOP of the service order

    If you set the dongle as the first-most item in the service order as described in my earlier answer, the issue becomes that MacOS also automatically sets it as the default route for your network traffic. In this case, you need to remove this entry from your routing table and add back your wifi (or wired) internet connection as the default.

    So, you would need to do:

    >>> sudo route delete default -interface <dongle-interface>
    >>> sudo route add default <gateway-ip>

    You need to add the second line even if your internet interface (e.g. eth0) appears at the top of the nestat -nr output. For some reason, these prior entries don't seem to kick in automatically when you remove the dongle as the default. Also, at least for me, it doesn't seem necessary to add any additional entries to route relevant traffic directly to the dongle if you do the above.

    Case 2: With Dongle at the BOTTOM of the service order

    An alternative solution is to do the opposite of what's recommended by my earlier reply and place the dongle at the very bottom of the service order. In this case, you need to add an additional entry to the routing table to route relevant traffic directly to the dongle.

    This simply requires a:

    >>> sudo route add -net 169.254 -interface <dongle-interface>

    Personally, I much rather the second solution (Case 2), because the Oak-D has a tendency to completely disconnect and reconnect to the Mac if you run some pipeline and then exit - this means that you have to repeat the routing table changes every time. On the other hand, the change made with the second approach seems to persist across reconnects.

jakaskerl
Hey Jaka, Thanks for reaching out. I am connecting using the ethernet cable to the hub and then the hub to the laptop. I also don't have device_manager.py from my installation.

This is what I get when I log my system information:

{

"architecture": "64bit",

"machine": "arm64",

"platform": "macOS-13.4-arm64-arm-64bit",

"processor": "arm",

"python_build": "main Apr  7 2023 20:13:31",

"python_compiler": "Clang 14.0.0 (clang-1400.0.29.202)",

"python_implementation": "CPython",

"python_version": "3.11.3",

"release": "22.5.0",

"system": "Darwin",

"version": "Darwin Kernel Version 22.5.0: Mon Apr 24 20:53:44 PDT 2023; root:xnu-8796.121.2\~5/RELEASE_ARM64_T8103",

"win32_ver": "",

"packages": [

    "aiohttp==3.8.4",

    "aiosignal==1.3.1",

    "anyio==3.6.2",

    "async-timeout==4.0.2",

    "attrs==23.1.0",

    "beautifulsoup4==4.12.2",

    "blobconverter==1.4.2",

    "boto3==1.27.0",

    "botocore==1.30.0",

    "certifi==2022.12.7",

    "charset-normalizer==2.0.12",

    "chromadb==0.3.11",

    "click==8.1.3",

    "clickhouse-connect==0.5.20",

    "depthai==2.20.2.0",

    "depthai-sdk==1.9.4",

    "distinctipy==1.2.2",

    "dnspython==2.3.0",

    "duckdb==0.7.1",

    "duckduckgo-search==2.8.5",

    "fastapi==0.95.1",

    "ffmpy3==0.2.4",

    "filelock==3.12.0",

    "frozenlist==1.3.3",

    "h11==0.14.0",

    "hnswlib==0.7.0",

    "httptools==0.5.0",

    "huggingface-hub==0.13.4",

    "idna==3.4",

    "Jinja2==3.1.2",

    "jmespath==1.0.1",

    "joblib==1.2.0",

    "loguru==0.7.0",

    "lz4==4.3.2",

    "MarkupSafe==2.1.2",

    "marshmallow==3.17.0",

    "mcap==1.1.0",

    "mcap-ros1-support==0.0.8",

    "mpmath==1.3.0",

    "multidict==6.0.4",

    "networkx==3.1",

    "nltk==3.8.1",

    "numpy==1.25.0",

    "openai==0.27.4",

    "opencv-contrib-python==4.5.5.62",

    "packaging==23.1",

    "pandas==2.0.0",

    "Pillow==9.5.0",

    "pinecone-client==2.2.1",

    "pip==23.1.2",

    "protobuf==4.21.12",

    "pydantic==1.10.7",

    "PyQt3D==5.15.5",

    "PyQt5==5.15.7",

    "PyQt5-sip==12.11.0",

    "PyQtChart==5.15.6",

    "PyQtDataVisualization==5.15.5",

    "PyQtNetworkAuth==5.15.5",

    "PyQtPurchasing==5.15.5",

    "PyQtWebEngine==5.15.6",

    "python-dateutil==2.8.2",

    "python-dotenv==1.0.0",

    "pytube==15.0.0",

    "PyTurboJPEG==1.6.4",

    "pytz==2023.3",

    "pyusb==1.2.1",

    "pywatchman==1.4.1",

    "PyYAML==6.0",

    "Qt.py==1.3.8",

    "regex==2023.3.23",

    "requests==2.26.0",

    "rosbags==0.9.11",

    "ruamel.yaml==0.17.32",

    "ruamel.yaml.clib==0.2.7",

    "s3transfer==0.6.1",

    "scikit-learn==1.2.2",

    "scipy==1.10.1",

    "sentence-transformers==2.2.2",

    "sentencepiece==0.1.98",

    "sentry-sdk==1.5.1",

    "setuptools @ file:///opt/homebrew/Cellar/python%403.11/3.11.3/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ensurepip/_bundled/setuptools-67.6.1-py3-none-any.whl",

    "six==1.16.0",

    "sniffio==1.3.0",

    "soupsieve==2.4.1",

    "starlette==0.26.1",

    "sympy==1.11.1",

    "termcolor==2.2.0",

    "threadpoolctl==3.1.0",

    "tiktoken==0.3.3",

    "tokenizers==0.13.3",

    "torch==2.0.0",

    "torchvision==0.15.1",

    "tqdm==4.65.0",

    "transformers==4.28.1",

    "types-PySide2==5.15.2.1.5",

    "typing_extensions==4.5.0",

    "tzdata==2023.3",

    "urllib3==1.26.15",

    "uvicorn==0.21.1",

    "uvloop==0.17.0",

    "watchfiles==0.19.0",

    "websockets==11.0.2",

    "wheel @ file:///opt/homebrew/Cellar/python%403.11/3.11.3/libexec/wheel-0.40.0-py3-none-any.whl",

    "xmltodict==0.13.0",

    "yarl==1.8.2",

    "zstandard==0.21.0"

],

"usb": [

    {

        "port": 3,

        "vendor_id": "0x0bda",

        "product_id": "0x8152",

        "speed": "High"

    },

    {

        "port": 1,

        "vendor_id": "0x14cd",

        "product_id": "0x8601",

        "speed": "High"

    }

],

"uname": [

    "Darwin Admins-MacBook-Air.local 22.5.0 Darwin Kernel Version 22.5.0: Mon Apr 24 20:53:44 PDT 2023; root:xnu-8796.121.2\~5/RELEASE_ARM64_T8103 arm64 arm"

]

}

I have also manually updated the DHCP server.

  • erik replied to this.

    erik as per the screenshot above, I have updated the DHCP IP address

    • erik replied to this.

      CodeGenius Why did you set the IP to 169.254.1.222? As that would be the default fallback static IP of the camera.

        erik
        I have updated it.

        The error is persistent:

        I apologize if this is taking so long. I have never used an OAK-D before.

          Hi CodeGenius
          You need to set the subnet mask as well, otherwise the PC doesn't know which devices are in the same subnet.

          Thanks,
          Jaka

            jakaskerl

            I have:

            But now the status has changed from not connected to self-assigned IP:

            The error message has also changed:

              Hi CodeGenius
              Can you check the device manager for found devices? Then change the device IP to your usual subnet range (192.168.100.x mask 255.255.255.0 i think).

              Thanks,
              Jaka

                3 months later

                I was happy to see a thread about someone going through precisely the same problem I'm currently be confronted with, but was disappointed to see that the conclusion was "I changed Operating System and it worked" 😅

                To avoid creating a new thread and keep this issue consolidated in the same place for future viewers, I'm hoping maybe @jakaskerl & @erik could perhaps help further debug issue here?

                I'm in exactly the same situation as OP was. I'm using a 2019 Intel MacBook Pro, with macOS 13.2.1 (22D68). The screenshots posted by @CodeGenius are identical to what I'm seeing. In essence, I can ping 169.254.1.222, but it doesn't show up as any of the devices in Hardware Info or when running system_profiler SPUSBDataType.

                More context:

                • I have used the camera successfully on the same laptop whilst running under Ubuntu 22.04.03 (it is a dual-boot system)
                • I have tried to specify the device whilst initialing the camera via its IP, i.e. depthai.Device("169.254.1.222"), to no avail
                • I'm using a USB-C dongle to connect the PoE signal line to the laptop
                • erik replied to this.

                  Yehp, went through all the troubleshooting steps except for the factory resetting (I know the camera works from my experience with it on Ubuntu).

                  One thing I've noticed is that the camera will appear occasionally, but the moment it tries to get accessed, it disappears. More precisely, a simple way to reproduce the situation I'm observing is as as follows:

                  1. I start the device_manager.py from the utilities folder in depthai-python
                  2. The camera shows up as one of the devices from the dropdown menu
                  3. I hit the search button
                  4. Not only does the camera not show up on the list, but it disconnects entirely from the system, i.e. the Network settings in MacOS shows it as "Not Connected".
                  5. A little while later, the Network adapter dongle reappears connected to the laptop

                  Have you noticed problematic USB-C dongles being an issue across OSs or only particularly for MacOS? In this case, I'm using the same dongle when I'm booted into Ubuntu or Mac, and it works on the former but not on the latter.

                  • One potential difference between the OSs is that on Ubuntu you can explicitly set IPv4 to Link Local Only (which I've observed is preferable for the stability of the connection, otherwise Ubuntu occasionally will also fail to find the camera when set to) whereas on MacOS, that explicit option is only available for IPv6 but IPv4 you need to manually configure or use DHCP (and so to achieve the same you set the IP address in the 169.254 range + mask)

                    Hi Abstraction
                    Was experiencing the same issue on OAK-D-POE, MBP M1, ETH to USBC dongle.
                    The camera would be identified under USB LAN, but would disconnect anytime I booted the device. Bootloader connection (device_manager.py) would work as expected.

                    What changed is I went on WIFI, now it works. So very likely a dongle problem.

                    Thanks,
                    Jaka