| Message ID | 20260808125915.974559-1-john.cronin@opcenter.com |
|---|---|
| Headers | show
Return-Path: <libcamera-devel-bounces@lists.libcamera.org> X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 6216EC3303 for <parsemail@patchwork.libcamera.org>; Sat, 8 Aug 2026 12:59:42 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 01BAF68182; Sat, 8 Aug 2026 14:59:41 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=stromback-com.20251104.gappssmtp.com header.i=@stromback-com.20251104.gappssmtp.com header.b="sVNIpphe"; dkim-atps=neutral Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id C0AB567FF4 for <libcamera-devel@lists.libcamera.org>; Sat, 8 Aug 2026 14:59:38 +0200 (CEST) Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-47f59f25ec4so107531f8f.2 for <libcamera-devel@lists.libcamera.org>; Sat, 08 Aug 2026 05:59:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stromback-com.20251104.gappssmtp.com; s=20251104; t=1786193978; x=1786798778; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=9ZSxO9OWCDpeUPtH2nlhOz8Xj2qeU6NNuuDnUG3ulwU=; b=sVNIppheNydEAlTSX6omanqQV0zzQdnOC6lp3mymKNTixjXUBgcDw6llfzDzKbiCM/ gLGf/PqmH3V1SakzQ6Sr9xTZIGB93qy/sVFWK84yiZcPxCLcbMCw+ZI18uADJqDBtrOh XDzD/aqe6ZtsGAWxLeKuPW6qNYhO0Xq8/X7mSeIWkpgcYVxL4lA1LXe4Z76qKZp8yAZr DteKXyT0LuqKjriE44EyEoW7QEPC9um1M7wI5RSH6uqvdsYjKwdk7tq0SDGPua7VObxa D45B7hepq8B2+fmgQh3YnYuuYTmXJUC9rZga5e5eUOJI15mbyO4evn630DHEFx/z7RFx VWwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786193978; x=1786798778; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=9ZSxO9OWCDpeUPtH2nlhOz8Xj2qeU6NNuuDnUG3ulwU=; b=naxUn9uMo309nyIDjQ2R/Jl6Qxl2hJ1qffpiPKsLKaklAGwhvTre+1FEoOzdCd/nKz cZoWHFsONHthtfjoRZFyQWZDT/CxToIuoJBVNH3BUZ7hhTE8SGlxidi7C0QS8AWx9viv mrqoHVYzp0zuaeUBz7wPD1ZOCJ/IS0r7tHylB2Y0WA5M1bt8/dO5cDV8Zxvkh0f1zoaq G/O23BzssM+y8c31gvAocLjD0ahAw8wyOnBrq1Pp6lhukWscUSE6e9BbR+gRr6NX+Qmn Nec2AD6m+QpmX/FhTbsgvzhFWmrxE8ijvm25gp2dvEcTQqqwL8fdVO8seDARZNK+9WAW 2z0g== X-Gm-Message-State: AOJu0YxW8NabfCOZy23jSk1mAJSSIUgLqVNmhe0oCd7/8T4DRvk7t1xM Qvru7HMkTSuUFBSJnT7LABsNtx1bi4dkjzoM+DJ+05b15pppAXAK8QLmpf1xnHI2xKm6uro5tAH 7YLbqhnC1XQ== X-Gm-Gg: AR+sD12xOryz5kJR03H53mXvJTptyHMeGE8RWE+9//SRGOXN0C5sCRoCKfXAYoxmkdq IRTLlyEwvGWbIcOiNfyK3TpQ2CgxLyz9XM0O/LYoSqRFctLUZB0YE/hriNupR/IBIlO/eAEwhKq JDqb0fpmqnndTyY2um57XWVWvJ2uWC98+ZnaERNxRAF/o/rrphYOuIh70Q2ZFXbgN9cD4UdeTyT 7GTW+hMiS1EB22ntH14foOcIFfVu49gzALHRJ0NKn8vapQKVe6jcWi8V4b7aaxG/HcW02GGY3Sn OJlwggyYwIUFdrB+TQc2/ItVH5VpS/SMh8XzaSuvn7EmgBg3U7LD+qhDVQ90461OQ025hYVJKhL K4HQtWtLsKUNGNmrkqDH36xYV4VEtdq57OGt3cstd5/DZN485t8uuxgfGFuD5WsnulTfW92DLs1 U8jXZzg3gdjdteYBVZ25QCpbUOnHLouyj1g2h+z6YO8HjmU79lZYxHumWWCvXuTzHR/MRJY0LaV riSELXvfyX5zMtqcD1744QLSS0+2rXtVG4cTSS7unJc/TA/Pw+lvHUZoU0anVl5MD+5UwgxXrk+ qbDdJd9NvMHbDnz3xCkKTnwKrgp6Z3RtE7ZHhhLbriMaDm542XrRpGGG9Qt5ct27Pinh47RF7Ns tpqvoRRn7SpRFst+xnuV+oIXi3Eu06LbYZVFisS8xw9fn2w56JGv1o8DnH7fv81uU+we3DmwSs+ s3c0YyB/ngXEtELKzd23I= X-Received: by 2002:a05:6000:22c9:b0:47f:e7c8:3fe9 with SMTP id ffacd0b85a97d-47ffd15cb0fmr24972679f8f.0.1786193977726; Sat, 08 Aug 2026 05:59:37 -0700 (PDT) Received: from fedora.tail5f8cb3.ts.net (host-79-58-5-82.business.telecomitalia.it. [79.58.5.82]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-480021e7b3fsm16161616f8f.20.2026.08.08.05.59.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Aug 2026 05:59:36 -0700 (PDT) From: John Cronin <john@stromback.com> X-Google-Original-From: John Cronin <john.cronin@opcenter.com> To: libcamera-devel@lists.libcamera.org Cc: jacopo.mondi@ideasonboard.com, John Cronin <john.cronin@opcenter.com> Subject: [PATCH 0/2] CameraSensorHelper measurement tool and guide Date: Sat, 8 Aug 2026 08:59:12 -0400 Message-ID: <20260808125915.974559-1-john.cronin@opcenter.com> X-Mailer: git-send-email 2.55.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <libcamera-devel.lists.libcamera.org> List-Unsubscribe: <https://lists.libcamera.org/options/libcamera-devel>, <mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe> List-Archive: <https://lists.libcamera.org/pipermail/libcamera-devel/> List-Post: <mailto:libcamera-devel@lists.libcamera.org> List-Help: <mailto:libcamera-devel-request@lists.libcamera.org?subject=help> List-Subscribe: <https://lists.libcamera.org/listinfo/libcamera-devel>, <mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe> Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" <libcamera-devel-bounces@lists.libcamera.org> |
| Series |
|
| Related |
show
|
Hi, Following up on the imx471 helper series that Jacopo applied: https://lists.libcamera.org/pipermail/libcamera-devel/2026-August/060718.html Jacopo asked whether the measurement script used for imx471 could live in utils/ with a few lines under Documentation/guides. This series does that in a sensor-agnostic form. This is a clean resend with git-send-email (previous offer was a git-am gist only, because Gmail had mangled format-patch). utils/measure-analogue-gain.py -> installed as libcamera-measure-analogue-gain Documentation/guides/camera-sensor-helper.rst The tool locks exposure (and optional digital gain) via v4l2-ctl, steps V4L2_CID_ANALOGUE_GAIN, captures raw frames with the libcamera cam utility, and reports mean/percentile stats plus a fit of G = k/(k-code). Flags cover width/height/stride/bit-depth and sensor name so other sensors can reuse it. The guide covers helper + properties placement, the measurement procedure, and points at the utility. Tested locally on ThinkPad X9-15 Gen 1 / imx471 (same method as the earlier measurement write-up): https://gist.github.com/johncronin3/15d9eacbf64f91ecc600fe583686325f Happy to rework naming, install path, or docs structure if preferred. Thanks, John Cronin John Cronin (2): utils: Add measure-analogue-gain helper Documentation: Add Camera Sensor Helper guide Documentation/guides/camera-sensor-helper.rst | 146 ++++++ Documentation/index.rst | 1 + Documentation/meson.build | 1 + utils/measure-analogue-gain.py | 466 ++++++++++++++++++ utils/meson.build | 7 + 5 files changed, 621 insertions(+) create mode 100644 Documentation/guides/camera-sensor-helper.rst create mode 100755 utils/measure-analogue-gain.py