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

    M5StickC screen don't work

    M5 Stick/StickC
    11
    25
    89.6k
    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.
    • N
      nsfilho @nsfilho
      last edited by

      Today has arrived more two M5Stick-C units for me. After some tests, I discovered more I2C Channels to test. In a fully functional M5Stick-C Unit, I have this result:

      M5StickC initializing...OK
      M5StickC I2C Tester
      Millis: 4057 - Scanning Address
      Port: 1 - Found: 0x34
      Port: 1 - Found: 0x51
      Port: 1 - Found: 0x68
      Finished, total: 3 devices!
      

      When I run the same software in a unit with problem, I obtain the bellow result:

      M5StickC I2C Tester
      Millis: 4047 - Scanning Address
      Port: 1 - Found: 0x51
      Port: 1 - Found: 0x68
      Finished, total: 2 devices!
      

      The AXP I2C address (0x34) is not found. Are anyone knows how to solve that?

      @m5stack please help me.
      @lukasmaximus I see you have a big knowloged about M5Stack products. Are you know something about that? Could you help me, please?

      My I2C tester code:

      #include <M5StickC.h>
      
      void setup()
      {
        M5.begin();
        Serial.println("M5StickC I2C Tester");
        Wire.begin();
        Wire1.begin();
        delay(3000);
      }
      
      byte checkResult(byte error, byte address, byte wirePort)
      {
        if (error == 0)
        {
          Serial.print("Port: ");
          Serial.print(wirePort);
          Serial.print(" - Found: 0x");
          Serial.println(address, HEX);
          return 1;
        }
        return 0;
      }
      
      void loop()
      {
        byte address = 1;
        byte devices = 0;
      
        Serial.print("Millis: ");
        Serial.print(millis());
        Serial.println(" - Scanning Address");
      
        for (; address < 127; address++)
        {
          Wire.beginTransmission(address);
          Wire1.beginTransmission(address);
          devices += checkResult(Wire.endTransmission(), address, 0);
          devices += checkResult(Wire1.endTransmission(), address, 1);
          delay(10);
        }
        Serial.print("Finished, total: ");
        Serial.print(devices);
        Serial.println(" devices!\n\n");
        delay(5000);
      }
      
      1 Reply Last reply Reply Quote 0
      • C
        clive.dent
        last edited by

        Hi. I just want to say that I was able to solve this strange issue with the BAT - GND cable trick. It didn't work at first and I was getting only two ports from nsfilho's script. But then I figured it out. I just had to turn the device off by holding the power button for 6s first and then the cable trick worked.

        N 1 Reply Last reply Reply Quote 0
        • N
          nsfilho @clive.dent
          last edited by

          @clive-dent How much time have you waited with a jumper between GND and BAT? I'm asking that, because I'm a little afraid about to jumper GND and BAT, specially because it is a LIPO Battery (can explode).

          But if it is a solution, I'll do that! If you can tell me the how much time, I really appreciate. Please, let me ask you something, If you could create a Youtube video showing that solution, I belive it will be amazing. Many M5Stick-C buyers will go to face this same problem and now have no reference to follow.

          Thank you again by your disposition to share how to solve the problem :)

          C 1 Reply Last reply Reply Quote 0
          • mdevel1M
            mdevel1
            last edited by

            I had the same issue with one of my two sticks, which appeared and disappeared without (intentionally) shorting anything and found two loose magnets inside. See the Loose magnets inside can short the battery and other components topic for more details. The magnets might have shorted some pins while I was trying to remove them (or caused the whole issue beforehand).
            While my stick was defective I had access to the AXP on the I2C bus (I think the M5.Axp.GetBatState() or any other Axp call would not work otherwise), but the returned values were incomprehensible. Since my stick is working now, can you test the code posted there to dump the data form the AXP chip?

            N 1 Reply Last reply Reply Quote 0
            • N
              nsfilho @mdevel1
              last edited by

              @mdevel1 After your message, I opened my M5Stick-C too, but in my case, the magnets is in a properly slots. I didn't found any problems after a quick look in the board and components.

              If anyone have any idea about how to procedure, I'll appreciate!
              Thank you in advance and thank you for share with us.

              mdevel1M 1 Reply Last reply Reply Quote 0
              • mdevel1M
                mdevel1 @nsfilho
                last edited by

                @nsfilho Have you tried to upload my AXP data query code? I added the possibility to dump the results to USB as well as an external serial port, so no other device is needed for running it.

                N 1 Reply Last reply Reply Quote 0
                • N
                  nsfilho @mdevel1
                  last edited by nsfilho

                  @mdevel1 the problem is AXP Address 0x34 is not responding. Because of that, M5.Axp interface can't connect (and can't power-up screen).

                  M5.Axp use Wire1 as I2C to communicate on ports 21 and 22, as described in https://github.com/m5stack/M5StickC/blob/master/src/AXP192.cpp.

                  Because of that, any commands as Wire1.beginTransmission, result in error. The M5.Axp, use Write1Byte to send information (and is not validating if was successful, because of that, I haven't any log).

                  void AXP192::Write1Byte( uint8_t Addr ,  uint8_t Data )
                  {
                      Wire1.beginTransmission(0x34);
                      Wire1.write(Addr);
                      Wire1.write(Data);
                      Wire1.endTransmission();
                  }
                  

                  The I2C Axp Address (0x34) isn't ready in one of my M5Stick-C. If you have any idea, please let me know -- I'm really trying anything to get AXP fully functional again, because I can't see anything (in display) without Axp.

                  In my code above, you will see a test in endTransmission as mencioned to test the result.

                  Thank you by all your attention. Please let me know if you have any idea.

                  mdevel1M 1 Reply Last reply Reply Quote 0
                  • mdevel1M
                    mdevel1 @nsfilho
                    last edited by

                    @nsfilho
                    I'm sorry, I did not know that the code fails earlier, I just had to exclude the possibility that it can fail in a way which results the strange output from the AXP chip I was seeing when my screen was not working. This also means that my problem was different.
                    In this case I don't have any more ideas, except taking apart the stick completely very carefully (see the photos how it can break, and then desolder the LiPo battery (or just cut the cables separately, very close to the PCB). I don't know if your stick has the button battery (mine does not), and what is it connected to, but it's possible that it must be disconnected somehow too. When you don't have any batteries or power sources connected, you might try to discharge any capacitors nearby, which should definitely put the AXP chip in a known stable state without the risk of shorting and damaging any battery. I would then inspect the AXP chip, the PCB traces and the components nearby for shorts, cuts, corrosion or any anomaly. If nothing found, then try to power from USB (preferably with a current meter) and see what happens.
                    I'm not aware of others having the exact same problem, so yours might be unique.

                    1 Reply Last reply Reply Quote 0
                    • C
                      clive.dent @nsfilho
                      last edited by

                      @nsfilho Not very long, 3s max. I didn't know that, thanks for warning! The problem keeps reappearing so I will keep that in mind.

                      1 Reply Last reply Reply Quote 0
                      • I
                        ilex73 @HunterDAce
                        last edited by

                        This post is deleted!
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post