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

      Hi jakaskerl , thanks for the reply!

      I'm a little confused though as I didn't think the OAK-D-POE had the ability to push images over Wifi? Can't see it in the docs unless you're referring to the OAK-D-IoT?

      Are you using some PoE over Wifi adapter or something to achieve this? With a separate network card/dongle on your laptop (so as to remain connected to the internet simultaneously)?

        Hi Abstraction
        The Wifi connection is established router <--> PC. The OAK is still connected using UTP cable (ethernet).
        It's not a solution, I'm just wondering if it will work for you as well.

        Thanks,
        Jaka

          Hi jakaskerl ,

          Ahh, right - smart! Just gave it a go through the router and it does indeed seem to be working, so that's great. All evidence therefore points to the dongle being the culprit. I'll report back once I test out the new ones I will receive!

          8 days later

          Following up here, I have now tested this with three different dongles and can rule out, with relative confidence, that the issue isn't dongle related.

          Thankfully, I have managed to nonetheless solve this issue to some extent so hopefully this will help others facing similar problems in the future. Two main things you need to make sure when setting up the connection with the dongle:

          1. 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:

          2. You need to make sure that the Dongle you are using to connect to the PoE camera is the first connection in the "Service Order" within MacOS settings. This is the only way I have found for it to work reliably. In my experience, if you don't ensure this order is kept, you might be able to connect to the bootloader on occasion, but even if you succeed, you'll generally get Failed to find device after booting, error message: X_LINK_DEVICE_NOT_FOUND.


            To view and reorder the Service Order, click on the ellipsis button at the bottom of the settings and reorder the entries until your dongle comes out on top:

            NOTE: When you reorder the Service Order in this way, you will lose access to the internet until you place an actual internet connection back above the dongle.

          This is how I have gotten to work, if anybody digs into this any further and figures out how to get this to work without having to simultaneously lose access to the internet, I'd be grateful if you could share back.

            10 days later

            Amazing!

            I will give it another go on MacOS

            Abstraction
            Hey. I have ordered the services and configured the IP address with the router's. I am still getting Failed to find device after booting, error message: X_LINK_DEVICE_NOT_FOUND. Is there a step I might have missed so as to get the OAK-D up and running?

            @CodeGenius

            When you say "configured the IP address with the router's", do you mean you set it to your router's IP address? If so, that's not correct. The two values should be the same, but they should still be link-local address, e.g. 169.254.XXX.XXX

            Can you post an image of your network settings for the particular dongle you're using? Along with the service order?

              Hi CodeGenius
              Are there any firewall options you have enabled, that would interfere with the communication?

              Thanks,
              Jaka

              5 days later

              The device is working the problem is that it compromises WI-FI. I'm trying to run an opencv project but it fails to establish a connection.


              And when I change the service order, no oak devices are being detected.

                Hi CodeGenius
                Perhaps you could try to force route the communication through different network adapters:

                Custom Traffic Routing on macOS

                1. Identify Network Adapters

                To identify the network interfaces available on your macOS, run the following command in the terminal:

                networksetup -listallhardwareports

                Or use ifconfig to list all interfaces:

                ifconfig

                2. Determine Routing Needs

                Decide which traffic you want to route through which network adapter, typically determined by destination IP addresses or subnets.

                3. Modify the Routing Table

                Use the route command with sudo to modify the routing table. For example, to route traffic to a specific IP through a specific adapter:

                sudo route add -host 192.168.1.10 -interface en1

                To route an entire subnet through an adapter:

                sudo route add -net 192.168.1.0/24 -interface en1

                4. Set Default Route

                To set a default route through a specific adapter:

                sudo route change default -interface en1

                Replace en1 with your network adapter's identifier.

                5. Persistent Routing

                The above route commands do not persist after a reboot. To make them persistent, create a launch daemon or use a startup script.

                6. Testing

                Test your routing rules with ping or traceroute to ensure traffic is routed correctly.

                Please replace en1 with the actual identifier of your network adapter and 192.168.1.10 or 192.168.1.0/24 with the actual IP address or subnet you wish to route.

                  6 days later

                  Hi CodeGenius
                  First, could you check with a different ETH dongle? Your current one only supports 100Mbps speed which is very slow. I wouldn't recommend using it even if you manage to get it to work.

                  Thanks,
                  Jaka