Has anyone used ESP32-S3 to capture an external RGB LCD bus passively?

Federal_Fudge
Posts: 2
Joined: Mon Mar 30, 2026 6:01 pm

Has anyone used ESP32-S3 to capture an external RGB LCD bus passively?

Postby Federal_Fudge » Mon Mar 30, 2026 6:06 pm

Hello,

I am working on a low-cost open-source project to passively tap the LCD interface of a Garmin Striker 4.

The panel appears to use a parallel RGB interface with signals such as:

RGB data PCLK HSYNC VSYNC DE

I am not trying to drive a display.
I am not using a normal camera sensor either.

I want to know whether ESP32-S3 can be used as a passive receiver for this kind of external parallel LCD stream.

Questions:

Is this possible at all on ESP32-S3? Is the input realistically limited to 8 or 16 bits? Has anyone tried capturing an external RGB565 or partial RGB888 stream with sync signals? Would ESP32-P4 be a better option for this?

My goal is only a proof of concept, maybe one frame every few seconds.

Thanks.

MicroController
Posts: 2661
Joined: Mon Oct 17, 2022 7:38 pm
Location: Europe, Germany

Re: Has anyone used ESP32-S3 to capture an external RGB LCD bus passively?

Postby MicroController » Tue Mar 31, 2026 9:53 am

The S3's camera interface in "Camera Slave RX Mode" supports DVP input including signals CAM_PCLK, CAM_V_SYNC, CAM_H_SYNC, CAM_H_ENABLE, and 8 or 16 data lines. So this may actually be possible, if the LCD signals' relative timings are somewhat compatible with DVP.

eva_402
Posts: 4
Joined: Fri Mar 13, 2026 10:50 am

Re: Has anyone used ESP32-S3 to capture an external RGB LCD bus passively?

Postby eva_402 » Tue Mar 31, 2026 1:35 pm

I’ve played around with the S3 a bit and honestly it’s pretty tight for something like that, especially trying to passively grab a full RGB stream with sync signals. You might get somewhere with reduced bit depth or really low frame rates, but timing gets tricky fast. The P4 sounds like a better fit if you can wait for it, since it’s more geared toward that kind of data handling.

Federal_Fudge
Posts: 2
Joined: Mon Mar 30, 2026 6:01 pm

Re: Has anyone used ESP32-S3 to capture an external RGB LCD bus passively?

Postby Federal_Fudge » Tue Mar 31, 2026 3:03 pm

Thank you, this is very helpful.

Has anyone actually tried DVP RX mode with an external
LCD RGB source rather than a real camera sensor?
I am specifically looking for experience with LCD panel
timing compatibility vs DVP camera timing expectations.

Project documentation: https://github.com/gstonge1/Concept-scr ... /tree/main

User avatar
ok-home
Posts: 156
Joined: Sun May 02, 2021 7:23 pm
Location: Russia Novosibirsk
Contact:

Re: Has anyone used ESP32-S3 to capture an external RGB LCD bus passively?

Postby ok-home » Tue Apr 07, 2026 2:53 am

Hi
I don't see much difference in the processing of PCLK HSYNC VSYNC DE synchronization signals between a real camera and an LCD.
You'll have a different problem. According to the datasheet, PCLK is 80+- MHz. The 16-bit LCDCAM ESP32S3 module can receive a maximum frequency of 16 bits, 40 MHz (8 bits, 80 MHz) in RAM.
The ESP32P4 can receive up to 80 MHz 16 bits in RAM/PSRAM.
These are all the data only for receiving and writing to memory; you still want to compress them and send them over WiFi.
If dropped frames are acceptable to you, you can try implementing 8+8+8 mode by sequentially switching the ESP32S3(P4) inputs on the iomatrix, or RGB565 mode (16 bit) for the ESP32P4.
There's also the issue of long cables between the screen and the camera receiver; at 80 MHz, this is significant. In practice, more or less realistic PCLK for the camera's are 15-18 MHz.

MicroController
Posts: 2661
Joined: Mon Oct 17, 2022 7:38 pm
Location: Europe, Germany

Re: Has anyone used ESP32-S3 to capture an external RGB LCD bus passively?

Postby MicroController » Wed Apr 08, 2026 10:08 am

I think OP's estimate for the pixel clock is more realistic
at ~9 MHz when the screen is active (480×272 @ 60Hz).

Who is online

Users browsing this forum: No registered users and 21 guests