I cannot get the Atom Echo display (hdmi) to initialize. I consistently get these I2c errors during initialization efforts:
(2432) M5HDMI: i2c port:1 sda:25 scl:21
I (2432) M5HDMI: Chip ID: 17 02 e2
I (2432) M5HDMI: Resetting HDMI transmitter...
I (2502) M5HDMI: i2c write err reg:ff val:81
I (2502) M5HDMI: FPGA ID:48440004
I (2502) M5HDMI: FPGA ID:48440004
I (2502) M5HDMI: Initialize HDMI transmitter...
I (2582) M5HDMI: i2c write err reg:ff val:80
I (2652) M5HDMI: i2c write err reg:ff val:82
I (2732) M5HDMI: i2c write err reg:2b val:bd
I (2812) M5HDMI: i2c write err reg:2e val:be
I (2882) M5HDMI: i2c write err reg:ff val:80
I (2962) M5HDMI: i2c write err reg:ff val:80
I (3042) M5HDMI: i2c write err reg:b9 val:00
I (3042) M5HDMI: done.
This is on esp-idf 4.4. Here is the code:
#include "M5GFX.h"
#include <m5atomdisplay.h> // This header includes m5gfx support
M5AtomDisplay M5;
extern "C" void app_main(void)
{
printf("Initializing screen component...\n");
vTaskDelay(100);
M5.begin(); // Initialize M5Stack
vTaskDelay(100);
vTaskDelay(pdMS_TO_TICKS(50));
M5.clear(); // Clear the display
vTaskDelay(100);
M5.setFont(&fonts:: FreeSerifBold24pt7b);
M5.fillScreen(BLUE);
// Initialize the M5Atom display (HDMI output is set up as part of the initialization)
// (Optional) If your version of m5gfx requires it, you can explicitly enable HDMI:
// M5.Lcd.enableHDMI();
// Clear the display to black
M5.fillScreen(0x0000);
// Set text properties and print a test message
M5.setTextColor(0xFFFF); // White text
M5.setCursor(10, 10);
M5.println("M5Atom HDMI Test");
// Draw a red rectangle to verify graphic output
M5.drawRect(20, 20, 100, 50, 0xF800); // 0xF800 represents red in 16-bit color
// Main loop (keeps the application running)
while (1) {
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}
This happens on multiple units, so it is not a hardware problem. I am stumped.