<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Thank you Dave! This sounds good. Likely we will have some (hardware) things to support the persuation ;)<div class=""><br class=""><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">Am 24.02.2022 um 17:45 schrieb Dave Stevenson <<a href="mailto:dave.stevenson@raspberrypi.com" class="">dave.stevenson@raspberrypi.com</a>>:</div><br class="Apple-interchange-newline"><div class=""><div class="">On Thu, 24 Feb 2022 at 15:28, Laurent Pinchart<br class=""><<a href="mailto:laurent.pinchart@ideasonboard.com" class="">laurent.pinchart@ideasonboard.com</a>> wrote:<br class=""><blockquote type="cite" class=""><br class="">On Thu, Feb 24, 2022 at 04:22:15PM +0100, Guido Körber wrote:<br class=""><blockquote type="cite" class="">Hi Laurent,<br class=""><br class="">can’t check that at the moment but will do.<br class=""><br class="">The camera supposedly contains an Omnivision OV2740 sensor.<br class=""></blockquote><br class="">You're lucky,<br class=""><br class=""><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/media/i2c/ov2740.c" class="">https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/media/i2c/ov2740.c</a><br class=""><br class=""><blockquote type="cite" class="">I was hoping that we would only need to tell some existing driver to<br class="">use this camera.<br class=""></blockquote><br class="">After a quick look at the driver, it seems you will only have to<br class="">implement support for the V4L2_CID_ANALOG_GAIN control, and for the crop<br class="">selection targets mentioned in the libcamera documentation.<br class=""></blockquote><br class="">Analogue gain appears to be there already -<br class=""><a href="https://elixir.bootlin.com/linux/v5.16.11/source/drivers/media/i2c/ov2740.c#L590" class="">https://elixir.bootlin.com/linux/v5.16.11/source/drivers/media/i2c/ov2740.c#L590</a><br class=""><br class="">It appears that the driver doesn't support Device Tree, only ACPI.<br class="">It'll need a struct of_device_id defining and referenced from<br class="">ov2740_i2c_driver.<br class=""><br class="">If you're really stuck then doing the basic work should only take one<br class="">of us about 15 minutes, so you may persuade us to do it for you. It<br class="">does rely on you having the same external clock feeding the sensor as<br class="">the driver is expecting (19.2MHz).<br class=""><br class="">  Dave<br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><blockquote type="cite" class="">Am 24.02.2022 um 16:12 schrieb Laurent Pinchart:<br class="">On Thu, Feb 24, 2022 at 04:02:58PM +0100, Guido Körber wrote:<br class=""><blockquote type="cite" class="">We can see a device on the I2C. (Took a bit more testing to get the<br class="">hardware to really respond…)<br class=""><br class="">So will we need a specific kernel driver for that camera, or is there<br class="">some way to handle it via a generic driver?<br class=""></blockquote><br class="">It needs a kernel driver. Have you checked in drivers/media/i2c/ (in the<br class="">kernel) if the sensor you're using is already supported ? If so, some<br class="">work may still be needed to support all the features required by<br class="">libcamera (see Documentation/sensor_driver_requirements.rst), but it<br class="">would be much easier than writing a new driver from scratch.<br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">Am 17.02.2022 um 17:43 schrieb Laurent Pinchart:<br class="">On Thu, Feb 17, 2022 at 05:00:23PM +0100, Guido Körber wrote:<br class=""><blockquote type="cite" class="">Is there a simple way to check if the hardware is present even if<br class="">the camera is not detected by software?<br class=""><br class="">I have set up a prototype with a hand soldered connector and would<br class="">like to know if I did all the wiring correct.<br class=""></blockquote><br class="">You can use i2cdetect and i2cget ([1]) to talk to the sensor. You may<br class="">need to first enable power by toggling the corresponding GPIO, which can<br class="">also be done from userspace ([2]). Checking video transmission is more<br class="">difficult, you will need to get at least the kernel driver for the<br class="">sensor and Unicam up and running.<br class=""><br class="">[1] https://manpages.debian.org/unstable/i2c-tools/i2cdetect.8.en.html<br class="">[2] https://manpages.debian.org/experimental/gpiod/gpioset.1.en.html<br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">Am 17.02.2022 um 14:09 schrieb Kieran Bingham:<br class="">Quoting Guido Körber (2022-02-17 13:04:18)<br class=""><blockquote type="cite" class=""><br class="">I want to use libcamera on Raspberry with a camera that is not<br class="">explicitly supported by libcamera but does generic CSI-2. Will this<br class="">work, or do I need a camera specific plugin or something else?<br class=""></blockquote><br class="">You will likely need to make sure you have a relevant kernel driver, and<br class="">may likely need to do some updates to libcamera, to manage the<br class="">CameraSensorHelper classes.<br class=""><br class="">You might also then want to follow the Raspberry Pi ISP tuning<br class="">procedures.<br class=""><br class="">https://datasheets.raspberrypi.com/camera/raspberry-pi-camera-guide.pdf<br class=""><br class="">But yes, you should be able to get it to work.<br class=""></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote><br class="">--<br class="">Regards,<br class=""><br class="">Laurent Pinchart<br class=""></blockquote></div></div></blockquote></div><br class=""><div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-position: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-position: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-stroke-width: 0px;"><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; line-height: normal; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-east-asian: normal; font-variant-position: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-stroke-width: 0px;">--------------------------------------<br class="">Code Mercenaries<br class="">Hard- und Software GmbH<br class="">Karl-Marx-Str. 147a<br class="">12529 Schönefeld OT Grossziethen<br class="">Germany<br class=""><br class="">Tel: x49-3379-2050920<br class=""><br class="">HRB 9868 CB<br class="">Geschäftsführer: Guido Körber, Christian Lucht<br class="">WEEE: DE 51974060<br class=""><br class="">Did you subscribe to our Newsletter?<br class="">Visit our website and click on "Newsletter"<br class=""><br class="">Check out: <a href="http://www.codemercs.com" class="">www.codemercs.com</a></span></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; line-height: normal; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""></div><br class=""></span></div></div><br class="Apple-interchange-newline">
</div>
<br class=""></div></div></body></html>