• DepthAI-v2
  • Found 2 devices -- Failed to find device after booting

Hi The_Real_Enrico_Pallazzo
Do normal (single device) examples work as expected? Have you tried the cam_test.py script?
If normal operation is as expected, I suggest implementing a check of the device state to see if each of the devices can be connected to.
There is one solution by Penguinmon here.

Hope this helps,
Jaka

    jakaskerl

    Both cams have been tested with the depthai_demo.py over the local network and were found to be working all OK.
    (PC <--> switch <--> PoE Cams)

    I've also tired using the extra flags for testing if that might work (it was needed on my Orin Nano…but not on PC for regular test)… DEPTHAI_WATCHDOG_INITIAL_DELAY=60000 DEPTHAI_BOOTUP_TIMEOUT=60000 python3 script.py

    So so far…am considering writing from scratch a basic connectivity script to access the cameras…since the Pipeline docs are kind of …non-existing.

    Is there a newer version you folks will be releasing anytime soon?

      Hi The_Real_Enrico_Pallazzo
      Any script/example written with API or SDK should run on OAK-s2-POE. The problem you are experiencing likely can be resolved through the solution I have sent above.

      If you need additional docs, there is always the python api reference which should include the information on usage for pretty much any function available.

      Then there's https://docs.luxonis.com/projects/hardware/en/latest/pages/guides/getting-started-with-poe/#getting-started-with-oak-poe-devices

      Thanks,
      Jaka

      Tried some debugging with the solution of Penguinmon…and printed out something weird…

      While it did continue to one device …somehow magically….and then failed (1 out of 30 tries so far)….I'm starting to think both cameras are defaulting to same I.P address? Is that possible?

        The_Real_Enrico_Pallazzo
        Additional debugging.
        Tried NMAP on the network:
        ~/Desktop/Creating/CompVi/OAK/gen2-multiple-devices  nmap -T5 -sn 169.254.1.0-255

        Starting Nmap 7.93 ( https://nmap.org ) at 2023-10-02 17:44 CEST

        Nmap scan report for DeepLearningRig (169.254.1.10)

        Host is up (0.000040s latency).

        Nmap scan report for 169.254.1.222

        Host is up (0.00059s latency).

        Nmap done: 256 IP addresses (2 hosts up) scanned in 2.15 seconds

        Tried removing a single cam and pinging it…
        ~/Desktop/Creating/CompVi/OAK/gen2-multiple-devices  ping 169.254.1.222  ✔ │ OAK 

        PING 169.254.1.222 (169.254.1.222) 56(84) bytes of data.

        64 bytes from 169.254.1.222: icmp_seq=1 ttl=64 time=0.167 ms

        64 bytes from 169.254.1.222: icmp_seq=2 ttl=64 time=0.133 ms

        64 bytes from 169.254.1.222: icmp_seq=3 ttl=64 time=0.130 ms

        64 bytes from 169.254.1.222: icmp_seq=4 ttl=64 time=0.134 ms

        --- 169.254.1.222 ping statistics ---
        4 packets transmitted, 4 received, 0% packet loss, time 3050ms

        rtt min/avg/max/mdev = 0.130/0.141/0.167/0.015 ms

        This was the result for both cams (inter-change-ably connected)…..so both work….but when both plugged into switch only one gets discovered by NMAP….which is weird…since the programming main.py from gen2-multiple-devices was stating it found both?

        I really do think both might be trying to jump on the same IP default address for them…the 169.254.1.222

          jakaskerl
          Is there a way to hard-code into bootloader a new / different I.P to give to my cameras….i.e. overwrite which generic IP it is set up with?

          I understand now the reason the script detected 2 cameras is not via IP….but the MxID…

          The only reference to the MAC / MxID I found is this C++ file:
          GitHub MxID C++

            The_Real_Enrico_Pallazzo
            Like jakaskerl said, you can set the IP for each device.

            I've also had luck using dnsmasq to run a dhcp server on a pi. The pi (or other device) would have to be connected to the switch that the cameras are connected to. This way you can just plug in any camera without having to worry about its IP.

              Penguinmon
              I gave up with the custom DCHP server, it was half-working but still issues. Straight up ordered a Mikrotik hEX S Ethernet-Router to resolve the DCHP IP allocation…… before it arrives I might try your trick with dnsmasq on the Orin Nano to see if that gets me anywhere.

              In short I'll try custom on-device (Orin) DCHP with this:
              PC <--> PoE switch <--> PoE Cams

              Then if failed I'll hopefully resolve it with the new router
              PC <--> router <--> PoE switch <--> PoE Cams

              jakaskerl
              Have tried Penguinmon's suggestion with DNSMASQ and now both cameras get a proper IP….but also for some reason get picked up on the "default" .222 one.

              Well regardless, when running a script…now it splits into one working and one "broken" camera…alternating when re-running script.

              The output for error is:
              Found 2 devices

              [2023-10-07 18:35:45.699] [warning] Watchdog initial delay set to 60000ms

              [2023-10-07 18:35:46.700] [warning] Watchdog initial delay set to 60000ms

              Exception in thread Thread-2:

              Traceback (most recent call last):

              File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner

              self.run()

              File "/usr/lib/python3.8/threading.py", line 870, in run

              self._target(*self._args, **self._kwargs)

              File "main.py", line 31, in worker

              device: dai.Device = stack.enter_context(dai.Device(openvino_version, dev_info, False))

              depthai.XLinkWriteError: Couldn't write data to stream: '__bootloader' (X_LINK_ERROR)

              === Connected to 1944301061BA5B2700

              >>> MXID: 1944301061BA5B2700

              >>> Cameras: RGB LEFT RIGHT

              >>> USB speed: UNKNOWN

              Thoughts?

              Edit: Both cameras work with depthai_demo.py when given option to select [0] or device [1]
              Edit2: current NMAP shows this
              nmap -T5 -sn 169.254.1.0-255

              Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-07 18:41 CEST

              Nmap scan report for OrinNano (169.254.1.10)

              Host is up (0.00010s latency).

              Nmap scan report for 169.254.1.213

              Host is up (0.0010s latency).

              Nmap scan report for 169.254.1.220

              Host is up (0.0011s latency).

              Nmap scan report for 169.254.1.222

              Host is up (0.00095s latency).

              Nmap done: 256 IP addresses (4 hosts up) scanned in 1.77 seconds

                Hi The_Real_Enrico_Pallazzo
                The script still acts as though both devices are on the same IP. I think that when dnsmasq assigns new IP to the device, the old (fallback) one is retained as well, resulting in two devices on different IPs also having an overlapping IP which is the one DepthAI picks up.
                Are you explicitly specifying the IPs of the devices when connecting to them?
                Few things to try:

                • arp -a when one device is connected to see if both IPs point to the same mac address
                • ping the same device at both IPs to see if it responds

                Also, why not just set the static IP to the device using device_manager.py?

                Thanks,
                Jaka