W
wiley42

  • Dec 3, 2023
  • Joined Mar 13, 2023
  • 0 best answers
  • As we're pressing the IMUs into real world applications, we're finding ourselves having to do stuff in our already overtaxed CPUs that the BNO086 supports, but for which functionality isn't exposed through depthai-core. Note that some of these are things that people have requested in the past, so maybe just consider these to be upvotes to those already-raised asks πŸ˜‰

    The ability to use the tare function.
    The ability to write FRS records.
    The ability to issue interactive calibration, and to manually persist DCD.
    Getting the calibration accuracy bits back would be useful, but it's less important.

    I'd be totally okay with just a generic interface to issue commands to the BNO086 consistent with the BNO08X docs πŸ™‚

    • Hi erik

      Looks like 2.23.0 dropped a few hours ago, so I'll have a go at building against that.

      On a semi-related topic, it looks like the BNO086 on these cameras are mounted in the default orientation, unlike the earlier OAK-D-POEs, and that there's no FRS record being applied to them (i.e., X -> North, Y -> West, Z -> up). At least that's what the artwork and my results suggest, but again, checking my sanity πŸ˜‰

      • erik replied to this.
      • erik

        I expected it was something like that, and I'm grateful that there's a new release coming soon. As expected, the develop branch of depthai-core works fine (which I'd expect, since I suspect the Python stuff that was demonstrated earlier is just a wrapper around depthai-core).

        Thank you again for your constantly amazing support, and for once again reassuring me that I'm not entirely crazy πŸ˜‰

      • erik

        Hi Erik,

        No, for C++ it's still the 2.22.0 release branch; there was a faint hope that once tickled by the Python dev branch that the IMUs would work, but no such luck. I'll pull the dev C++ branch in the morning, but we'll be dead in the water with respect to the IMUs until whatever change is in dev migrates to release; we can't have non-release code migrating out into the field.

        Yes, this is still the IMU issue. The OV9782 cameras that we had you folks mint out a zillion of are the ones that have IMUs that don't work, but on a lark I had one of the IMX378 rolling shutter cameras that we used during evaluation pulled off the shelf, and the IMU on it works perfectly on 2.22.0.

        • erik replied to this.
        • Hey Erik,

          Another random data point: After further investigation, the existing 2.22.0 release (and all prior ones) works fine with the default IMX378 camera, but units with the OV9782 camera all fail.

          • erik replied to this.
          • erik

            Hey Erik,

            Building the develop branch of the depthai-python repo results in Python tools that successfully talk to the IMU (which return IMU of BNO086, firmware 3.9.9). 2.22.0 of depthi-core still fails miserably.

            One thing that we did realize over the weekend is that earlier testing was done using the rolling shutter version, not the 9782 version that we use in production. I don't have one of those handy, but I did ask someone who has one to build and run 2.22.0 on the rolling shutter; I'll report what he finds.

            I really appreciate your help on this one. Obviously a python solution doesn't help us; should I be pulling the develop branch for depthai-core, or should I hang fire for the moment?

          • A quick follow up:

            Popped the camera open and confirmed the presence of what looks like a BNO085 (markings read 701/AC/260), although the layout of the board is quite different from that shown on the docs website.

            Just for grins, installed all of the python tooling in order to run the device manager, performed a factory reset and, while there, updated the bootloader from 0.22 to 0.24.

            Behavior remains unchanged πŸ™

            • There's not, and inspecting the C++ source shows that the program doesn't generate any such thing. calibration_dump does produce json, but it doesn't write it to a file, spewing it instead to stdout:

              chris@ducktape:~/luxonis/depthai-core/build/examples$ ./calibration_dump

              Is EEPROM available: 1

              User calibration: {

              "batchName": "Maxwell",
              
              "batchTime": 1679454967,
              
              "boardConf": "nIR-C11M00-00",
              
              "boardCustom": "",
              
              "boardName": "DM2088",
              
              "boardOptions": 1,
              
              "boardRev": "R1M1E3",
              
              "cameraData": [
              
                  [
              
                      2,
              
                      {
              
                          "cameraType": 0,
              
                          "distortionCoeff": [
              
                              -8.498824119567871,
              
                              92\.4317398071289,
              
                              0\.0008898610831238329,
              
                              -0.0007077997433952987,
              
                              -62.4412727355957,
              
                              -8.553261756896973,
              
                              91\.91093444824219,
              
                              -61.22358322143555,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0
              
                          ],
              
                          "extrinsics": {
              
                              "rotationMatrix": [
              
                                  [
              
                                      0\.9999166131019592,
              
                                      -0.012273929081857204,
              
                                      0\.004014317411929369
              
                                  ],
              
                                  [
              
                                      0\.012270601466298103,
              
                                      0\.99992436170578,
              
                                      0\.000852663884870708
              
                                  ],
              
                                  [
              
                                      -0.004024479538202286,
              
                                      -0.0008033346384763718,
              
                                      0\.9999915957450867
              
                                  ]
              
                              ],
              
                              "specTranslation": {
              
                                  "x": 3.75,
              
                                  "y": 0.0,
              
                                  "z": 0.0
              
                              },
              
                              "toCameraSocket": 0,
              
                              "translation": {
              
                                  "x": 3.761131763458252,
              
                                  "y": 0.018591009080410004,
              
                                  "z": 0.005407598800957203
              
                              }
              
                          },
              
                          "height": 800,
              
                          "intrinsicMatrix": [
              
                              [
              
                                  803\.1364135742188,
              
                                  0\.0,
              
                                  625\.873046875
              
                              ],
              
                              [
              
                                  0\.0,
              
                                  803\.1364135742188,
              
                                  383\.81793212890625
              
                              ],
              
                              [
              
                                  0\.0,
              
                                  0\.0,
              
                                  1\.0
              
                              ]
              
                          ],
              
                          "lensPosition": 0,
              
                          "specHfovDeg": 127.0,
              
                          "width": 1280
              
                      }
              
                  ],
              
                  [
              
                      1,
              
                      {
              
                          "cameraType": 0,
              
                          "distortionCoeff": [
              
                              -9.712899208068848,
              
                              104\.44512939453125,
              
                              -0.0016125091351568699,
              
                              -0.00023091270122677088,
              
                              -62.223045349121094,
              
                              -9.761884689331055,
              
                              103\.8309555053711,
              
                              -60.873443603515625,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0
              
                          ],
              
                          "extrinsics": {
              
                              "rotationMatrix": [
              
                                  [
              
                                      0\.9998884797096252,
              
                                      -0.0016393698751926422,
              
                                      -0.014843457378447056
              
                                  ],
              
                                  [
              
                                      0\.0016282369615510106,
              
                                      0\.9999983906745911,
              
                                      -0.000762075069360435
              
                                  ],
              
                                  [
              
                                      0\.01484468299895525,
              
                                      0\.0007378214504569769,
              
                                      0\.9998895525932312
              
                                  ]
              
                              ],
              
                              "specTranslation": {
              
                                  "x": -7.5,
              
                                  "y": 0.0,
              
                                  "z": 0.0
              
                              },
              
                              "toCameraSocket": 2,
              
                              "translation": {
              
                                  "x": -7.530102252960205,
              
                                  "y": 0.008895577862858772,
              
                                  "z": -0.036406513303518295
              
                              }
              
                          },
              
                          "height": 800,
              
                          "intrinsicMatrix": [
              
                              [
              
                                  808\.0626220703125,
              
                                  0\.0,
              
                                  631\.9598999023438
              
                              ],
              
                              [
              
                                  0\.0,
              
                                  808\.0626220703125,
              
                                  390\.564208984375
              
                              ],
              
                              [
              
                                  0\.0,
              
                                  0\.0,
              
                                  1\.0
              
                              ]
              
                          ],
              
                          "lensPosition": 0,
              
                          "specHfovDeg": 127.0,
              
                          "width": 1280
              
                      }
              
                  ],
              
                  [
              
                      0,
              
                      {
              
                          "cameraType": 0,
              
                          "distortionCoeff": [
              
                              -8.887694358825684,
              
                              103\.3043441772461,
              
                              -0.0003829839115496725,
              
                              -0.0007910369895398617,
              
                              -24.844051361083984,
              
                              -8.933725357055664,
              
                              102\.52317810058594,
              
                              -23.31254005432129,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0
              
                          ],
              
                          "extrinsics": {
              
                              "rotationMatrix": [
              
                                  [
              
                                      0\.0,
              
                                      0\.0,
              
                                      0\.0
              
                                  ],
              
                                  [
              
                                      0\.0,
              
                                      0\.0,
              
                                      0\.0
              
                                  ],
              
                                  [
              
                                      0\.0,
              
                                      0\.0,
              
                                      0\.0
              
                                  ]
              
                              ],
              
                              "specTranslation": {
              
                                  "x": -0.0,
              
                                  "y": -0.0,
              
                                  "z": -0.0
              
                              },
              
                              "toCameraSocket": -1,
              
                              "translation": {
              
                                  "x": 0.0,
              
                                  "y": 0.0,
              
                                  "z": 0.0
              
                              }
              
                          },
              
                          "height": 800,
              
                          "intrinsicMatrix": [
              
                              [
              
                                  805\.3521118164063,
              
                                  0\.0,
              
                                  600\.638671875
              
                              ],
              
                              [
              
                                  0\.0,
              
                                  805\.3521118164063,
              
                                  393\.9454650878906
              
                              ],
              
                              [
              
                                  0\.0,
              
                                  0\.0,
              
                                  1\.0
              
                              ]
              
                          ],
              
                          "lensPosition": 0,
              
                          "specHfovDeg": 108.0,
              
                          "width": 1280
              
                      }
              
                  ]
              
              ],
              
              "hardwareConf": "F1-FV00-BC000",
              
              "imuExtrinsics": {
              
                  "rotationMatrix": [
              
                      [
              
                          0\.0,
              
                          0\.0,
              
                          0\.0
              
                      ],
              
                      [
              
                          0\.0,
              
                          0\.0,
              
                          0\.0
              
                      ],
              
                      [
              
                          0\.0,
              
                          0\.0,
              
                          0\.0
              
                      ]
              
                  ],
              
                  "specTranslation": {
              
                      "x": 0.0,
              
                      "y": 0.0,
              
                      "z": 0.0
              
                  },
              
                  "toCameraSocket": -1,
              
                  "translation": {
              
                      "x": 0.0,
              
                      "y": 0.0,
              
                      "z": 0.0
              
                  }
              
              },
              
              "miscellaneousData": [],
              
              "productName": "OAK-D-POE-C22",
              
              "stereoRectificationData": {
              
                  "leftCameraSocket": 1,
              
                  "rectifiedRotationLeft": [
              
                      [
              
                          0\.9999459385871887,
              
                          -0.0028171015437692404,
              
                          -0.010008170269429684
              
                      ],
              
                      [
              
                          0\.0028132847510278225,
              
                          0\.9999959468841553,
              
                          -0.00039542774902656674
              
                      ],
              
                      [
              
                          0\.010009244084358215,
              
                          0\.00036725052632391453,
              
                          0\.9999498128890991
              
                      ]
              
                  ],
              
                  "rectifiedRotationRight": [
              
                      [
              
                          0\.9999876022338867,
              
                          -0.0011813209857791662,
              
                          0\.004834737163037062
              
                      ],
              
                      [
              
                          0\.0011794771999120712,
              
                          0\.9999992251396179,
              
                          0\.0003841967263724655
              
                      ],
              
                      [
              
                          -0.004835186991840601,
              
                          -0.00037848949432373047,
              
                          0\.9999882578849792
              
                      ]
              
                  ],
              
                  "rightCameraSocket": 2
              
              },
              
              "version": 7

              }

              Factory calibration: {

              "batchName": "Maxwell",
              
              "batchTime": 1679454967,
              
              "boardConf": "nIR-C11M00-00",
              
              "boardCustom": "",
              
              "boardName": "DM2088",
              
              "boardOptions": 1,
              
              "boardRev": "R1M1E3",
              
              "cameraData": [
              
                  [
              
                      2,
              
                      {
              
                          "cameraType": 0,
              
                          "distortionCoeff": [
              
                              -8.498824119567871,
              
                              92\.4317398071289,
              
                              0\.0008898610831238329,
              
                              -0.0007077997433952987,
              
                              -62.4412727355957,
              
                              -8.553261756896973,
              
                              91\.91093444824219,
              
                              -61.22358322143555,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0
              
                          ],
              
                          "extrinsics": {
              
                              "rotationMatrix": [
              
                                  [
              
                                      0\.9999166131019592,
              
                                      -0.012273929081857204,
              
                                      0\.004014317411929369
              
                                  ],
              
                                  [
              
                                      0\.012270601466298103,
              
                                      0\.99992436170578,
              
                                      0\.000852663884870708
              
                                  ],
              
                                  [
              
                                      -0.004024479538202286,
              
                                      -0.0008033346384763718,
              
                                      0\.9999915957450867
              
                                  ]
              
                              ],
              
                              "specTranslation": {
              
                                  "x": 3.75,
              
                                  "y": 0.0,
              
                                  "z": 0.0
              
                              },
              
                              "toCameraSocket": 0,
              
                              "translation": {
              
                                  "x": 3.761131763458252,
              
                                  "y": 0.018591009080410004,
              
                                  "z": 0.005407598800957203
              
                              }
              
                          },
              
                          "height": 800,
              
                          "intrinsicMatrix": [
              
                              [
              
                                  803\.1364135742188,
              
                                  0\.0,
              
                                  625\.873046875
              
                              ],
              
                              [
              
                                  0\.0,
              
                                  803\.1364135742188,
              
                                  383\.81793212890625
              
                              ],
              
                              [
              
                                  0\.0,
              
                                  0\.0,
              
                                  1\.0
              
                              ]
              
                          ],
              
                          "lensPosition": 0,
              
                          "specHfovDeg": 127.0,
              
                          "width": 1280
              
                      }
              
                  ],
              
                  [
              
                      1,
              
                      {
              
                          "cameraType": 0,
              
                          "distortionCoeff": [
              
                              -9.712899208068848,
              
                              104\.44512939453125,
              
                              -0.0016125091351568699,
              
                              -0.00023091270122677088,
              
                              -62.223045349121094,
              
                              -9.761884689331055,
              
                              103\.8309555053711,
              
                              -60.873443603515625,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0
              
                          ],
              
                          "extrinsics": {
              
                              "rotationMatrix": [
              
                                  [
              
                                      0\.9998884797096252,
              
                                      -0.0016393698751926422,
              
                                      -0.014843457378447056
              
                                  ],
              
                                  [
              
                                      0\.0016282369615510106,
              
                                      0\.9999983906745911,
              
                                      -0.000762075069360435
              
                                  ],
              
                                  [
              
                                      0\.01484468299895525,
              
                                      0\.0007378214504569769,
              
                                      0\.9998895525932312
              
                                  ]
              
                              ],
              
                              "specTranslation": {
              
                                  "x": -7.5,
              
                                  "y": 0.0,
              
                                  "z": 0.0
              
                              },
              
                              "toCameraSocket": 2,
              
                              "translation": {
              
                                  "x": -7.530102252960205,
              
                                  "y": 0.008895577862858772,
              
                                  "z": -0.036406513303518295
              
                              }
              
                          },
              
                          "height": 800,
              
                          "intrinsicMatrix": [
              
                              [
              
                                  808\.0626220703125,
              
                                  0\.0,
              
                                  631\.9598999023438
              
                              ],
              
                              [
              
                                  0\.0,
              
                                  808\.0626220703125,
              
                                  390\.564208984375
              
                              ],
              
                              [
              
                                  0\.0,
              
                                  0\.0,
              
                                  1\.0
              
                              ]
              
                          ],
              
                          "lensPosition": 0,
              
                          "specHfovDeg": 127.0,
              
                          "width": 1280
              
                      }
              
                  ],
              
                  [
              
                      0,
              
                      {
              
                          "cameraType": 0,
              
                          "distortionCoeff": [
              
                              -8.887694358825684,
              
                              103\.3043441772461,
              
                              -0.0003829839115496725,
              
                              -0.0007910369895398617,
              
                              -24.844051361083984,
              
                              -8.933725357055664,
              
                              102\.52317810058594,
              
                              -23.31254005432129,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0,
              
                              0\.0
              
                          ],
              
                          "extrinsics": {
              
                              "rotationMatrix": [
              
                                  [
              
                                      0\.0,
              
                                      0\.0,
              
                                      0\.0
              
                                  ],
              
                                  [
              
                                      0\.0,
              
                                      0\.0,
              
                                      0\.0
              
                                  ],
              
                                  [
              
                                      0\.0,
              
                                      0\.0,
              
                                      0\.0
              
                                  ]
              
                              ],
              
                              "specTranslation": {
              
                                  "x": -0.0,
              
                                  "y": -0.0,
              
                                  "z": -0.0
              
                              },
              
                              "toCameraSocket": -1,
              
                              "translation": {
              
                                  "x": 0.0,
              
                                  "y": 0.0,
              
                                  "z": 0.0
              
                              }
              
                          },
              
                          "height": 800,
              
                          "intrinsicMatrix": [
              
                              [
              
                                  805\.3521118164063,
              
                                  0\.0,
              
                                  600\.638671875
              
                              ],
              
                              [
              
                                  0\.0,
              
                                  805\.3521118164063,
              
                                  393\.9454650878906
              
                              ],
              
                              [
              
                                  0\.0,
              
                                  0\.0,
              
                                  1\.0
              
                              ]
              
                          ],
              
                          "lensPosition": 0,
              
                          "specHfovDeg": 108.0,
              
                          "width": 1280
              
                      }
              
                  ]
              
              ],
              
              "hardwareConf": "F1-FV00-BC000",
              
              "imuExtrinsics": {
              
                  "rotationMatrix": [
              
                      [
              
                          0\.0,
              
                          0\.0,
              
                          0\.0
              
                      ],
              
                      [
              
                          0\.0,
              
                          0\.0,
              
                          0\.0
              
                      ],
              
                      [
              
                          0\.0,
              
                          0\.0,
              
                          0\.0
              
                      ]
              
                  ],
              
                  "specTranslation": {
              
                      "x": 0.0,
              
                      "y": 0.0,
              
                      "z": 0.0
              
                  },
              
                  "toCameraSocket": -1,
              
                  "translation": {
              
                      "x": 0.0,
              
                      "y": 0.0,
              
                      "z": 0.0
              
                  }
              
              },
              
              "miscellaneousData": [],
              
              "productName": "OAK-D-POE-C22",
              
              "stereoRectificationData": {
              
                  "leftCameraSocket": 1,
              
                  "rectifiedRotationLeft": [
              
                      [
              
                          0\.9999459385871887,
              
                          -0.0028171015437692404,
              
                          -0.010008170269429684
              
                      ],
              
                      [
              
                          0\.0028132847510278225,
              
                          0\.9999959468841553,
              
                          -0.00039542774902656674
              
                      ],
              
                      [
              
                          0\.010009244084358215,
              
                          0\.00036725052632391453,
              
                          0\.9999498128890991
              
                      ]
              
                  ],
              
                  "rectifiedRotationRight": [
              
                      [
              
                          0\.9999876022338867,
              
                          -0.0011813209857791662,
              
                          0\.004834737163037062
              
                      ],
              
                      [
              
                          0\.0011794771999120712,
              
                          0\.9999992251396179,
              
                          0\.0003841967263724655
              
                      ],
              
                      [
              
                          -0.004835186991840601,
              
                          -0.00037848949432373047,
              
                          0\.9999882578849792
              
                      ]
              
                  ],
              
                  "rightCameraSocket": 2
              
              },
              
              "version": 7

              }

              User calibration raw: [7,0,170,85,3,0,0,0,0,68,77,50,48,56,56,0,0,0,0,0,0,0,0,0,0,82,49,77,49,69,51,0,0,0,0,117,252,127,63,31,159,56,187,79,249,35,188,22,95,56,59,188,255,127,63,106,81,207,185,208,253,35,60,136,139,192,57,182,252,127,63,48,255,127,63,142,214,154,186,183,108,158,59,176,152,154,58,243,255,127,63,3,110,201,57,125,112,158,187,0,112,198,185,59,255,127,63,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,32,3,0,5,0,2,4,74,68,0,0,0,0,111,253,29,68,0,0,0,0,2,4,74,68,56,72,195,67,0,0,0,0,0,0,0,0,0,0,128,63,9,104,27,193,232,227,208,66,212,90,211,186,40,33,114,185,102,228,120,194,174,48,28,193,115,169,207,66,104,126,115,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,66,0,1,177,248,127,63,32,224,214,186,249,49,115,188,145,106,213,58,229,255,127,63,254,197,71,186,29,55,115,60,92,106,65,58,195,248,127,63,153,246,240,192,194,190,17,60,255,30,21,189,0,0,240,192,0,0,0,0,0,0,0,0,2,32,3,0,5,0,187,200,72,68,0,0,0,0,224,119,28,68,0,0,0,0,187,200,72,68,178,232,191,67,0,0,0,0,0,0,0,0,0,0,128,63,47,251,7,193,13,221,184,66,145,69,105,58,163,139,57,186,221,195,121,194,41,218,8,193,102,210,183,66,243,228,116,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,66,0,2,137,250,127,63,151,24,73,188,137,138,131,59,162,10,73,60,11,251,127,63,78,133,95,58,200,223,131,187,224,150,82,186,115,255,127,63,98,182,112,64,44,76,152,60,58,50,177,59,0,0,112,64,0,0,0,0,0,0,0,0,0,32,3,0,5,0,137,86,73,68,0,0,0,0,224,40,22,68,0,0,0,0,137,86,73,68,5,249,196,67,0,0,0,0,0,0,0,0,0,0,128,63,255,51,14,193,211,155,206,66,59,203,200,185,152,93,79,186,158,192,198,193,138,240,14,193,222,11,205,66,21,128,186,193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,79,65,75,45,68,45,80,79,69,45,67,50,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,73,82,45,67,49,49,77,48,48,45,48,48,0,0,0,70,49,45,70,86,48,48,45,66,67,48,48,48,0,0,0,77,97,120,119,101,108,108,0,0,0,0,0,0,0,0,0,247,114,26,100,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]

              Factory calibration raw: [7,0,170,85,3,0,0,0,0,68,77,50,48,56,56,0,0,0,0,0,0,0,0,0,0,82,49,77,49,69,51,0,0,0,0,117,252,127,63,31,159,56,187,79,249,35,188,22,95,56,59,188,255,127,63,106,81,207,185,208,253,35,60,136,139,192,57,182,252,127,63,48,255,127,63,142,214,154,186,183,108,158,59,176,152,154,58,243,255,127,63,3,110,201,57,125,112,158,187,0,112,198,185,59,255,127,63,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,32,3,0,5,0,2,4,74,68,0,0,0,0,111,253,29,68,0,0,0,0,2,4,74,68,56,72,195,67,0,0,0,0,0,0,0,0,0,0,128,63,9,104,27,193,232,227,208,66,212,90,211,186,40,33,114,185,102,228,120,194,174,48,28,193,115,169,207,66,104,126,115,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,66,0,1,177,248,127,63,32,224,214,186,249,49,115,188,145,106,213,58,229,255,127,63,254,197,71,186,29,55,115,60,92,106,65,58,195,248,127,63,153,246,240,192,194,190,17,60,255,30,21,189,0,0,240,192,0,0,0,0,0,0,0,0,2,32,3,0,5,0,187,200,72,68,0,0,0,0,224,119,28,68,0,0,0,0,187,200,72,68,178,232,191,67,0,0,0,0,0,0,0,0,0,0,128,63,47,251,7,193,13,221,184,66,145,69,105,58,163,139,57,186,221,195,121,194,41,218,8,193,102,210,183,66,243,228,116,194,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,66,0,2,137,250,127,63,151,24,73,188,137,138,131,59,162,10,73,60,11,251,127,63,78,133,95,58,200,223,131,187,224,150,82,186,115,255,127,63,98,182,112,64,44,76,152,60,58,50,177,59,0,0,112,64,0,0,0,0,0,0,0,0,0,32,3,0,5,0,137,86,73,68,0,0,0,0,224,40,22,68,0,0,0,0,137,86,73,68,5,249,196,67,0,0,0,0,0,0,0,0,0,0,128,63,255,51,14,193,211,155,206,66,59,203,200,185,152,93,79,186,158,192,198,193,138,240,14,193,222,11,205,66,21,128,186,193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,79,65,75,45,68,45,80,79,69,45,67,50,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,73,82,45,67,49,49,77,48,48,45,48,48,0,0,0,70,49,45,70,86,48,48,45,66,67,48,48,48,0,0,0,77,97,120,119,101,108,108,0,0,0,0,0,0,0,0,0,247,114,26,100,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]

            • Sure thing:

              chris@ducktape:~/luxonis/depthai-core/build/examples$ ./calibration_reader

              Intrinsics from defaultIntrinsics function:

              [[803.136414, 0.000000, 625.873047]

              [0.000000, 803.136414, 383.817932]

              [0.000000, 0.000000, 1.000000]]

              Width: 1280

              Height: 800

              Stereo baseline distance: 7.5 cm

              Mono FOV from camera specs: 127, calculated FOV: 76.7597

              Intrinsics from getCameraIntrinsics function full resolution:

              [[803.136414, 0.000000, 625.873047]

              [0.000000, 803.136414, 383.817932]

              [0.000000, 0.000000, 1.000000]]

              Intrinsics from getCameraIntrinsics function 1280 x 720:

              [[803.136414, 0.000000, 625.873047]

              [0.000000, 803.136414, 343.817932]

              [0.000000, 0.000000, 1.000000]]

              Intrinsics from getCameraIntrinsics function 720 x 450:

              [[451.764221, 0.000000, 352.053589]

              [0.000000, 451.764221, 215.897583]

              [0.000000, 0.000000, 1.000000]]

              Intrinsics from getCameraIntrinsics function 600 x 1280:

              [[376.470184, 0.000000, 293.377991]

              [0.000000, 376.470184, 632.414673]

              [0.000000, 0.000000, 1.000000]]

              Extrinsics from left->right test:

              [[0.999888, -0.001639, -0.014843, -7.530102]

              [0.001628, 0.999998, -0.000762, 0.008896]

              [0.014845, 0.000738, 0.999890, -0.036407]

              [0.000000, 0.000000, 0.000000, 1.000000]]

              Extrinsics from right->left test:

              [[0.999888, 0.001628, 0.014845, 7.529788]

              [-0.001639, 0.999998, 0.000738, -0.021213]

              [-0.014843, -0.000762, 0.999890, -0.075363]

              [0.000000, 0.000000, 0.000000, 1.000000]]

              Extrinsics from right->rgb test:

              [[0.999917, -0.012274, 0.004014, 3.761132]

              [0.012271, 0.999924, 0.000853, 0.018591]

              [-0.004024, -0.000803, 0.999992, 0.005408]

              [0.000000, 0.000000, 0.000000, 1.000000]]

              Extrinsics from rgb->right test:

              [[0.999917, 0.012271, -0.004024, -3.761025]

              [-0.012274, 0.999924, -0.000803, 0.027579]

              [0.004014, 0.000853, 0.999992, -0.020522]

              [0.000000, 0.000000, 0.000000, 1.000000]]

              Extrinsics from left->rgb test:

              [[0.999845, -0.013900, -0.010831, -3.769501]

              [0.013902, 0.999903, 0.000097, 0.033606]

              [0.010828, -0.000248, 0.999941, 0.024847]

              [0.000000, 0.000000, 0.000000, 1.000000]]

              • erik replied to this.
              • Hi Erik,

                No, but the behavior is happening with fresh-out-of-the-box units; it's not local to just one camera.

                • erik replied to this.
                • Unlikely. We have a truckload of these things and they're all behaving the same way.

                  • erik replied to this.
                  • I was finally able to pop the stack and dust off IMU related work from earlier in the year. Rebuilding under depthai 2.22.0 and firing up the existing code, I'm greeted with:

                    terminate called after throwing an instance of 'std::runtime_error'   what():  IMU(0) - IMU invalid settings!: IMU not detected. Your board doesn't have IMU or requires firmware update (Set imu.enableFirmwareUpdate(True) explicitly.). 1, 321 Aborted (core dumped)

                    And the camera soft bricking itself. Okay, fair enough, the message tells me what to do, so I insert the relevant call and get:

                    [14442C10B148E7D600] [192.168.88.124] [5.183] [IMU(0)] [warning] IMU 'enableFirmwareUpdate' is deprecated! Use 'device.startIMUFirmwareUpdate' terminate called after throwing an instance of 'std::runtime_error'   what():  IMU(0) - IMU invalid settings!: IMU not detected. Your board doesn't have IMU or requires firmware update (Set imu.enableFirmwareUpdate(True) explicitly.). 1, 321 Aborted (core dumped)

                    Which is mildly amusing, given that it tells me to use the call it just told me was deprecated. Fair enough, make the change to the non-deprecated call and the problem persists.

                    So, taking a different tact, I try this little snippet:

                    auto imuType = device.getConnectedIMU();
                    auto imuFirmwareVersion = device.getIMUFirmwareVersion();
                    auto embeddedIMUFirmwareVersion = device.getEmbeddedIMUFirmwareVersion();
                    std::cout << "IMU type: " << imuType << " firmware version: " << imuFirmwareVersion < " embedded firmware version: " << embeddedIMUFirmwareVersion << std::endl;

                    Which yields:
                    IMU type: NONE firmware version: 0.0.0 embedded firmware version: 0.0.0

                    Which isn't precisely encouraging. In desperation, track down and build the imu_firmware_update tool, build it, run it…and nothing changes.

                    Basically, everything that I try in order to interact with the IMU on the Oak-D-POE produces no results and leaves the device soft bricked.

                    How am I screwing this one up?

                    • Hey Erik,

                      For the moment, I think christian@farmwave.io.

                      If I'm getting the message from our finance people right, we have hundreds of these things on order with global shutters, so we're kinda predisposed to help out in whatever way we can -- including slinging firmware if it comes to that -- since we're apparently more than a little committed at this point : P

                    • Sooo, demonstrating the dangers of trying to prove a negative, after idling for a while I found myself back in a state where neither the configuration utility nor my code could reliably find all of the cameras. I've got a few other things to burn through first, but my next move is to drop wifi and see if that (for some weird reason) changes the behavior.

                    • Send up a flare if you need community support. We have a silly number of these things on order and it's in our interest to see that the underlying stack is as robust as possible -- otherwise I really did pick the wrong week to quit sniffing glue πŸ˜‰

                      • erik replied to this.
                      • Hey Erik,

                        So switching to getAllConnectedDevices didn't change the behavior, nor did setting a static IPV4 + netmask. However, setting a ACπŸ˜ƒE:48:XX:XX:XX mac address seems to have fixed it, although I need to wait about 40 seconds after exit before trying to re-probe the cameras for it to work reliably. I'm guessing that part of that time is some sort of timeout on the part of the camera, because I'm just killing the process, which isn't going to call the destructor for the Device() class and so shutdown at the XLink level isn't happening nicely.

                        I neglected to mention earlier that the inability to find the cameras isn't limited to my code; the example programs fail, and the Python-based configuration tool can't reliably find them, either.

                        I'll follow-up once I have a better sense of if this is really a fix, or if the winds just happen to be blowing in a friendly direction at the moment.

                      • Ah, yeah, that's consistent with what I was observing, both the failure and the serialization I put around the constructor call for Device, although now I'm wondering if I need to stick serialization around the calls to all constructors that might be called on distinct threads. If problems persist I'll try adding a delay between launching each thread, but that's dodgy just because I don't know how long it's going to take for thread creation or when the thread will actually first get scheduled πŸ˜›

                        Anyhow, thanks for confirming; at least now I know I'm not any more crazy than usual πŸ˜‰

                        • Hey Erik,

                          As ever, thanks for the support.

                          No, I can roll in after they've been idle for hours and the call will fail. We did tumble to the fact that it takes a while for them to come back to a discoverable state, which actually changed the way we go about probing them; my original plan was to boot them just long enough to discover the type of camera (which only seems available via a Device() object), but with configurations with as many as eight cameras, booting all of them twice got unwieldy, so I just wait until I go to load the pipelines and if the camera in question doesn't have something that the specific pipeline needs (like an IMU to figure out if the camera is pointing the wrong way) I just deal with it asynchronously.

                          No, no pipelines running. That said, let me switch to getAllConnectedDevices and see if the observed behavior changes.

                          I'd tripped over the doc in question and didn't see anything that we weren't already doing. However, until last night we've been running these things as they come out of the box using DHCP, or programmatically setting their IPV4 and netmask using a stand-alone tool we tossed together, and it wasn't until I built the Python side of the house to use the configuration tool that the dim bulb went on and I realized these things don't ship with their Mac address set. I can imagine that causing a variety of issues, so I'll be dealing with that today. I guess I'll make them look like Nests or RIng doorbells or somethin' πŸ˜‰

                          Thanks again!

                          • erik replied to this.
                          • So, FWIW, adding serialization around the call to the Device constructor has symptomatically fixed the problem. We'll see if it sticks.

                            • erik replied to this.
                            • Ugh. Sorry for the formatting, that's what I get for C&P'ing stuff.