We have had OAK-D PoE cameras working with our software using the C++ API for the last 2 years now. We have just bought an OAK-D Pro and it doesn't seem to work with our software. Do we need to update to the latest SDK/API in order to use this? Is there anything that might have changed which we need to do differently in order to support the OAK-D Pro and the OAK-D PoE ?

Many thanks!

Hi @Malcs
No, the libraries should work, unless there was a HW change that would crash the depthai. What errors are you receiving? It's best to update the api, yes. Afaik there shouldn't be any breaking changes (though 2 years is a long time so not sure).

Thanks,
Jaka

I just had a report that it was crashing - there were no errors. I will need to get hold of the hardware so I can try it myself and see if I can pin it down.

Thanks for your reply.

    5 days later

    Malcs
    Ok, hope you are able to pinpoint the issue. Let me know if you have any problems.

    14 days later

    I'm still having problems getting the new Pro PoE camera to work with the C++ API. It gets to the point where it's grabbing the detections from the queue and it either hangs or throws an exception. This is the line:

    auto inDet = qDet->get<dai::SpatialImgDetections>();

    Having previously called this:

    auto qDet = device.getOutputQueue("nn", 4, false);

    And set up:

    auto nnOut = pipeline.create<dai::node::XLinkOut>();
    nnOut->setStreamName("nn");

    I'm following the C++ code here:
    https://docs.luxonis.com/projects/api/en/latest/samples/SpatialDetection/spatial_mobilenet/#rgb-mobilenetssd-with-spatial-data

    But a few of the calls are different using the older API. For example:

    monoLeft->setCamera("left");

    Instead of:

    monoLeft->setBoardSocket(dai::CameraBoardSocket::LEFT);

    and

    stereo->setDepthAlign(dai::CameraBoardSocket::CAM_A);

    Instead of:

    stereo->setDepthAlign(dai::CameraBoardSocket::RGB);

    If I don't use the depth part and treat it like it's a standard camera I can get the dai::ImgDetections without the spatial data and everything works fine.

      Hi @Malcs
      The old calls should still work on the latest version. Though they might give deprecation warnings.

      Malcs where it's grabbing the detections from the queue and it either hangs or throws an exception

      Does this happen from the start or somewhere down the line? Use tryGet so you can check if the rest of the pipeline still works. Do other depth examples work as expected (like depth_preview and similar)?

      Thanks,
      Jaka

      Thanks for the swift reply Jaka.

      I bit the bullet and upgraded to the new SDK. This seems to have sorted the issue. I didn't change any of my code in between upgrading so something must have changed in the SDK and libraries that solved the problem.

      That said, my old code which worked with the standard PoE camera (with no depth) now doesn't work. I'm sure I can sort this though.

      Appreciate you taking the time to assist. I will report back once I have all the cameras working as required.

      Ok both the OAK-D PoE cams are working now, which is great!

      I've been given an OAK-1 which I haven't used before. This fails to work with the old version of our software and also fails with the new version I've just built using the new SDK.

      I'm using the same code to connect to this as I use for the standard OAK-D PoE camera. Assuming this is correct and there's not a different procedure to follow for the OAK-1 then I'm a bit baffled.

      It hangs for a while here:

      dai::Device device(pipeline);

      Then throws an exception.

      Even your own DepthAI software fails to work with this camera. It tries to start the demo before throwing this error:

      I can't tell. The debugger doesn't show it. I have the device construction wrapped in a try/catch block (I'm using C++). There's just a big pause then it exits on the catch.

      The error thrown by your own software suggests it failed to find the device. Any idea why?

      I have got the OAK-1 camera working now so all sorted!