From 0b6eecfe8e61d77aff803f0837fe3151b1400966 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Tue, 2 Sep 2025 17:48:01 +0200 Subject: [PATCH 1/3] sdram: reduce pins drive strength --- libraries/Portenta_SDRAM/src/ram_internal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Portenta_SDRAM/src/ram_internal.c b/libraries/Portenta_SDRAM/src/ram_internal.c index e4deedd0c..0920af093 100644 --- a/libraries/Portenta_SDRAM/src/ram_internal.c +++ b/libraries/Portenta_SDRAM/src/ram_internal.c @@ -89,7 +89,7 @@ bool sdram_init(void) { /* Common GPIO configuration */ gpio_init_structure.Mode = GPIO_MODE_AF_PP; gpio_init_structure.Pull = GPIO_PULLUP; - gpio_init_structure.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + gpio_init_structure.Speed = GPIO_SPEED_FREQ_MEDIUM; gpio_init_structure.Alternate = GPIO_AF12_FMC; /* GPIOD configuration */ From 71e572cf61df64edc00a6411caa80f9c657c8b51 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Tue, 2 Sep 2025 17:49:03 +0200 Subject: [PATCH 2/3] anx7625: don't fail horribly if EDID is non conformant --- libraries/Arduino_H7_Video/src/anx7625.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/Arduino_H7_Video/src/anx7625.cpp b/libraries/Arduino_H7_Video/src/anx7625.cpp index 3cfefce47..1c06ea80d 100644 --- a/libraries/Arduino_H7_Video/src/anx7625.cpp +++ b/libraries/Arduino_H7_Video/src/anx7625.cpp @@ -475,8 +475,8 @@ int anx7625_dp_get_edid(uint8_t bus, struct edid *out) { ret = decode_edid(edid, (block_num + 1) * ONE_BLOCK_SIZE, out); if (ret != EDID_CONFORMANT) { - ANXERROR("Failed to decode EDID.\n"); - return -1; + ANXINFO("Non conformant EDID.\n"); + return 0; } return 0; From 1bcaa95afb67ffbe70e50663b095e0885ee00a47 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Tue, 2 Sep 2025 17:49:26 +0200 Subject: [PATCH 3/3] H7Video: allow EDID_MODE_AUTO can be enabled by selecting any incompatible mode Arduino_H7_Video Display(0, 0, USBCVideo); --- libraries/Arduino_H7_Video/src/video_modes.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libraries/Arduino_H7_Video/src/video_modes.c b/libraries/Arduino_H7_Video/src/video_modes.c index 16c90d2cf..3316ea930 100644 --- a/libraries/Arduino_H7_Video/src/video_modes.c +++ b/libraries/Arduino_H7_Video/src/video_modes.c @@ -63,7 +63,7 @@ struct envie_edid_mode envie_known_modes[NUM_KNOWN_MODES] = { enum edid_modes video_modes_get_edid(uint32_t h_check, uint32_t v_check) { int sum = 0; - int sel_mode = -1; + int sel_mode = EDID_MODE_AUTO; int sel_sum = 0; for (int i = 0; i= 0 && ((sel_mode == -1) || (sum < sel_sum))) { + if (sum >= 0 && ((sel_mode == EDID_MODE_AUTO) || (sum < sel_sum))) { sel_mode = i; sel_sum = sum; } @@ -88,14 +88,13 @@ enum edid_modes video_modes_get_edid(uint32_t h_check, uint32_t v_check) { sum = -1; } - if (sum >= 0 && ((sel_mode == -1) || (sum < sel_sum))) { + if (sum >= 0 && ((sel_mode == EDID_MODE_AUTO) || (sum < sel_sum))) { sel_mode = i; sel_sum = sum; } } - if (sel_mode == -1 || - sel_mode == EDID_MODE_1280x768_60Hz || + if (sel_mode == EDID_MODE_1280x768_60Hz || sel_mode == EDID_MODE_1280x720_60Hz || sel_mode == EDID_MODE_1920x1080_60Hz) { sel_mode = EDID_MODE_1024x768_60Hz;