Hi,

I have an OAK-D W POE camera and I'm trying to connect it to my personal laptop. I have a M12 to RJ45 cable which I plugged the M12 side to the camera and RJ45 side to a POE injector.

Then I used a RJ45 cable and connected one side to the injector and the other side to the laptop.

And plugged the injector to a regular outlet. the camera seems to get power from injector and it is active.

I can't find the camera in DepthAI Viewer. Would you please tell me if there is something wrong with my connection?

You will find my ifconfig below.

docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500

    inet 172.24.x.x  netmask 255.255.0.0  broadcast 172.24.255.255

    ether xx:xx:xx:xx:xx:xx  txqueuelen 0  (Ethernet)

    RX packets 0  bytes 0 (0.0 B)

    RX errors 0  dropped 0  overruns 0  frame 0

    TX packets 0  bytes 0 (0.0 B)

    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp45s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

    ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)

    RX packets 0  bytes 0 (0.0 B)

    RX errors 0  dropped 0  overruns 0  frame 0

    TX packets 534  bytes 93624 (93.6 KB)

    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536

    inet 127.0.0.1  netmask 255.0.0.0

    inet6 ::1  prefixlen 128  scopeid 0x10<host>

    loop  txqueuelen 1000  (Local Loopback)

    RX packets 38199  bytes 2949840 (2.9 MB)

    RX errors 0  dropped 0  overruns 0  frame 0

    TX packets 38199  bytes 2949840 (2.9 MB)

    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tailscale0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1280

    inet 100.x.x.x  netmask 255.255.255.255  destination 100.x.x.x

    inet6 fe80::xxxx:xxxx:xxxx:xxxx  prefixlen 64  scopeid 0x20<link>

    inet6 fd7a:115c:a1e0::xxxx:xxxx  prefixlen 128  scopeid 0x0<global>

    unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)

    RX packets 1332  bytes 113966 (113.9 KB)

    RX errors 0  dropped 0  overruns 0  frame 0

    TX packets 2174  bytes 212603 (212.6 KB)

    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlo1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

    inet 172.17.x.x  netmask 255.248.0.0  broadcast 172.23.255.255

    inet6 fe80::xxxx:xxxx:xxxx:xxxx  prefixlen 64  scopeid 0x20<link>

    ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)

    RX packets 281870  bytes 268077743 (268.0 MB)

    RX errors 0  dropped 0  overruns 0  frame 0

    TX packets 94745  bytes 42830256 (42.8 MB)

    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    pa526
    Manually set the IP and subnet of your ETH interface to make the device discoverable. docs.

    Thanks,
    Jaka

      jakaskerl

      Thank you for your response.

      the device is discoverable now, but after running depthai_viewer while I can choose the camera, I get this error without seeing any data in the GUI.

      Error: Failed to find device after booting, error message: X_LINK_DEVICE_NOT_FOUND, Try to connect the device to a different port.

      changing the port didn't help.

      Would you please guide me in this matter? Btw, I am using Ubuntu 22.04 on my laptop.

      worth to mention that while running this python code:

      import depthai as dai

      # Create a pipeline

      pipeline = dai.Pipeline()

      # Manually specify the camera's IP address

      device_info = dai.DeviceInfo("169.254.1.222")

      # Connect to the device

      try:

      with dai.Device(pipeline, device_info) as device:

      print("Successfully connected to the camera!")

      except Exception as e:

      print(f"Failed to connect to the camera: {e}")

      It gets failed.

      I went through updating boot loader, and did the flash factory boot loader, but not updating the boot loader. it seems like it is already updated since it's 0.0.28.

        pa526
        Can you give me ifconfig output again please? The manual setting should be visible. ip route should show it as well.

        Thanks,
        Jaka

          jakaskerl
          Thank you.

          What I did was
          nano /etc/network/interfaces

          Added
          auto enp45s0 iface enp45s0 inet static address 169.254.1.10 netmask 255.255.0.0

          Then used this to bring it up:
          sudo ip link set enp45s0 up

          Checked it with
          ip link show enp45s0

          It showed UP and LOWER_UP.

          Verified the static IP:
          ip addr show enp45s0

          If it showed no IPv4 address, I used:
          sudo ip addr add 169.254.1.10/16 dev enp45s0

          Then I tried:
          ping 169.254.1.222

          It responded like this:
          64 bytes from 169.254.1.222: icmp_seq=1 ttl=64 time=0.123 ms
          64 bytes from 169.254.1.222: icmp_seq=2 ttl=64 time=0.456 ms

          Although the ping works, I can't see any data in the GUI after selecting the camera.
          ifconfig Output:
          docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
          inet 172.24.X.X netmask 255.255.0.0 broadcast 172.24.X.X
          ether XX:XX:XX:XX:XX:XX txqueuelen 0 (Ethernet)
          RX packets 0 bytes 0 (0.0 B)
          TX packets 0 bytes 0 (0.0 B)

          enp45s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
          inet 169.254.1.10 netmask 255.255.0.0 broadcast 0.0.0.0
          inet6 fe80::XXXX:XXXX:XXXX:5b prefixlen 64 scopeid 0x20<link>
          ether XX:XX:XX:XX:XX:5b txqueuelen 1000 (Ethernet)
          RX packets 4 bytes 354 (354.0 B)
          TX packets 50 bytes 6566 (6.5 KB)

          lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
          inet 127.0.0.1 netmask 255.0.0.0
          inet6 ::1 prefixlen 128 scopeid 0x10<host>
          RX packets 890 bytes 94.0 KB
          TX packets 890 bytes 94.0 KB

          tailscale0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1280
          inet 100.114.X.X netmask 255.255.255.255 destination 100.114.X.X
          inet6 fe80::XXXX:XXXX:XXXX:cea prefixlen 64 scopeid 0x20<link>
          inet6 fd7a:XXXX:XXXX::e201:a322 prefixlen 128 scopeid 0x0<global>
          RX packets 4 bytes 518 (518.0 B)
          TX packets 128 bytes 9.4 KB

          wlo1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
          inet 172.17.X.X netmask 255.248.0.0 broadcast 172.23.X.X
          inet6 fe80::XXXX:XXXX:XXXX:4df4 prefixlen 64 scopeid 0x20<link>
          ether XX:XX:XX:XX:XX:2e txqueuelen 1000 (Ethernet)
          RX packets 14950 bytes 9.8 MB
          TX packets 7899 bytes 3.8 MB


          ip route Output:
          default via 172.16.0.1 dev wlo1 proto dhcp metric 600
          169.254.0.0/16 dev enp45s0 proto kernel scope link src 169.254.1.10
          169.254.0.0/16 dev wlo1 scope link metric 1000
          172.16.0.0/13 dev wlo1 proto kernel scope link src 172.17.X.X metric 600
          172.24.0.0/16 dev docker0 proto kernel scope link src 172.24.X.X linkdown

            pa526
            I think broadcast is incorrectly set. Make sure it's 169.254.255.255. Then discovery should work afaik.

            pa526 inet 169.254.1.10 netmask 255.255.0.0 broadcast 0.0.0.0

              jakaskerl
              Hi,

              I tried to set the broadcast correctly
              inet xxx.xxx.xxx.xxx netmask 255.255.0.0 broadcast 169.254.255.255

              it still has the same issue:
              ERROR re_viewer::depthai::depthai] Error: Failed to find device after booting, error message: X_LINK_DEVICE_NOT_FOUND, Try to connect the device to a different port.

              Selecting device: 19443010C126721300

              this:
              import depthai as dai

              # Create a pipeline

              pipeline = dai.Pipeline()

              # Manually specify the camera's IP address

              device_info = dai.DeviceInfo("169.254.1.222")

              # Connect to the device

              try:

              with dai.Device(pipeline, device_info) as device:

              print("Successfully connected to the camera!")

              this gave me successfully connected to camera!

              @jakaskerl
              I tried this too
              ros2 launch depthai_ros_driver camera.launch.py

              [component_container-1] [INFO] [1743182047.868733852] [oak]: Starting camera.

              [component_container-1] [INFO] [1743182047.887154780] [oak]: No ip/mxid specified, connecting to the next available device.

              [component_container-1] [ERROR] [1743182066.034588667] [oak]: Failed to find device after booting, error message: X_LINK_DEVICE_NOT_FOUND