Commit Graph

2238 Commits

Author SHA1 Message Date
Sam Freund
7764ccc533 Upgrade actions to Node 24 and remove unneeded archival (#2416)
Co-authored-by: Gold856 <117957790+Gold856@users.noreply.github.com>
Co-authored-by: Jade Turner <spacey-sooty@proton.me>
Co-authored-by: Jordan McMichael <jlmcmchl@gmail.com>
2026-04-11 12:23:14 -05:00
samfreund
872b587bae image version 2026.1.4 2026-04-11 12:23:14 -05:00
Gold856
934eed21d2 Update to match new WPILib organization 2026-04-11 12:23:14 -05:00
Jordan McMichael
c34c854583 Upgrade to 2027 alpha 2 (#2010) 2026-04-11 12:23:14 -05:00
Gold856
83b4522bf3 Add DataLog to the list of libraries loaded 2026-04-11 12:23:14 -05:00
Jordan McMichael
d83d53650a [2027] Add systemcore as a photonlib build target (#1995)
## Description

Added systemcore to a couple of build files in order for `./gradlew
publishToMavenLocal` to generate systemcore-compatible dependencies.

Needed to support deploying photonlib to systemcore.

## Meta

Merge checklist:
- [x] Pull Request title is [short, imperative
summary](https://cbea.ms/git-commit/) of proposed changes
- [x] The description documents the _what_ and _why_
- [ ] 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 settings back to v2024.3.1
- [ ] 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

---------

Co-authored-by: Gold856 <117957790+Gold856@users.noreply.github.com>
2026-04-11 12:23:14 -05:00
Gold856
0734d1b806 Disable example builds 2026-04-11 12:23:14 -05:00
Gold856
3ace6122b0 Upgrade Gradle, fix build, and format 2026-04-11 12:23:14 -05:00
Jade Turner
a5f9a0b673 Start on updating examples for 2027
Signed-off-by: Jade Turner <spacey-sooty@proton.me>
2026-04-11 12:23:14 -05:00
Gold856
ed1b31cb7f Upgrade to 2027 alpha 2026-04-11 12:23:14 -05:00
Gold856
68bdb38a3d Switch to Ubuntu 24.04 2026-04-11 12:23:14 -05:00
Alan Everett
a5be3d062c Set raw exposure before setting auto exposure (#2429)
On a Luma P1, autoexposure on first boot was getting overridden with the manual exposure setting. This was traced back to #1814, where the order of setting auto exposure and raw exposure was flipped. This flips it back.
v2026.3.4
2026-04-10 04:04:49 +00:00
Chris Gerth
3379a1a132 better merch (#2427) 2026-04-07 21:46:07 -05:00
Sam Freund
5f59e9ab22 bump rubik image (#2424) v2026.3.3 2026-04-05 18:56:33 -07:00
Jade
515a1a3d78 Fix comments in OutputStream pipeline (#2415) 2026-03-28 15:13:47 -05:00
Sam Freund
03ffcb1215 Upgrade website dependencies (#2414) 2026-03-27 14:31:18 -04:00
Sam Freund
131098bfdd Add AE quirk to OV2311 (#2411) 2026-03-27 10:52:04 -05:00
Chris Gerth
b5277e5f4c Add Community Contribution Guidelines (#2405)
## Description

Leadership team identified gaps in how we introduce new developers to
the community.

Additional docs for onboarding new developers, helping clarify roles and
what counts as a "good" PR.

## Meta

Merge checklist:
- [ X] Pull Request title is [short, imperative
summary](https://cbea.ms/git-commit/) of proposed changes
- [ X] 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
2026-03-27 02:32:17 +00:00
Jesse Kane
52f1f7726f Fix strong reference in Cleaners (#2404) 2026-03-26 18:55:06 +00:00
Sam Freund
e19534da47 Remove old camera quirk aliases (#2412) 2026-03-26 14:22:58 -04:00
Gold856
488646e755 Upgrade to Vite 8 (#2408) 2026-03-26 04:39:38 +00:00
Jade
a8a0024321 Add nix files to .gitignore (#2409)
I assume based off discord comments a PR won't be accepted for a
shell.nix or equivalent flake solution so we should gitignore this so
people don't accidentally add them to PRs
2026-03-25 23:04:38 -05:00
Sam Freund
032deba775 refactor dark mode checks (#2407)
The current method for checking light vs. dark mode is to compare the
name of the theme against a hardcoded string. This PR uses a dark mode
boolean. This change is for verbosity and so that we're not reliant on
theme name. Additionally, we change some references to colors to the
global theme, instead of indexing the list of themes.
2026-03-24 17:49:56 -05:00
Gold856
7b240a027a Add more linting rules (#2406)
As a precursor to #2394, add a bunch of linting rules to try and catch
more mistakes/potential code errors/unnecessary code. Add a bunch of
rules from https://eslint.vuejs.org/rules/ in the "uncategorized"
section that seem useful to have.
2026-03-23 18:41:11 -04:00
Gold856
d4bfe643d5 Clean up C++ headers (#2402) 2026-03-19 06:10:04 +00:00
Stéphane Dalton
12446a6c44 Populate classId and confidence level for object detection in Java simulation (#2372)
## Description

compute confidence level based on target area in total image size and
populate classId and confidence level in Java (while building the
PhotonTrackedTarget)

## Changes
- Add new VisionTargetSim constructor for object detection
- If class ID specified but confidence = -1, estimate based on total
area

---------

Co-authored-by: Matt Morley <matthew.morley.ca@gmail.com>
2026-03-19 03:42:37 +00:00
Matt Morley
846528ce9c Remove NT reconnect loop entirely (#2398)
## Description

Back in
https://github.com/PhotonVision/photonvision/pull/467#issuecomment-1280964529
and
https://discord.com/channels/725836368059826228/725846784131203222/974498049609056266
we added code to poke our NT client every 5 seconds to "clicking the
save button in the settings window makes Photon show up again over
networktables". Total hack, but it seemed to work. We didn't at the time
dig any deeper in Wireshark or debug-level NT logs.

<img width="1373" height="679" alt="image"
src="https://github.com/user-attachments/assets/8cb2102e-0bae-4bfd-b9ac-55d31f8421b6"
/>

Now, it's 2026. 4 years on from the OG bug. And this code seems linked
to these issues

-
https://www.chiefdelphi.com/t/photonvision-coprocessor-not-sending-data-can-t-change-networking/516356/5
-
https://www.chiefdelphi.com/t/photonvision-network-tables-known-issue/515966

Craig collected these log files as well:


[craig-nt-never-connects.zip](https://github.com/user-attachments/files/26001809/craig-nt-never-connects.zip)

The code path that handles TCP re-connection was also changed entirely
since we first added this workaround. Regardless this hack was not
removed as part of the NT3 to NT4 upgrade:
- pre-NT4, reconnection was handled by `TCPConnector::connect_parallel`
which delegates to `TCPConnector`. This uses raw socket APIs
- post-NT4, reconnect is handled by `ParallelTcpConnector`. This uses
libuv exclusively

@crschardt did some really great debugging with a rio and radio in the
loop with a luma p1. In this test setup, removing this code improves
stability markedly. I'd still like to get this more on robot time, as
well as try to understand from Peter why we might have needed this code
in the first place.

## Changes

- Remove periodic stop/restart of NetworkTables client every 5 seconds
if `NetworkTablesInstance::isConnected` returns false.

## Meta

Merge checklist:
- [ ] Pull Request title is [short, imperative
summary](https://cbea.ms/git-commit/) 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

---------

Co-authored-by: Craig Schardt <crschardt@fastem.com>
v2026.3.2
2026-03-15 21:57:09 -04:00
Ruthie
7383a9040d correct typo (#2395) 2026-03-14 17:16:24 +00:00
42
ab09e7fa14 Fix offline dev update confirm handler not starting upload (#2393)
Fixes a bug where offline update did not start after confirming the
dev-version warning dialog.

The confirm action was using an incorrect file reference in template
context, so the selected JAR was not passed correctly to the upload
handler. The dialog closed, but no upload request was sent.
This change corrects the confirm handler so the selected file is passed
properly and the upload/install flow starts as expected.
2026-03-10 10:04:43 -05:00
Sam Freund
cd3d9b06bb Add clarity to networking for multiple coprocs (#2383)
We've had a couple people who didn't find it clear that multiple
coprocessors required different static IP addresses, so this PR aims to
clarify that point in the docs.
2026-03-09 17:19:24 +00:00
Charlotte Wilson
fd4628d419 Drop deviceLogoPath and supportURL from HardwareConfig (#2389)
Removed the `deviceLogoPath` and `supportURL` fields from
`HardwareConfig` due to low (no) usage, and updates the docs to reflect
this.
2026-03-06 11:44:37 -06:00
Ruthie
5fdfa3132f Document low-resource vision simulation with Photonvision (#2359)
## Description

What changed? Why? (the code + comments should speak for itself on the
"how")

Added section on low-resource vision simulation with Photonvision,
including configuration details and use cases for low-spec machines.
Closes #2358

---------

Co-authored-by: Chris Gerth <gerth2@users.noreply.github.com>
2026-03-06 01:27:16 +00:00
Sam Freund
a659830aa4 Bump image version to 2026.1.3 (#2381)
[Release notes for
2026.1.3](https://github.com/PhotonVision/photon-image-modifier/releases/tag/v2026.1.3)
- Provisional orange pi 6 plus image builder by @guineawheek in
https://github.com/PhotonVision/photon-image-modifier/pull/126
- Install usbtop to images by @samfreund in
https://github.com/PhotonVision/photon-image-modifier/pull/129
- Shrunk our Rubik Pi 3 image by @crschardt in
https://github.com/PhotonVision/photon-image-modifier/pull/128

This PR includes a downsized Rubik Pi image and usbtop shipped with the
image for debugging. It also adds the opi6 image (note no OD support
yet; platform is detected as a generic arm64 target).
v2026.3.1
2026-03-02 19:57:12 -05:00
Sam Freund
6b6e2c3724 Add docs for usbtop (#2378)
This PR adds documentation for using usbtop, a program for monitoring
USB bus bandwidth. Many teams have been having issues with USB bus
bandwidth, and including a tool with the PhotonVision image that allows
them to monitor said bandwidth will likely prove beneficial.

This PR also documents lsusb, which can be used to get the max bandwidth
on USB buses. This is helpful as it gives us a basline for debugging
with usbtop.
2026-03-02 16:39:58 -06:00
Charlotte Wilson
1cc9a2f2ff docs: Add headless test instructions + reshuffle build doc format (#2374)
## Description

Closes #1902

**What changed? Why? (the code + comments should speak for itself on the
"how")**

The amount of UI windows that contributors have open (and then proceed
to frantically close) increases exponentially with every passing build
season [(Munroe 2009)](https://xkcd.com/605/).

This PR adds headless (no-UI) test instructions, moves all of the test
related build documentation to its own subsection (and reorders it
roughly in the order we prefer they be used in), and makes the "Example"
sections their own independent H2.

## Meta

Merge checklist:
- [x] Pull Request title is [short, imperative
summary](https://cbea.ms/git-commit/) of proposed changes
- [x] The description documents the _what_ and _why_, including events
that led to this PR
- [x] If this PR changes behavior or adds a feature, user documentation
is updated

---------

Co-authored-by: Matt M <matthew.morley.ca@gmail.com>
2026-03-02 11:57:54 -06:00
Charlotte Wilson
51e2866caf Explicitly handle Sim Camera params in milliseconds (#2375) 2026-02-27 02:54:38 +00:00
Jade
70ea61c1cb Add external licenses to jar (#2369) 2026-02-25 08:31:14 +00:00
Vishruth Rao
77bf5bd1e3 Update Dashboard to reflect Calibration Rotation Changes (#2370)
Around a year ago, this PR #1277 added checks to make sure that users
weren't enabling camera rotation when they calibrated their cameras as a
stop gap to Issue #1084

However PR #1464 has resolved this issue (see
https://github.com/PhotonVision/photonvision/issues/1084#issuecomment-2477580204)
and I wanted to update the orientation tooltip in the dashboard to
reflect this.
2026-02-20 02:44:53 +00:00
Sam Freund
3a9cdf7732 Verify native library integrity during extraction/load (#2368)
## Description

We've hit a problem where the `CombinedRuntimeLoader` extracts native
files, but gets interrupted in the middle. This is bad, cause all
`CombinedRuntimeLoader` used to check a file was its existence. This
change uses the hash of the file to verify that it's correct. This will
be checked at runtime, everytime, if the file is extant. If this check
fails, we will delete the extant file and attempt to reextract. We also
check a newly extracted file, if that hash does not match we error.

Note that this is reliant on
https://github.com/PhotonVision/wpilib-tool-plugin/pull/8 and should
follow #2367

## Meta

Merge checklist:
- [x] Pull Request title is [short, imperative
summary](https://cbea.ms/git-commit/) of proposed changes
- [x] 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

---------

Co-authored-by: Matt M <matthew.morley.ca@gmail.com>
2026-02-19 22:19:07 +00:00
Sam Freund
95f637f1d6 Add rotatedrect detections for OD and bump rubik JNI (#2325)
## Description

<!-- What changed? Why? (the code + comments should speak for itself on
the "how") -->

<!-- Fun screenshots or a cool video or something are super helpful as
well. If this touches platform-specific behavior, this is where test
evidence should be collected. -->

<!-- Any issues this pull request closes or pull requests this
supersedes should be linked with `Closes #issuenumber`. -->

Pursuant to PhotonVision/rubik_jni#21 modify the neuralnetworkresult and related code to use a rotatedrect. This is scaffolding for implementing OBB -- overall this shouldn't change behavior of existing normal object detection models. This PR also bumps the rubik_jni version.

## Meta

Merge checklist:
- [x] Pull Request title is [short, imperative
summary](https://cbea.ms/git-commit/) of proposed changes
- [x] The description documents the _what_ and _why_
- [ ] 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 settings back to v2025.3.2
- [ ] 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

Co-authored-by: Matt Morley <matthew.morley.ca@gmail.com>
2026-02-18 17:01:00 +00:00
Sam Freund
f2e262d59d Bring CombinedRuntimeLoader into PV [NFC] (#2367)
Given that WPILib is nuking their Java tooling, it becomes necessary to
pull said tooling into PV itself. This migrates the
CombinedRuntimeLoader into PV, which should finalize all of the tooling
migration.
2026-02-18 10:02:53 -06:00
Sam Freund
5474e28826 Check offline updates for incompatibility (#2361) 2026-02-17 23:24:46 -08:00
Ryan Blue
c91df33b63 Fix default gateway in static IP config to match VH-109 DHCP config (#2364)
The default gateway handed out by the vh-109 dhcp server is .4, not .1.
prompted by
https://www.chiefdelphi.com/t/photonvision-not-accessible-over-vh109-running-ap-firmware/514418/29
2026-02-17 14:32:24 -06:00
Sam Freund
9d9a55cbae add usb firmware checkbox to flashing docs (#2360)
There have been recent updates to the QCL which mean it's now necessary
to select a checkbox to flash USB firmware. We've been having some
people miss this step, so we're now including it in the docs.
2026-02-13 13:46:02 -06:00
Matt Morley
ccbd46be1a Release processed Focus mat to not leak, cache, and fix cvmat refcounting (#2356) v2026.2.2 2026-02-08 21:17:43 +00:00
Watermilan412
994dfe77fa Fix Arducam OV9782 Exposure Changing After Reboot (#2355) 2026-02-07 18:24:54 +00:00
Devon Doyle
5a87e4c738 Add calibration info tooltip (#2350) v2026.2.1 2026-02-03 05:41:24 +00:00
Alan Everett
284e818e74 Fix dimmable LED off-state, topic names, PWM flicker, brightness update outside kDefault, indefinite blinking, and blinking reliability (#2337) 2026-02-02 21:11:34 -08:00
Gold856
f4b30da6b3 Dynamically import echarts and three.js (#2349) 2026-02-02 08:06:48 -08:00
Sam Freund
798b01c3a6 Copy old configs before testing (#2348)
## Description

Presently, any tests using our old configs happen in place. This is
problematic, as it changes the files themselves. This means that anyone
running the tests will cause unintentional modifications, which stand a
chance of being committed and merged into main. We want these old
database files to remain untouched, thus we copy them to a temp
directory prior to running our tests.

## Meta

Merge checklist:
- [x] Pull Request title is [short, imperative
summary](https://cbea.ms/git-commit/) of proposed changes
- [x] 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
2026-02-02 03:30:37 +00:00