Jetson CSI Camera Customization
Generate and validate kernel device-tree overlays for MIPI and GMSL cameras on custom Jetson Thor or Orin carriers.
The skill scopes its actions, requires confirmation for wiring and commit messages, uses a read-only pin verifier, discloses device-tree/GPIO/I2C and downstream build/flash data flows, and warns about duplicate fragments and regulator errors that can break camera enumeration. However, it still modifies and commits BSP source, writes run-state data, and can chain into build, promotion, flashing, and validation without documenting a concrete rollback procedure. Licensing and attribution are also inconsistent: front matter says Apache-2.0, the skill card says CC-BY-4.0 AND Apache-2.0, while the supplied license metadata is NOASSERTION, so points are deducted.
The main workflow, prerequisites, failure signals, and dtc/fdtoverlay checks are described in useful detail, including handling for missing cpp headers and FDT_ERR_NOTFOUND. However, SKILL.md, procedure.md, and camera-overlay-templates/README.md visibly drift and conflict on commands, paths, downstream registration ownership, and the obsolete /jetson-modify-camera name. Nothing was executed, and there is no real test suite or CI evidence covering key paths, so the static cap requires a conservative deduction.
The audience, Thor/Orin platforms, MIPI/GMSL scenarios, trigger phrases, prerequisites, and exclusions for UPHY/ODMDATA are reasonably clear. Chinese-language support and Chinese interaction guidance are absent, and boundaries for custom sensors and non-reference carriers still depend heavily on user-supplied documentation. The core function depends on local BSP tooling, with no evidence that it entirely depends on overseas services unreachable from mainland China, so no additional network deduction is applied.
The material is layered into overview, invocation, procedure, gotchas, and references, with versioning, dependencies, example commands, known limitations, benchmark material, and some publisher-maintenance signals. It lacks a formal changelog and a clearly stated maintenance/update responsibility, and the skill card conflicts with SKILL.md on licensing and output details. Repository-level README information does not fully replace skill-specific governance documentation.
The skill provides a directly usable core workflow for sensor enumeration, DTSI preprocessing, single-fragment composition, device-tree verification, pin review, and downstream handoff, and the benchmark reports limited gains in correctness and effectiveness. However, the benchmark has only two positive tasks and no negative-trigger tasks, while static review cannot establish that generated overlays work on target hardware; users still need review, compilation, flashing, and on-device validation. The score therefore remains below the static ceiling.
The evidence includes concrete paths, commands, gates, error strings, and two evaluation tasks, giving it some auditability. There is no independently checkable CI, committed test suite, reproducible output artifact, or external corroboration, and the benchmark results cannot be independently reproduced from the supplied files, so only limited static evidence credit is justified.
- SKILL.md conflicts with procedure.md and camera-overlay-templates/README.md on paths, commands, ownership, and the obsolete /jetson-modify-camera reference; reconcile these before publication.
- Execution modifies and commits BSP source and may enter device flashing workflows; confirm exact targets, preserve recoverable commits, and add an explicit rollback procedure.
- Licensing is inconsistent across Apache-2.0, CC-BY-4.0 AND Apache-2.0, and NOASSERTION; maintainers should resolve the governing license statement.
- There is no Chinese interaction or localization guidance; mainland-China users may need to interpret English AskUserQuestion prompts and device-tree terminology.
- The benchmark has only two positive cases, no negative-trigger cases, and no independently reproducible test artifacts; it does not prove hardware success.
What does this skill do, and when should you use it?
This skill enables MIPI or GMSL camera sensors on custom Jetson Thor or Orin carrier boards. It reads wiring and mode information from NVIDIA in-tree sensor DTSI files, or collects wiring details for custom sensors. It appends a camera fragment to a composite kernel device-tree overlay, validates it with dtc and fdtoverlay, and commits the overlay to the BSP source repository. It does not allocate UPHY lanes, edit ODMDATA, or register overlays in the carrier flash configuration.
Resolves the active Jetson target and source documents; enumerates supported sensors by scanning in-tree per-platform camera DTBOs; checks carrier and module support against DTSI files, camera and platform documentation, schematics, and pinmaps; preprocesses or splices sensor DTSI content; appends exactly one camera-marked fragment to the composite custom overlay DTS; sets jetson-header-name when required; runs dtc, fdtoverlay, and pin_verifier.py checks; writes a run-state JSON sidecar; and commits the resulting overlay in the bsp_sources hardware repository.
- A Jetson Thor carrier-board developer needs to enable an NVIDIA-supported MIPI sensor from an in-tree DTSI.
- A Jetson Orin developer needs to bring up a GMSL sensor and validate NVCSI and tegra-capture-vi configuration.
- A developer needs to add another camera to an existing multi-sensor carrier configuration.
- A device boots but v4l2-ctl --list-devices does not show tegra-capture-vi channels.
- A developer is using a custom sensor and needs to provide wiring details derived from the carrier pinmap.
What are this skill's strengths and limitations?
- Focused on camera bring-up for custom Jetson Thor and Orin carriers.
- Uses NVIDIA in-tree DTSI content as the wiring and sensor-mode source of truth.
- Includes checks for device-tree compilation, overlay application, duplicate fragments, missing symbols, and camera-related pin configuration.
- Clearly separates camera overlay generation from ODMDATA, flash-conf, and upstream BSP image changes.
- Does not handle UPHY lane allocation, ODMDATA changes, or OVERLAY_DTB_FILE registration.
- Requires prepared BSP source state, multiple hardware documents, and carrier-specific configuration data.
- Custom sensors require user-supplied wiring information, while sensor mode tables must be copied from a suitable in-tree DTSI.
- The supplied material provides no standalone test suite, platform support matrix, or performance measurements.
How do you install this skill?
Install the individual skill with the repository's documented skills CLI flow:
npx skills add nvidia/skills --skill jetson-customize-camera --yes
To target Codex explicitly:
npx skills add nvidia/skills --skill jetson-customize-camera --agent codex --yes
The README does not document another dedicated installation method for this skill.
How do you use this skill?
After installation, ask the agent for a scoped task such as “enable a MIPI camera on my custom Jetson Thor carrier” or “configure the GMSL camera on this custom Orin carrier.” The workflow requires an active profile, a Git-backed Linux_for_Tegra source tree, a carrier overlay tracker produced by jetson-derive-carrier, the in-tree sensor DTSI files, relevant hardware documentation, and dtc, cpp, and fdtoverlay on PATH. It is not intended for UPHY lane allocation or ODMDATA edits. The detailed Steps 1–7 are referenced in references/procedure.md, but that file's full contents are not included in the supplied material.