diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp
index dcd69d9f2bbb39feabfefe41cee8b45f0f958127..df93c0fdeb9c5ae2c3e3dc51dabc62ba4082c0d7 100644
--- a/src/ipa/libipa/camera_sensor_helper.cpp
+++ b/src/ipa/libipa/camera_sensor_helper.cpp
@@ -497,6 +497,16 @@ public:
 };
 REGISTER_CAMERA_SENSOR_HELPER("gc08a3", CameraSensorHelperGc08a3)
 
+class CameraSensorHelperHm1246 : public CameraSensorHelper
+{
+public:
+	CameraSensorHelperHm1246()
+	{
+		gain_ = AnalogueGainLinear{ 1, 16, 0, 16 };
+	}
+};
+REGISTER_CAMERA_SENSOR_HELPER("hm1246", CameraSensorHelperHm1246)
+
 class CameraSensorHelperImx214 : public CameraSensorHelper
 {
 public:
diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp
index f2da8205372baabca58416e2c0f9da64e722fe02..810f0199d41f0582e120687b304c3ff549a19bc8 100644
--- a/src/libcamera/sensor/camera_sensor_properties.cpp
+++ b/src/libcamera/sensor/camera_sensor_properties.cpp
@@ -151,6 +151,38 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
 			},
 			.sensorDelays = { },
 		} },
+		{ "hm1246", {
+			.unitCellSize = { 3000, 3000 },
+			.testPatternModes =  {
+				{ controls::draft::TestPatternModeOff, 0 },
+				/* Solid white. */
+				{ controls::draft::TestPatternModeSolidColor, 6 },
+				/* The six vertical bars (left-to-right) are as follows: black,
+				 * blue, red, magenta, green and cyan.
+				 */
+				{ controls::draft::TestPatternModeCustom1, 5 },
+				/*
+				 * No corresponding test pattern mode for:
+				 *  1: "Checkboard"
+				 *  2: "Ramp"
+				 *  3: "Moving ones"
+				 *  4: "Blending color bars"
+				 *  7: "Solid black"
+				 *  8: "Solid red"
+				 *  9: "Solid green"
+				 * 10: "Solid blue"
+				 *
+				 * Even though the sensor supports color bars and faded color bars as test patterns, these are
+				 * not offered because these patterns do not meet the expected properties.
+				 */
+			},
+			.sensorDelays = {
+				.exposureDelay = 2,
+				.gainDelay = 2,
+				.vblankDelay = 2,
+				.hblankDelay = 2
+			},
+		} },
 		{ "imx214", {
 			.unitCellSize = { 1120, 1120 },
 			.testPatternModes = {
