Skip to content

Commit 27741fd

Browse files
committed
fix: add gc0308 output only Y format support
1 parent efe711d commit 27741fd

File tree

4 files changed

+7
-3
lines changed

4 files changed

+7
-3
lines changed

sensors/gc0308.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,10 @@ static int set_pixformat(sensor_t *sensor, pixformat_t pixformat)
160160
write_reg(sensor->slv_addr, 0xfe, 0x00);
161161
ret = set_reg_bits(sensor->slv_addr, 0x24, 0, 0x0f, 2); //yuv422 Y Cb Y Cr
162162
break;
163+
case PIXFORMAT_GRAYSCALE:
164+
write_reg(sensor->slv_addr, 0xfe, 0x00);
165+
ret = write_reg(sensor->slv_addr, 0x24, 0xb1);
166+
break;
163167
default:
164168
ESP_LOGW(TAG, "unsupport format");
165169
ret = -1;

target/esp32/ll_cam.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ size_t IRAM_ATTR ll_cam_memcpy(cam_obj_t *cam, uint8_t *out, const uint8_t *in,
491491
esp_err_t ll_cam_set_sample_mode(cam_obj_t *cam, pixformat_t pix_format, uint32_t xclk_freq_hz, uint16_t sensor_pid)
492492
{
493493
if (pix_format == PIXFORMAT_GRAYSCALE) {
494-
if (sensor_pid == OV3660_PID || sensor_pid == OV5640_PID || sensor_pid == NT99141_PID || sensor_pid == SC031GS_PID || sensor_pid == BF20A6_PID) {
494+
if (sensor_pid == OV3660_PID || sensor_pid == OV5640_PID || sensor_pid == NT99141_PID || sensor_pid == SC031GS_PID || sensor_pid == BF20A6_PID || sensor_pid == GC0308_PID) {
495495
if (xclk_freq_hz > 10000000) {
496496
sampling_mode = SM_0A00_0B00;
497497
dma_filter = ll_cam_dma_filter_yuyv_highspeed;

target/esp32s2/ll_cam.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ size_t IRAM_ATTR ll_cam_memcpy(cam_obj_t *cam, uint8_t *out, const uint8_t *in,
394394
esp_err_t ll_cam_set_sample_mode(cam_obj_t *cam, pixformat_t pix_format, uint32_t xclk_freq_hz, uint16_t sensor_pid)
395395
{
396396
if (pix_format == PIXFORMAT_GRAYSCALE) {
397-
if (sensor_pid == OV3660_PID || sensor_pid == OV5640_PID || sensor_pid == NT99141_PID || sensor_pid == SC031GS_PID || sensor_pid == BF20A6_PID) {
397+
if (sensor_pid == OV3660_PID || sensor_pid == OV5640_PID || sensor_pid == NT99141_PID || sensor_pid == SC031GS_PID || sensor_pid == BF20A6_PID || sensor_pid == GC0308_PID) {
398398
cam->in_bytes_per_pixel = 1; // camera sends Y8
399399
} else {
400400
cam->in_bytes_per_pixel = 2; // camera sends YU/YV

target/esp32s3/ll_cam.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,7 @@ size_t IRAM_ATTR ll_cam_memcpy(cam_obj_t *cam, uint8_t *out, const uint8_t *in,
493493
esp_err_t ll_cam_set_sample_mode(cam_obj_t *cam, pixformat_t pix_format, uint32_t xclk_freq_hz, uint16_t sensor_pid)
494494
{
495495
if (pix_format == PIXFORMAT_GRAYSCALE) {
496-
if (sensor_pid == OV3660_PID || sensor_pid == OV5640_PID || sensor_pid == NT99141_PID || sensor_pid == SC031GS_PID || sensor_pid == BF20A6_PID) {
496+
if (sensor_pid == OV3660_PID || sensor_pid == OV5640_PID || sensor_pid == NT99141_PID || sensor_pid == SC031GS_PID || sensor_pid == BF20A6_PID || sensor_pid == GC0308_PID) {
497497
cam->in_bytes_per_pixel = 1; // camera sends Y8
498498
} else {
499499
cam->in_bytes_per_pixel = 2; // camera sends YU/YV

0 commit comments

Comments
 (0)