diff --git a/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/GenericUSBCameraSettables.java b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/GenericUSBCameraSettables.java index dcfea72c5f..3a48eac20b 100644 --- a/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/GenericUSBCameraSettables.java +++ b/photon-core/src/main/java/org/photonvision/vision/camera/USBCameras/GenericUSBCameraSettables.java @@ -174,7 +174,20 @@ public void setAutoWhiteBalance(boolean autoWB) { } } + @Override public void setAutoExposure(boolean cameraAutoExposure) { + if (configuration.cameraQuirks.hasQuirk(CameraQuirk.ArduOV9281Controls) + && !cameraAutoExposure) { + // OV9281 on Linux seems to sometimes ignore our exposure requests on first boot if we're in + // manual mode. Poking the camera into and out of auto exposure seems to fix it. + setAutoExposureImpl(true); + setAutoExposureImpl(false); + } else { + setAutoExposureImpl(cameraAutoExposure); + } + } + + public void setAutoExposureImpl(boolean cameraAutoExposure) { logger.debug("Setting auto exposure to " + cameraAutoExposure); if (!cameraAutoExposure) {