Atom Echo Display I2c write errors
-
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.
-
Problem solved:
Since this used to work, I started poking around looking at version numbers. It turns out that at some point, the component manager "upgraded" my component from V0.1.16 to 0.2.6. I am talking about: https://github.com/m5stack/M5GFX.git
Sure enough, rolling back to 0.1.16 solved the issue.
I think I am done with automated component management.