Our Jetson Orin Nano Super vision coprocessor as running on 2026-10-01 (evening), after a full-repo code audit and another team's first bug reports. Built from commit bd9eb9f; everything here can be rebuilt from this tag with the repo's scripts.
New since v2026.10.01
Fixes that would have hurt matches
- 2027 SystemCore robots looked permanently disabled (
photonvision-62). WPILib 2027 publishes a different control-word topic. Idle mode held every camera at ~30 fps through auto and teleop. PhotonVision now reads both the 2026 and 2027 formats. - Quiet mode started a second after the robot connected (
photonvision-65). At an event the Jetson's date jumps forward when it takes the robot's clock. Every timer now runs on a monotonic clock. Quiet mode also survives a PhotonVision restart (photonvision-64), and retries if it can't leave quiet mode. - Fewer ways to take every camera down at once:
- a dashboard edit during a pipeline switch could free a detector still in use (
photonvision-66); - native CUDA errors outside the detector are now guarded;
- a busy scene could overflow a GPU buffer (
bos-09); - the far-tag search could fault on fine noise: it now searches in tiles under the detector's 2048 px limit, which also fixes far tags on the right of the frame being placed wrong.
- a dashboard edit during a pipeline switch could free a detector still in use (
- A dashboard left open got slower and slower until it stopped responding (
photonvision-73). It kept every log line, and an unplugged camera logs a burst at every settings change. That can be a pegged browser on the driver-station laptop. It now keeps the newest 2,000 lines.
From another team's reports
- Calibration cut the camera out while the board was in view (
photonvision-70). A board filling the view makes JPEG frames bigger than the USB bandwidth each camera gets at 120 fps. Calibration now runs at the slowest frame rate of the resolution and puts the pipeline's mode back afterwards. Checked by frame-size estimates; not yet tried with a real board. - Cooling setting (
photonvision-71): Settings > Robot state > Cooling (Fan quiet, Fan full, No fan), applied at once and kept across reinstalls. For teams running the stock fan instead of a heatsink plate. - "GPU Acceleration: None detected" (
photonvision-72). That's upstream's Raspberry Pi camera line, so it showed on every Jetson. The Device card now says what the GPU is doing, and Match Ready names any camera on the CPU AprilTag type.
Also
- The far-tag search ignores excluded tags when deciding there's a good view (
photonvision-69). - Per-tag quality on NetworkTables (
photonvision-61). - The snapshot restore dialog says what it replaces (
photonvision-68). - Dashboard pollers can't pile up on a slow link (
photonvision-67). - Wi-Fi reconnects after an access point rejects it.
- A stuck PhotonVision stop is killed after 15 s, not 90.
- SpectrumVision: a robot-side PhotonLib wrapper for WPILib 2026 and 2027 alpha-6, with desktop simulation on Ubuntu 22.04.
- Tests:
- a detector regression corpus, which the bundle script checks before packing;
- a SystemCore rehearsal, at the robot loop you'll run (
REHEARSAL_PERIOD_MS=10): over USB with 4 cameras at 121 fps, results reach robot code at p50 25 ms with a 10 ms loop, 31 ms with 20 ms; - fake cameras for the browser tests;
tests/run-all.shfor the whole unattended suite;- lint in CI.
Known open items are in docs/AUDIT-2026-10.md.
Files
| File | What it is |
|---|---|
spectrum-jetson-prebuilt-v2026.10.02-bd9eb9f.tar.gz |
What the slow setup steps compile, for JetPack 6.2.3 / L4T 36.5.2, CUDA 12.6 only. See the list below. |
….tar.gz.sha256 |
Its checksum. install.sh --prebuilt checks it, then checks every file against the bundle's MANIFEST (repo commit, L4T, CUDA, patch list, SHA-256 per file), and refuses a mismatched L4T or CUDA. |
What's in the bundle:
- the CUDA AprilTag detector (
lib971apriltag.so), with ourbos-*patches; - our JPEG-hardware and TensorRT libraries;
- the field-calibration tool;
- the synthetic-tag generator that
fake-cameras.shuses (new); - the three allwpilib libraries the detector needs at runtime;
- our PhotonVision jar, with patches 00–73.
Use it with scripts/host/setup-jetson.sh --prebuilt (newest release), or scripts/jetson/install.sh --prebuilt <bundle> on the Jetson. The camera driver is still compiled on the Jetson, for its exact kernel (41 s).
Licenses
NOTICES.md in the bundle lists where every file comes from:
- PhotonVision and our code: GPL-3.0;
- WPILib allwpilib: BSD-3-Clause;
- the CUDA AprilTag detector by Austin Schuh and FRC 971: Apache-2.0, as published in RealtimeRoboticsGroup/aos.
The copy we build from (frc971/bos) has no license file of its own. If the authors would like this handled differently, open an issue and we'll change it.
Not included
- Game-piece models: not ours to redistribute (see
docs/GAME-PIECE-MODELS.md). - PhotonVision settings and SSD images: team-specific, and the images contain Wi-Fi and SSH credentials.