[v2,5/5] libcamera: sensor: Add Mira220 sensor properties
diff mbox series

Message ID 20260724-mira220-v2-5-240003749dd0@ideasonboard.com
State Changes Requested
Headers show
Series
  • ipa: rpi: Add support for Mira220 RGB version
Related show

Commit Message

Jacopo Mondi July 24, 2026, 3:47 p.m. UTC
Add sensor properties for the AMS-OSRAM Mira220 camera sensor.

The sensor has a 1 frame delay for exposure.
The vblank delay is not characterized in the datasheet.

Hblank and analogue gain are fixed and not programmable, so fix their
delays to 1.

Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
---
 src/libcamera/sensor/camera_sensor_properties.cpp | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

Comments

Kieran Bingham July 24, 2026, 4 p.m. UTC | #1
Quoting Jacopo Mondi (2026-07-24 16:47:44)
> Add sensor properties for the AMS-OSRAM Mira220 camera sensor.
> 
> The sensor has a 1 frame delay for exposure.
> The vblank delay is not characterized in the datasheet.
> 
> Hblank and analogue gain are fixed and not programmable, so fix their
> delays to 1.
> 
> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> ---
>  src/libcamera/sensor/camera_sensor_properties.cpp | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp
> index 28043150e2cb..30755608870c 100644
> --- a/src/libcamera/sensor/camera_sensor_properties.cpp
> +++ b/src/libcamera/sensor/camera_sensor_properties.cpp
> @@ -335,6 +335,20 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
>                                 .hblankDelay = 3
>                         },
>                 } },
> +               { "mira220", {
> +                       .unitCellSize = { 2790, 2790 },
> +                       .testPatternModes = {
> +                               { controls::draft::TestPatternModeOff, 0 },
> +                               { controls::draft::TestPatternModeColorBars, 1 },
> +                       },
> +                       .sensorDelays = {
> +                               .exposureDelay = 1,
> +                               .vblankDelay = 1,
> +                               /* Gain and hblank are read-only. */
> +                               .gainDelay = 1,
> +                               .hblankDelay = 1
> +                       },
> +               } },
>                 { "ov2685", {
>                         .unitCellSize = { 1750, 1750 },
>                         .testPatternModes = {
> 
> -- 
> 2.54.0
>
Laurent Pinchart July 31, 2026, 10:43 a.m. UTC | #2
On Fri, Jul 24, 2026 at 05:47:44PM +0200, Jacopo Mondi wrote:
> Add sensor properties for the AMS-OSRAM Mira220 camera sensor.
> 
> The sensor has a 1 frame delay for exposure.
> The vblank delay is not characterized in the datasheet.
> 
> Hblank and analogue gain are fixed and not programmable, so fix their
> delays to 1.
> 
> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
> ---
>  src/libcamera/sensor/camera_sensor_properties.cpp | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp
> index 28043150e2cb..30755608870c 100644
> --- a/src/libcamera/sensor/camera_sensor_properties.cpp
> +++ b/src/libcamera/sensor/camera_sensor_properties.cpp
> @@ -335,6 +335,20 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
>  				.hblankDelay = 3
>  			},
>  		} },
> +		{ "mira220", {
> +			.unitCellSize = { 2790, 2790 },
> +			.testPatternModes = {
> +				{ controls::draft::TestPatternModeOff, 0 },
> +				{ controls::draft::TestPatternModeColorBars, 1 },
> +			},
> +			.sensorDelays = {
> +				.exposureDelay = 1,
> +				.vblankDelay = 1,
> +				/* Gain and hblank are read-only. */
> +				.gainDelay = 1,
> +				.hblankDelay = 1

Will something bad happen if we leave those out instead of picking an
arbitrary value ?

> +			},
> +		} },
>  		{ "ov2685", {
>  			.unitCellSize = { 1750, 1750 },
>  			.testPatternModes = {
Jacopo Mondi July 31, 2026, 12:01 p.m. UTC | #3
Hi Laurent

On Fri, Jul 31, 2026 at 01:43:05PM +0300, Laurent Pinchart wrote:
> On Fri, Jul 24, 2026 at 05:47:44PM +0200, Jacopo Mondi wrote:
> > Add sensor properties for the AMS-OSRAM Mira220 camera sensor.
> >
> > The sensor has a 1 frame delay for exposure.
> > The vblank delay is not characterized in the datasheet.
> >
> > Hblank and analogue gain are fixed and not programmable, so fix their
> > delays to 1.
> >
> > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
> > ---
> >  src/libcamera/sensor/camera_sensor_properties.cpp | 14 ++++++++++++++
> >  1 file changed, 14 insertions(+)
> >
> > diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp
> > index 28043150e2cb..30755608870c 100644
> > --- a/src/libcamera/sensor/camera_sensor_properties.cpp
> > +++ b/src/libcamera/sensor/camera_sensor_properties.cpp
> > @@ -335,6 +335,20 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
> >  				.hblankDelay = 3
> >  			},
> >  		} },
> > +		{ "mira220", {
> > +			.unitCellSize = { 2790, 2790 },
> > +			.testPatternModes = {
> > +				{ controls::draft::TestPatternModeOff, 0 },
> > +				{ controls::draft::TestPatternModeColorBars, 1 },
> > +			},
> > +			.sensorDelays = {
> > +				.exposureDelay = 1,
> > +				.vblankDelay = 1,
> > +				/* Gain and hblank are read-only. */
> > +				.gainDelay = 1,
> > +				.hblankDelay = 1
>
> Will something bad happen if we leave those out instead of picking an
> arbitrary value ?

Probably not.

I'll leave them out if that's preferred.

Thanks
  j

>
> > +			},
> > +		} },
> >  		{ "ov2685", {
> >  			.unitCellSize = { 1750, 1750 },
> >  			.testPatternModes = {
>
> --
> Regards,
>
> Laurent Pinchart
Jacopo Mondi Aug. 25, 2026, 4:44 p.m. UTC | #4
I have to correct myself

On Fri, Jul 31, 2026 at 02:01:11PM +0200, Jacopo Mondi wrote:
> Hi Laurent
>
> On Fri, Jul 31, 2026 at 01:43:05PM +0300, Laurent Pinchart wrote:
> > On Fri, Jul 24, 2026 at 05:47:44PM +0200, Jacopo Mondi wrote:
> > > Add sensor properties for the AMS-OSRAM Mira220 camera sensor.
> > >
> > > The sensor has a 1 frame delay for exposure.
> > > The vblank delay is not characterized in the datasheet.
> > >
> > > Hblank and analogue gain are fixed and not programmable, so fix their
> > > delays to 1.
> > >
> > > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
> > > ---
> > >  src/libcamera/sensor/camera_sensor_properties.cpp | 14 ++++++++++++++
> > >  1 file changed, 14 insertions(+)
> > >
> > > diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp
> > > index 28043150e2cb..30755608870c 100644
> > > --- a/src/libcamera/sensor/camera_sensor_properties.cpp
> > > +++ b/src/libcamera/sensor/camera_sensor_properties.cpp
> > > @@ -335,6 +335,20 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
> > >  				.hblankDelay = 3
> > >  			},
> > >  		} },
> > > +		{ "mira220", {
> > > +			.unitCellSize = { 2790, 2790 },
> > > +			.testPatternModes = {
> > > +				{ controls::draft::TestPatternModeOff, 0 },
> > > +				{ controls::draft::TestPatternModeColorBars, 1 },
> > > +			},
> > > +			.sensorDelays = {
> > > +				.exposureDelay = 1,
> > > +				.vblankDelay = 1,
> > > +				/* Gain and hblank are read-only. */
> > > +				.gainDelay = 1,
> > > +				.hblankDelay = 1
> >
> > Will something bad happen if we leave those out instead of picking an
> > arbitrary value ?
>
> Probably not.
>
> I'll leave them out if that's preferred.

The default delay for exposure is 2, while Mira220 has a 1 frame
delay.

>
> Thanks
>   j
>
> >
> > > +			},
> > > +		} },
> > >  		{ "ov2685", {
> > >  			.unitCellSize = { 1750, 1750 },
> > >  			.testPatternModes = {
> >
> > --
> > Regards,
> >
> > Laurent Pinchart
Laurent Pinchart Aug. 27, 2026, 8:30 a.m. UTC | #5
On Tue, Aug 25, 2026 at 06:44:14PM +0200, Jacopo Mondi wrote:
> I have to correct myself
> 
> On Fri, Jul 31, 2026 at 02:01:11PM +0200, Jacopo Mondi wrote:
> > On Fri, Jul 31, 2026 at 01:43:05PM +0300, Laurent Pinchart wrote:
> > > On Fri, Jul 24, 2026 at 05:47:44PM +0200, Jacopo Mondi wrote:
> > > > Add sensor properties for the AMS-OSRAM Mira220 camera sensor.
> > > >
> > > > The sensor has a 1 frame delay for exposure.
> > > > The vblank delay is not characterized in the datasheet.
> > > >
> > > > Hblank and analogue gain are fixed and not programmable, so fix their
> > > > delays to 1.
> > > >
> > > > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
> > > > ---
> > > >  src/libcamera/sensor/camera_sensor_properties.cpp | 14 ++++++++++++++
> > > >  1 file changed, 14 insertions(+)
> > > >
> > > > diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp
> > > > index 28043150e2cb..30755608870c 100644
> > > > --- a/src/libcamera/sensor/camera_sensor_properties.cpp
> > > > +++ b/src/libcamera/sensor/camera_sensor_properties.cpp
> > > > @@ -335,6 +335,20 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
> > > >  				.hblankDelay = 3
> > > >  			},
> > > >  		} },
> > > > +		{ "mira220", {
> > > > +			.unitCellSize = { 2790, 2790 },
> > > > +			.testPatternModes = {
> > > > +				{ controls::draft::TestPatternModeOff, 0 },
> > > > +				{ controls::draft::TestPatternModeColorBars, 1 },
> > > > +			},
> > > > +			.sensorDelays = {
> > > > +				.exposureDelay = 1,
> > > > +				.vblankDelay = 1,
> > > > +				/* Gain and hblank are read-only. */
> > > > +				.gainDelay = 1,
> > > > +				.hblankDelay = 1
> > >
> > > Will something bad happen if we leave those out instead of picking an
> > > arbitrary value ?
> >
> > Probably not.
> >
> > I'll leave them out if that's preferred.
> 
> The default delay for exposure is 2, while Mira220 has a 1 frame
> delay.

I meant leaving only gainDelay and hblankDelay out, not exposureDelay
and vblankDelay.

> > > > +			},
> > > > +		} },
> > > >  		{ "ov2685", {
> > > >  			.unitCellSize = { 1750, 1750 },
> > > >  			.testPatternModes = {

Patch
diff mbox series

diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp
index 28043150e2cb..30755608870c 100644
--- a/src/libcamera/sensor/camera_sensor_properties.cpp
+++ b/src/libcamera/sensor/camera_sensor_properties.cpp
@@ -335,6 +335,20 @@  const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
 				.hblankDelay = 3
 			},
 		} },
+		{ "mira220", {
+			.unitCellSize = { 2790, 2790 },
+			.testPatternModes = {
+				{ controls::draft::TestPatternModeOff, 0 },
+				{ controls::draft::TestPatternModeColorBars, 1 },
+			},
+			.sensorDelays = {
+				.exposureDelay = 1,
+				.vblankDelay = 1,
+				/* Gain and hblank are read-only. */
+				.gainDelay = 1,
+				.hblankDelay = 1
+			},
+		} },
 		{ "ov2685", {
 			.unitCellSize = { 1750, 1750 },
 			.testPatternModes = {