# Did anyone get a camera working?

**URL:** <https://forum.clockworkpi.com/t/did-anyone-get-a-camera-working/16900>\
**Category:** DevTerm\
**Created:** [April 20, 2025, 12:54am UTC](https://forum.clockworkpi.com/t/did-anyone-get-a-camera-working/16900 "2025-04-20T00:54:19Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![andypiper](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/andypiper/32/7970_2.png) [@andypiper](https://forum.clockworkpi.com/u/andypiper)\
**Post date:** [April 20, 2025, 12:54am UTC](https://forum.clockworkpi.com/t/did-anyone-get-a-camera-working/16900/1 "2025-04-20T00:54:19Z")

</div>

Curious about the MIPI-CSI connector on the default EXT board. I’ve done some searching here, Reddit etc - did anyone successfully connect a camera module via this connector?

---

<div class="post-metadata">

**Author:** ![fip](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/fip/32/6958_2.png) [@fip](https://forum.clockworkpi.com/u/fip)\
**Post date:** [April 20, 2025, 2:25am UTC](https://forum.clockworkpi.com/t/did-anyone-get-a-camera-working/16900/2 "2025-04-20T02:25:27Z")

</div>

I had tried to connect a Raspberry Pi Zero camera via mine and yatli’s (forgot to credit the MVP 🙂 ) cartridge system but I failed miserably at the device tree.  
I did get a few more video devices, but they all didn’t play well with V4L.  
Signal integrity through the connector could also have been an issue.  
I did however match the impedance of the differential lines as well as I could.

Here’s the dts for anyone interested.

> **DTS for camera**
>
> ```auto
> /dts-v1/;
> /plugin/;
> 
> #include <dt-bindings/clock/rk3399-cru.h>
> #include <dt-bindings/interrupt-controller/arm-gic.h>
> #include <dt-bindings/power/rk3399-power.h>
> 
> /{
> /*compatible = "brcm,bcm2835";*/
> compatible = "rockchip,rk3399";
> 
> fragment@0 {
> target-path = "/";
> __overlay__ {
> isp0: isp0@ff910000 {
> compatible = "rockchip,rk3399-cif-isp";
> reg = <0x0 0xff910000 0x0 0x4000>;
> interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
> clocks = <&cru SCLK_ISP0>,
> <&cru ACLK_ISP0>, <&cru ACLK_ISP0_WRAPPER>,
> <&cru HCLK_ISP0>, <&cru HCLK_ISP0_WRAPPER>;
> clock-names = "clk_isp",
> "aclk_isp", "aclk_isp_wrap",
> "hclk_isp", "hclk_isp_wrap";
> power-domains = <&power RK3399_PD_ISP0>;
> iommus = <&isp0_mmu>;
> status = "okay";
> 
> port {
> #address-cells = <1>;
> #size-cells = <0>;
> 
> /* mipi */
> isp0_mipi_in: endpoint@0 {
> reg = <0>;
> data-lanes = <1 2>;
> remote-endpoint = <&dphy_rx0_out>;
> };
> };
> };
> };
> };
> 
> fragment@2 {
> target = <&isp0_mmu>;
> __overlay__ {
> status = "okay";
> };
> };
> 
> fragment@10 {
> target = <&i2c2>;
> __overlay__ {
> #address-cells = <1>;
> #size-cells = <0>;
> 		
> status = "okay";
> ov5647: ov5647@36 {
> compatible = "ovti,ov5647";
> reg = <0x36>;
> status = "okay";
> 
> pwdn-gpios = <&gpio0 29 1>, <&gpio0 28 1>;
> /*clocks = <&ext_cam_clk>;*/
> /*clocks = <&cru SCLK_TESTCLKOUT1>;*/
> /*assigned-clock-rates = <25000000>;*/
> clocks = <&cru SCLK_CIF_OUT>;
> clock-names = "xvclk";
> assigned-clocks = <&cru SCLK_CIF_OUT>;
> assigned-clock-rates = <25000000>;
> 
> rotation = <0>;
> 
> port {
> cam_out: endpoint {
> remote-endpoint = <&csi1_ep>;
> clock-lanes = <0>;
> data-lanes = <1 2>;
> clock-noncontinuous;
> link-frequencies =
> /bits/ 64 <297000000>;
> };
> };
> };
> };
> };
> 
> fragment@3 {
> target = <&mipi_dphy_rx0>;
> __overlay__ {
> compatible = "rockchip,rk3399-mipi-dphy-rx0";
> clocks = <&cru SCLK_MIPIDPHY_REF>,
> <&cru SCLK_DPHY_RX0_CFG>,
> <&cru PCLK_VIO_GRF>;
> clock-names = "dphy-ref", "dphy-cfg", "grf";
> power-domains = <&power RK3399_PD_VIO>;
> #phy-cells = <0>;
> status = "okay";
> 
> ports {
> #address-cells = <1>;
> #size-cells = <0>;
> 
> port@0 {
> #address-cells = <1>;
> #size-cells = <0>;
> reg = <0>;
> 					
> csi1_ep: endpoint@0 {
> #address-cells = <1>;
> #size-cells = <0>;
> reg = <0>;
> remote-endpoint = <&cam_out>;
> clock-lanes = <0>;
> data-lanes = <1 2>;
> };
> };
> 				
> port@1 {
> reg = <1>;
> 
> dphy_rx0_out: endpoint {
> data-lanes = <1 2>;
> remote-endpoint = <&isp0_mipi_in>;
> };
> };
> };
> };
> };	
> 
> __overrides__ {
> rotation = <&ov5647>,"rotation:0";
> };
> };
> 
> ```
