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

    Core2 and M5Unified display no longer works

    Core 2
    1
    1
    92
    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.
    • H
      HappyUser
      last edited by

      Wow,
      I have uploaded the standard M5Unified Button code to my M5Core2.
      I know the program is running because my serial.print shows button counts.
      But the display shows nothing.
      I have tried this on multiple Core2 of which I know the display is not defect. All boards and libs are updated (as fwr as i know).
      What am i doing wrong here?
      Thanks

      #include <M5Unified.h>
      
      void setup(void)
      {
        M5.begin();
      
        Serial.begin(115200);
      
        /// For models with EPD : refresh control
        M5.Display.setEpdMode(epd_mode_t::epd_fastest); // fastest but very-low quality.
      
        if (M5.Display.width() < M5.Display.height())
        { /// Landscape mode.
          M5.Display.setRotation(M5.Display.getRotation() ^ 1);
        }
      }
      
      void loop(void)
      {
        M5.delay(1);
      
        M5.update();
      //------------------- Button test
      /*
      /// List of available buttons:
        M5Stack BASIC/GRAY/GO/FIRE:  BtnA,BtnB,BtnC
        M5Stack Core2:               BtnA,BtnB,BtnC,BtnPWR
        M5Stick C/CPlus:             BtnA,BtnB,     BtnPWR
        M5Stick CoreInk:             BtnA,BtnB,BtnC,BtnPWR,BtnEXT
        M5Paper:                     BtnA,BtnB,BtnC
        M5Station:                   BtnA,BtnB,BtnC,BtnPWR
        M5Tough:                                    BtnPWR
        M5Atom M5AtomU:              BtnA
        M5Stamp Pico/C3/C3U:         BtnA
      */
      
        static constexpr const int colors[] = { TFT_WHITE, TFT_CYAN, TFT_RED, TFT_YELLOW, TFT_BLUE, TFT_GREEN };
        static constexpr const char* const names[] = { "none", "wasHold", "wasClicked", "wasPressed", "wasReleased", "wasDeciedCount" };
      
        int w = M5.Display.width() / 5;
        int h = M5.Display.height();
        M5.Display.startWrite();
      
        /// BtnPWR: "wasClicked"/"wasHold"  can be use.
        /// BtnPWR of CoreInk: "isPressed"/"wasPressed"/"isReleased"/"wasReleased"/"wasClicked"/"wasHold"/"isHolding"  can be use.
        int state = M5.BtnPWR.wasHold() ? 1
                  : M5.BtnPWR.wasClicked() ? 2
                  : M5.BtnPWR.wasPressed() ? 3
                  : M5.BtnPWR.wasReleased() ? 4
                  : M5.BtnPWR.wasDecideClickCount() ? 5
                  : 0;
      
        if (state)
        {
          M5_LOGI("BtnPWR:%s  count:%d", names[state], M5.BtnPWR.getClickCount());
          M5.Display.fillRect(w*0, 0, w-1, h, colors[state]);
          
        }
      
        /// BtnA,BtnB,BtnC,BtnEXT: "isPressed"/"wasPressed"/"isReleased"/"wasReleased"/"wasClicked"/"wasHold"/"isHolding"  can be use.
        state = M5.BtnA.wasHold() ? 1
              : M5.BtnA.wasClicked() ? 2
              : M5.BtnA.wasPressed() ? 3
              : M5.BtnA.wasReleased() ? 4
              : M5.BtnA.wasDecideClickCount() ? 5
              : 0;
        if (state)
        {
          M5_LOGI("BtnA:%s  count:%d", names[state], M5.BtnA.getClickCount());
          M5.Display.fillRect(w*1, 0, w-1, h, colors[state]);
          Serial.println(M5.BtnA.getClickCount());
        }
      
        state = M5.BtnB.wasHold() ? 1
              : M5.BtnB.wasClicked() ? 2
              : M5.BtnB.wasPressed() ? 3
              : M5.BtnB.wasReleased() ? 4
              : M5.BtnB.wasDecideClickCount() ? 5
              : 0;
        if (state)
        {
          M5_LOGI("BtnB:%s  count:%d", names[state], M5.BtnB.getClickCount());
          M5.Display.fillRect(w*2, 0, w-1, h, colors[state]);
        }
      
        state = M5.BtnC.wasHold() ? 1
              : M5.BtnC.wasClicked() ? 2
              : M5.BtnC.wasPressed() ? 3
              : M5.BtnC.wasReleased() ? 4
              : M5.BtnC.wasDecideClickCount() ? 5
              : 0;
        if (state)
        {
          M5_LOGI("BtnC:%s  count:%d", names[state], M5.BtnC.getClickCount());
          M5.Display.fillRect(w*3, 0, w-1, h, colors[state]);
        }
      
        state = M5.BtnEXT.wasHold() ? 1
              : M5.BtnEXT.wasClicked() ? 2
              : M5.BtnEXT.wasPressed() ? 3
              : M5.BtnEXT.wasReleased() ? 4
              : M5.BtnEXT.wasDecideClickCount() ? 5
              : 0;
        if (state)
        {
          M5_LOGI("BtnEXT:%s  count:%d", names[state], M5.BtnEXT.getClickCount());
          M5.Display.fillRect(w*4, 0, w-1, h, colors[state]);
        }
        M5.Display.endWrite();
      }
      
      #if !defined ( ARDUINO ) && defined ( ESP_PLATFORM )
      extern "C" {
        void loopTask(void*)
        {
          setup();
          for (;;) {
            loop();
          }
          vTaskDelete(NULL);
        }
      
        void app_main()
        {
          xTaskCreatePinnedToCore(loopTask, "loopTask", 8192, NULL, 1, NULL, 1);
        }
      }
      #endif
      
      
      1 Reply Last reply Reply Quote 0
      • First post
        Last post