Skip to content

Added classes and settings for supporting the new ThriftiestOV9281 Ca…#2478

Open
DoctorFogarty wants to merge 6 commits into
PhotonVision:mainfrom
DoctorFogarty:ThriftiestCam
Open

Added classes and settings for supporting the new ThriftiestOV9281 Ca…#2478
DoctorFogarty wants to merge 6 commits into
PhotonVision:mainfrom
DoctorFogarty:ThriftiestCam

Conversation

@DoctorFogarty

Copy link
Copy Markdown
Contributor

Description

Adds class and settings for the new OV9281 variant introduced by ThriftyBot
https://www.thethriftybot.com/products/thriftiest-cam

Meta

Merge checklist:

  • Pull Request title is short, imperative summary of proposed changes
  • The description documents the what and why, including events that led to this PR
  • If this PR changes behavior or adds a feature, user documentation is updated
  • If this PR touches photon-serde, all messages have been regenerated and hashes have not changed unexpectedly
  • If this PR touches configuration, this is backwards compatible with all settings going back to the previous seasons's last release (seasons end after champs ends)
  • If this PR touches pipeline settings or anything related to data exchange, the frontend typing is updated
  • If this PR addresses a bug, a regression test for it is added
  • If this PR adds a dependency, the license has been checked for compatibility and steps taken to follow it

@DoctorFogarty DoctorFogarty requested a review from a team as a code owner May 9, 2026 16:33
@github-actions github-actions Bot added the backend Things relating to photon-core and photon-server label May 9, 2026
super.setUpExposureProperties();

// Fix the exposure lower and upper limits.
// The minimum usable exposure is above the UI default of 20, so

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if there's a way to choose saner defaults based on camera model, or to use real units like milliseconds here

// breaks permanently if a YUYV↔MJPEG format switch occurs.
// Only MJPEG modes (120fps) are usable; YUYV modes are 5-30fps anyway.
int originalSize = videoModes.size();
videoModes.removeIf(m -> m.pixelFormat != PixelFormat.MJPEG);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OnCameraConnected is the first time video modes can be enumerated but perhaps the code that actually grabs video modes should be the thing to care here instead? Having stables mutate camera state feels like an anti pattern

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend Things relating to photon-core and photon-server

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants