Skip to content

Trying to configure Vision Components IMX412C cameras on Jetson Orin baseboard, cameras seem to probe (mostly) ok but am running into some issues #25

@dburr

Description

@dburr

Trying to configure Vision Components IMX412C cameras on Jetson Orin baseboard, cameras seem to probe (mostly) ok but am running into some issues

I am attempting to configure dual Vision Components IMX412c sensors on an Antmicro Jetson Orin Baseboard with an Orin NX 8 GB SOM, and am running into some problems, probably due to the unusual I/O arrangement (gpio and i2c muxes.)

The GPIO mux is properly detected and I have verified that the cameras are receiving power (I have the GPIO lines locked "high" (camera power lines are active high.)

[    7.346186] pca953x 1-0020: supply vcc not found, using dummy regulator
[    7.353151] pca953x 1-0020: using no AI
[    7.359941] gpio-308 (csia_pen-hog): hogged as output/high
[    7.366220] gpio-309 (csib_pen-hog): hogged as output/low
[    7.372399] gpio-310 (usbc1_pen-hog): hogged as output/high
[    7.378761] gpio-311 (disable_poe_dcdc-hog): hogged as output/low
[    7.385527] gpiochip2: registered GPIOs 308 to 315 on 1-0020

And the i2c mux also appears to be properly configured, and indeed the cameras themselves appear to probe as well... mostly.

[    7.394145] pca954x 2-0070: supply vcc not found, using dummy regulator
[    7.401074] pca954x 2-0070: supply vcc-pullup not found, using dummy regulator
[    7.408587] pca954x 2-0070: pca954x_probe: forcing device bus number, start 30.
[    7.416742] vc_mipi 30-001a: vc_probe(): Probing UNIVERSAL VC MIPI Driver (v0.18.3)
[    7.519194] i2c 30-0010: +--- VC MIPI Camera -----------------------------------+
[    7.526887] i2c 30-0010: | MANUF. | Vision Components               MID: 0x0427 |
[    7.534577] i2c 30-0010: | MODULE | ID:  0x0412                     REV:   0004 |
[    7.549169] i2c 30-0010: | SENSOR | SONY IMX412C                                |
[    7.556859] i2c 30-0010: +--------+---------------------------------------------+
[    7.564552] i2c 30-0010: +--- Sensor Registers ------+--------+--------+--------+
[    7.572246] i2c 30-0010: |                           | low    | mid    | high   |
[    7.579940] i2c 30-0010: +---------------------------+--------+--------+--------+
[    7.587628] i2c 30-0010: | idle                      | 0x0100 |        |        |
[    7.595321] i2c 30-0010: | horizontal start          | 0x0345 | 0x0344 |        |
[    7.603009] i2c 30-0010: | vertical start            | 0x0347 | 0x0346 |        |
[    7.610698] i2c 30-0010: | horizontal end            | 0x0349 | 0x0348 |        |
[    7.618394] i2c 30-0010: | vertical end              | 0x034b | 0x034a |        |
[    7.626090] i2c 30-0010: | hor. output width         | 0x034d | 0x034c |        |
[    7.633784] i2c 30-0010: | ver. output height        | 0x034f | 0x034e |        |
[    7.641480] i2c 30-0010: | exposure                  | 0x0200 | 0x0203 | 0x0202 |
[    7.649179] i2c 30-0010: | gain                      | 0x0205 | 0x0204 |        |
[    7.656873] i2c 30-0010: +---------------------------+--------+--------+--------+
[    7.664571] i2c 30-0010: | clock for ext. trigger    |        0 Hz              |
[    7.672276] i2c 30-0010: | pixel clock               |        0 Hz              |
[    7.679971] i2c 30-0010: | shutter offset            |        0 us              |
[    7.687669] i2c 30-0010: +---------------------------+--------------------------+
[    7.695364] i2c 30-0010: +--- Module Modes -------+---------+---------+---------+
[    7.703062] i2c 30-0010: |  # | rate    | lanes   | format  | type    | binning |
[    7.703064] i2c 30-0010: +----+---------+---------+---------+---------+---------+
[    7.703070] i2c 30-0010: |  0 |    1350 |       2 | RAW10   | STREAM  |       0 |
[    7.703072] i2c 30-0010: |  1 |    1350 |       4 | RAW10   | STREAM  |       0 |
[    7.719181] i2c 30-0010: |  2 |    1350 |       2 | RAW10   | SLAVE   |       0 |
[    7.719182] i2c 30-0010: |  3 |    1350 |       4 | RAW10   | SLAVE   |       0 |
[    7.734578] i2c 30-0010: +----+---------+---------+---------+---------+---------+
[    7.749622] i2c 30-0010: vc_init_ctrl_imx412(): Initialising module control for IMX412
[    7.765030] i2c 30-0010: +-------+--------+------------+-----------+
[    7.806150] i2c 30-0010: | lanes | format | exposure   | framerate |
[    7.812690] i2c 30-0010: |       |        | max [us]   | max [mHz] |
[    7.819219] i2c 30-0010: +-------+--------+------------+-----------+
[    7.825761] i2c 30-0010: |     2 | RAW10  |    1058097 |     20028 |
[    7.832289] i2c 30-0010: |     4 | RAW10  |     529048 |     40057 |
[    7.838820] i2c 30-0010: |     2 | RAW10  |    1058097 |     20028 |
[    7.838822] i2c 30-0010: |     4 | RAW10  |     529048 |     40057 |
[    7.838824] i2c 30-0010: |     2 | RAW10  |    1058097 |     20028 |
[    7.838827] i2c 30-0010: |     4 | RAW10  |     529048 |     40057 |
[    7.838829] i2c 30-0010: |     2 | RAW10  |    1058097 |     20028 |
[    7.878951] i2c 30-0010: |     4 | RAW10  |     529048 |     40057 |
[    7.885496] i2c 30-0010: |     2 | RAW10  |    1058097 |     20028 |
[    7.892026] i2c 30-0010: |     4 | RAW10  |     529048 |     40057 |
[    7.898570] i2c 30-0010: |     2 | RAW10  |    1058097 |     20028 |
[    7.905112] i2c 30-0010: |     4 | RAW10  |     529048 |     40057 |
[    7.911653] i2c 30-0010: +-------+--------+------------+-----------+
[    7.918184] i2c 30-0010: VC MIPI Core successfully initialized
[    7.924176] vc_mipi 30-001a: vc_init_io(): Init trigger and flash mode
[    7.939297] i2c 30-0010: vc_mod_set_trigger_mode(): Set trigger mode: DISABLED
[    7.954051] i2c 30-0010: vc_mod_set_io_mode(): Set IO mode: DISABLED
[    7.965789] vc_mipi 30-001a: vc_init_frmfmt(): Init frame (width: 4032, height: 3040, fps: 0)
[    7.980174] vc_mipi 30-001a: vc_init_binning(): Init binning modes
[    7.980373] vc_mipi 30-001a: tegracam sensor driver:vc_mipi_v2.0.6
[    7.990550] tegra-camrtc-capture-vi tegra-capture-vi: subdev vc_mipi 30-001a bound
[    8.009161] vc_mipi 30-001a: vc_core_set_num_lanes(): Set number of lanes 4
[    8.016330] vc_mipi 30-001a: vc_init_lanes(): Init lanes (num_lanes: 4)
[    8.023138] vc_mipi 30-001a: vc_init_tegra_controls(): Read control gain (min: 0, max: 48000, default: 0)
[    8.032974] vc_mipi 30-001a: vc_init_tegra_controls(): Overwrite control exposure (min: 1, max: 529048, default: 10000)
[    8.044065] vc_mipi 30-001a: vc_init_tegra_controls(): Overwrite control framerate (min: 0, max: 40057, default: 0)

The cameras do appear to be communicating (at least somewhat) over i2c, as much of the probed data is correct and makes sense (module name and ID, revision, MID, sensor name, etc.) I am unsure of what the correct values for some of the properties should be (horizontal start, vertical start, etc.) however I am almost certain that some of them are bogus (for example, ext. trigger clock, pixel clock, and shutter offset of 0 looks bogus to me.)

I have tried running image capture commands (nvgstcapture-1.0, etc.) and all I see is a completely black image.

Any advice/assistance is much appreciated. I am wondering (hoping) if there is something simple that I have overlooked, because this seems like it is very close to working.

Below I have attached my .dtsi file as well as the full kernel log (dmesg.)

Artifacts:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions