🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Atom Echo Display I2c write errors

    Scheduled Pinned Locked Moved ESP - IDF
    2 Posts 1 Posters 2.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A Offline
      avanti
      last edited by

      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.

      1 Reply Last reply Reply Quote 0
      • A Offline
        avanti
        last edited by

        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.

        1 Reply Last reply Reply Quote 0

        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

        With your input, this post could be even better 💗

        Register Login
        • First post
          Last post