[v4,0/4] Add OV9782 sensor support
mbox series

Message ID 20260504222859.3023305-1-mathias@pepservices.com
Headers show
Series
  • Add OV9782 sensor support
Related show

Message

Mathias Petersen May 4, 2026, 10:28 p.m. UTC
Add support for the OmniVision OV9782 sensor in libcamera.

The series adds static sensor properties, registers OV9782 with the
Raspberry Pi OV9281 camera helper, and installs OV9782 tuning files for
both the Raspberry Pi VC4 and PiSP IPA pipelines.

Changes in v4:
- Condense scalar tuning tables to reduce the patch body size while
  keeping the JSON structure readable.

Changes in v3:
- Split the VC4 and PiSP tuning files into separate patches to keep the
  mailing list message bodies smaller.

Changes in v2:
- Add Raspberry Pi VC4 and PiSP IPA tuning files for OV9782.
- Install the new tuning files through the corresponding Meson data
  file lists.

Mathias (4):
  libcamera: camera_sensor_properties: Add OV9782
  ipa: rpi: cam_helper: Register OV9782
  ipa: rpi: Add OV9782 VC4 tuning file
  ipa: rpi: Add OV9782 PiSP tuning file

 src/ipa/rpi/cam_helper/cam_helper_ov9281.cpp  |    1 +
 src/ipa/rpi/pisp/data/meson.build             |    1 +
 src/ipa/rpi/pisp/data/ov9782.json             | 1253 +++++++++++++++++
 src/ipa/rpi/vc4/data/meson.build              |    1 +
 src/ipa/rpi/vc4/data/ov9782.json              |  525 +++++++
 .../sensor/camera_sensor_properties.cpp       |   11 +
 6 files changed, 1792 insertions(+)
 create mode 100644 src/ipa/rpi/pisp/data/ov9782.json
 create mode 100644 src/ipa/rpi/vc4/data/ov9782.json

Comments

Dave Stevenson May 5, 2026, 10:58 a.m. UTC | #1
Hi Mathias

On Mon, 4 May 2026 at 23:41, Mathias <mathias@pepservices.com> wrote:
>
> Add support for the OmniVision OV9782 sensor in libcamera.
>
> The series adds static sensor properties, registers OV9782 with the
> Raspberry Pi OV9281 camera helper, and installs OV9782 tuning files for
> both the Raspberry Pi VC4 and PiSP IPA pipelines.

Has a driver for OV9782 been sent to the linux-media mailing list? I
can't find one in the archives, and AIUI that's a prerequisite for
merging sensor support to libcamera.

Also is there a commercial supplier for this module? I like to keep
samples of as many sensors supported on the Pi as possible so that we
can investigate any reported regressions.

Thanks.
  Dave

> Changes in v4:
> - Condense scalar tuning tables to reduce the patch body size while
>   keeping the JSON structure readable.
>
> Changes in v3:
> - Split the VC4 and PiSP tuning files into separate patches to keep the
>   mailing list message bodies smaller.
>
> Changes in v2:
> - Add Raspberry Pi VC4 and PiSP IPA tuning files for OV9782.
> - Install the new tuning files through the corresponding Meson data
>   file lists.
>
> Mathias (4):
>   libcamera: camera_sensor_properties: Add OV9782
>   ipa: rpi: cam_helper: Register OV9782
>   ipa: rpi: Add OV9782 VC4 tuning file
>   ipa: rpi: Add OV9782 PiSP tuning file
>
>  src/ipa/rpi/cam_helper/cam_helper_ov9281.cpp  |    1 +
>  src/ipa/rpi/pisp/data/meson.build             |    1 +
>  src/ipa/rpi/pisp/data/ov9782.json             | 1253 +++++++++++++++++
>  src/ipa/rpi/vc4/data/meson.build              |    1 +
>  src/ipa/rpi/vc4/data/ov9782.json              |  525 +++++++
>  .../sensor/camera_sensor_properties.cpp       |   11 +
>  6 files changed, 1792 insertions(+)
>  create mode 100644 src/ipa/rpi/pisp/data/ov9782.json
>  create mode 100644 src/ipa/rpi/vc4/data/ov9782.json
>
> --
> 2.53.0
Mathias Petersen May 5, 2026, 6:36 p.m. UTC | #2
Hi Dave,

I have not sent the kernel module to the linux-media mailing list. I apologize if I have done this a bit out of order, I am still trying to find my way around the correct order of operations here. I am also just generally new to mailing lists.

Not sure what you might consider a commercial supplier and what exactly qualifies but I did find these:

https://shop.luxonis.com/products/oak-ffc-ov9782-w?srsltid=AfmBOorGnjiBYlskaGdHW1IYC5Ujc1eg9yQkbJ9aMIbcuZj3UJ2aalcb

https://www.amazon.ca/Arducam-Shutter-Distortion-Without-Microphones/dp/B0CLXZ29F9

Luxonis is over the CSI connector so I assume that is what would qualify. I would link my own product I am using the sensor in but i dont think it qualifies for what you are looking for. I can make a send out a custom module if their prices are too steep or some sort of incompatibility with raspberry pi hardware as I dont see a pin out provided for the connector.

Im still trying to get a grasp on everything so any information would be great, I also have the dtoverlay for this sensor if you can help point me in the right directions that would be great.

Regards,
Mathias Petersen
 
"Dave Stevenson" dave.stevenson@raspberrypi.com – May 5, 2026 3:59 AM
> Hi Mathias

> On Mon, 4 May 2026 at 23:41, Mathias <mathias@pepservices.com> wrote:
> >
> > Add support for the OmniVision OV9782 sensor in libcamera.
> >
> > The series adds static sensor properties, registers OV9782 with the
> > Raspberry Pi OV9281 camera helper, and installs OV9782 tuning files for
> > both the Raspberry Pi VC4 and PiSP IPA pipelines.

> Has a driver for OV9782 been sent to the linux-media mailing list? I
> can't find one in the archives, and AIUI that's a prerequisite for
> merging sensor support to libcamera.

> Also is there a commercial supplier for this module? I like to keep
> samples of as many sensors supported on the Pi as possible so that we
> can investigate any reported regressions.

> Thanks.
> Dave

> > Changes in v4:
> > - Condense scalar tuning tables to reduce the patch body size while
> > keeping the JSON structure readable.
> >
> > Changes in v3:
> > - Split the VC4 and PiSP tuning files into separate patches to keep the
> > mailing list message bodies smaller.
> >
> > Changes in v2:
> > - Add Raspberry Pi VC4 and PiSP IPA tuning files for OV9782.
> > - Install the new tuning files through the corresponding Meson data
> > file lists.
> >
> > Mathias (4):
> > libcamera: camera_sensor_properties: Add OV9782
> > ipa: rpi: cam_helper: Register OV9782
> > ipa: rpi: Add OV9782 VC4 tuning file
> > ipa: rpi: Add OV9782 PiSP tuning file
> >
> > src/ipa/rpi/cam_helper/cam_helper_ov9281.cpp | 1 +
> > src/ipa/rpi/pisp/data/http://meson.build | 1 +
> > src/ipa/rpi/pisp/data/ov9782.json | 1253 +++++++++++++++++
> > src/ipa/rpi/vc4/data/http://meson.build | 1 +
> > src/ipa/rpi/vc4/data/ov9782.json | 525 +++++++
> > .../sensor/camera_sensor_properties.cpp | 11 +
> > 6 files changed, 1792 insertions(+)
> > create mode 100644 src/ipa/rpi/pisp/data/ov9782.json
> > create mode 100644 src/ipa/rpi/vc4/data/ov9782.json
> >
> > --
> > 2.53.0

>
Dave Stevenson May 6, 2026, 10:54 a.m. UTC | #3
Hi Mathias

On Tue, 5 May 2026 at 19:37, Mathias Petersen <mathias@pepservices.com> wrote:
>
> Hi Dave,
>
> I have not sent the kernel module to the linux-media mailing list. I apologize if I have done this a bit out of order, I am still trying to find my way around the correct order of operations here. I am also just generally new to mailing lists.

No problem. I'm not that involved in the image processing side of
libcamera, but tend to look after sensor drivers on the Pi so have an
interest from that side.

Comparing the specs of OV9782 vs OV9282, is OV9782 just the colour
version of OV9282? In which case can they share a driver by adding a
new compatible that advertises colour formats? I can't find a
datasheet for OV9782 to check.

> Not sure what you might consider a commercial supplier and what exactly qualifies but I did find these:
>
> https://shop.luxonis.com/products/oak-ffc-ov9782-w?srsltid=AfmBOorGnjiBYlskaGdHW1IYC5Ujc1eg9yQkbJ9aMIbcuZj3UJ2aalcb
>
> https://www.amazon.ca/Arducam-Shutter-Distortion-Without-Microphones/dp/B0CLXZ29F9

The second one is over USB, so is of no interest.
The M12 mount standard FOV combination from Luxonis is another Arducam
module, and is using a 22pin connector so probably follows the same
standard as Compute Modules and the Pi5. I will look into placing an
order.

> Luxonis is over the CSI connector so I assume that is what would qualify. I would link my own product I am using the sensor in but i dont think it qualifies for what you are looking for. I can make a send out a custom module if their prices are too steep or some sort of incompatibility with raspberry pi hardware as I dont see a pin out provided for the connector.
>
> Im still trying to get a grasp on everything so any information would be great, I also have the dtoverlay for this sensor if you can help point me in the right directions that would be great.

dtoverlays for the Pi live in our downstream (vendor) kernel tree. If
the driver is submitted upstream, then open a PR at
https://github.com/raspberrypi/linux/pulls with your dtoverlay and
we'll review it.

Thanks.
  Dave

> Regards,
> Mathias Petersen
>
> "Dave Stevenson" dave.stevenson@raspberrypi.com – May 5, 2026 3:59 AM
> > Hi Mathias
> >
> > On Mon, 4 May 2026 at 23:41, Mathias <mathias@pepservices.com> wrote:
> > >
> > > Add support for the OmniVision OV9782 sensor in libcamera.
> > >
> > > The series adds static sensor properties, registers OV9782 with the
> > > Raspberry Pi OV9281 camera helper, and installs OV9782 tuning files for
> > > both the Raspberry Pi VC4 and PiSP IPA pipelines.
> >
> > Has a driver for OV9782 been sent to the linux-media mailing list? I
> > can't find one in the archives, and AIUI that's a prerequisite for
> > merging sensor support to libcamera.
> >
> > Also is there a commercial supplier for this module? I like to keep
> > samples of as many sensors supported on the Pi as possible so that we
> > can investigate any reported regressions.
> >
> > Thanks.
> > Dave
> >
> > > Changes in v4:
> > > - Condense scalar tuning tables to reduce the patch body size while
> > > keeping the JSON structure readable.
> > >
> > > Changes in v3:
> > > - Split the VC4 and PiSP tuning files into separate patches to keep the
> > > mailing list message bodies smaller.
> > >
> > > Changes in v2:
> > > - Add Raspberry Pi VC4 and PiSP IPA tuning files for OV9782.
> > > - Install the new tuning files through the corresponding Meson data
> > > file lists.
> > >
> > > Mathias (4):
> > > libcamera: camera_sensor_properties: Add OV9782
> > > ipa: rpi: cam_helper: Register OV9782
> > > ipa: rpi: Add OV9782 VC4 tuning file
> > > ipa: rpi: Add OV9782 PiSP tuning file
> > >
> > > src/ipa/rpi/cam_helper/cam_helper_ov9281.cpp | 1 +
> > > src/ipa/rpi/pisp/data/http://meson.build | 1 +
> > > src/ipa/rpi/pisp/data/ov9782.json | 1253 +++++++++++++++++
> > > src/ipa/rpi/vc4/data/http://meson.build | 1 +
> > > src/ipa/rpi/vc4/data/ov9782.json | 525 +++++++
> > > .../sensor/camera_sensor_properties.cpp | 11 +
> > > 6 files changed, 1792 insertions(+)
> > > create mode 100644 src/ipa/rpi/pisp/data/ov9782.json
> > > create mode 100644 src/ipa/rpi/vc4/data/ov9782.json
> > >
> > > --
> > > 2.53.0
> >
> >
Jacopo Mondi May 7, 2026, 7:10 a.m. UTC | #4
Hi Mathias, Dave

On Wed, May 06, 2026 at 11:54:02AM +0100, Dave Stevenson wrote:
> Hi Mathias
>
> On Tue, 5 May 2026 at 19:37, Mathias Petersen <mathias@pepservices.com> wrote:
> >
> > Hi Dave,
> >
> > I have not sent the kernel module to the linux-media mailing list. I apologize if I have done this a bit out of order, I am still trying to find my way around the correct order of operations here. I am also just generally new to mailing lists.

It's not about mailing lists usage, it's a rule we enforce on
libcamera side as we don't want to support sensors for which the
driver is not public.

As Dave correctly pointed out, we can consider these patches only if
there's a submission of the driver code for this sensor. The driver
doesn't need to be merged in mainline Linux, but the code has to be
sent to the public linux-media mailing list.

Now, the ordering requirement might not be that strict if we're
confident enough the submitter is currently in the process of sending
the driver code to linux-media. Do you have a plan/time frame for that ?

>
> No problem. I'm not that involved in the image processing side of
> libcamera, but tend to look after sensor drivers on the Pi so have an
> interest from that side.
>
> Comparing the specs of OV9782 vs OV9282, is OV9782 just the colour
> version of OV9282? In which case can they share a driver by adding a
> new compatible that advertises colour formats? I can't find a
> datasheet for OV9782 to check.
>
> > Not sure what you might consider a commercial supplier and what exactly qualifies but I did find these:
> >
> > https://shop.luxonis.com/products/oak-ffc-ov9782-w?srsltid=AfmBOorGnjiBYlskaGdHW1IYC5Ujc1eg9yQkbJ9aMIbcuZj3UJ2aalcb
> >
> > https://www.amazon.ca/Arducam-Shutter-Distortion-Without-Microphones/dp/B0CLXZ29F9
>
> The second one is over USB, so is of no interest.
> The M12 mount standard FOV combination from Luxonis is another Arducam
> module, and is using a 22pin connector so probably follows the same
> standard as Compute Modules and the Pi5. I will look into placing an
> order.
>
> > Luxonis is over the CSI connector so I assume that is what would qualify. I would link my own product I am using the sensor in but i dont think it qualifies for what you are looking for. I can make a send out a custom module if their prices are too steep or some sort of incompatibility with raspberry pi hardware as I dont see a pin out provided for the connector.
> >
> > Im still trying to get a grasp on everything so any information would be great, I also have the dtoverlay for this sensor if you can help point me in the right directions that would be great.
>
> dtoverlays for the Pi live in our downstream (vendor) kernel tree. If
> the driver is submitted upstream, then open a PR at
> https://github.com/raspberrypi/linux/pulls with your dtoverlay and
> we'll review it.
>
> Thanks.
>   Dave
>
> > Regards,
> > Mathias Petersen
> >
> > "Dave Stevenson" dave.stevenson@raspberrypi.com – May 5, 2026 3:59 AM
> > > Hi Mathias
> > >
> > > On Mon, 4 May 2026 at 23:41, Mathias <mathias@pepservices.com> wrote:
> > > >
> > > > Add support for the OmniVision OV9782 sensor in libcamera.
> > > >
> > > > The series adds static sensor properties, registers OV9782 with the
> > > > Raspberry Pi OV9281 camera helper, and installs OV9782 tuning files for
> > > > both the Raspberry Pi VC4 and PiSP IPA pipelines.
> > >
> > > Has a driver for OV9782 been sent to the linux-media mailing list? I
> > > can't find one in the archives, and AIUI that's a prerequisite for
> > > merging sensor support to libcamera.
> > >
> > > Also is there a commercial supplier for this module? I like to keep
> > > samples of as many sensors supported on the Pi as possible so that we
> > > can investigate any reported regressions.
> > >
> > > Thanks.
> > > Dave
> > >
> > > > Changes in v4:
> > > > - Condense scalar tuning tables to reduce the patch body size while
> > > > keeping the JSON structure readable.
> > > >
> > > > Changes in v3:
> > > > - Split the VC4 and PiSP tuning files into separate patches to keep the
> > > > mailing list message bodies smaller.
> > > >
> > > > Changes in v2:
> > > > - Add Raspberry Pi VC4 and PiSP IPA tuning files for OV9782.
> > > > - Install the new tuning files through the corresponding Meson data
> > > > file lists.
> > > >
> > > > Mathias (4):
> > > > libcamera: camera_sensor_properties: Add OV9782
> > > > ipa: rpi: cam_helper: Register OV9782
> > > > ipa: rpi: Add OV9782 VC4 tuning file
> > > > ipa: rpi: Add OV9782 PiSP tuning file
> > > >
> > > > src/ipa/rpi/cam_helper/cam_helper_ov9281.cpp | 1 +
> > > > src/ipa/rpi/pisp/data/http://meson.build | 1 +
> > > > src/ipa/rpi/pisp/data/ov9782.json | 1253 +++++++++++++++++
> > > > src/ipa/rpi/vc4/data/http://meson.build | 1 +
> > > > src/ipa/rpi/vc4/data/ov9782.json | 525 +++++++
> > > > .../sensor/camera_sensor_properties.cpp | 11 +
> > > > 6 files changed, 1792 insertions(+)
> > > > create mode 100644 src/ipa/rpi/pisp/data/ov9782.json
> > > > create mode 100644 src/ipa/rpi/vc4/data/ov9782.json
> > > >
> > > > --
> > > > 2.53.0
> > >
> > >