Using CardKB (not hat) with M5StickC



  • Hello,
    I'm trying to use CardKB with M5 Stick C through grove port. There is an example in the library (which looks like copy paste from M5Stack with only changed header name), but i couldn't make it work. One of the odd things is that messes with gpio5 which is connected to screen. Any suggestion on how to make CardKb work?
    Thanks

    #include <M5StickC.h>
    #include <Wire.h>

    #define CARDKB_ADDR 0x5F

    void setup()
    {
    M5.begin();
    Serial.begin(115200);
    Wire.begin();
    pinMode(5, INPUT);
    digitalWrite(5, HIGH);
    M5.Lcd.fillScreen(BLACK);
    M5.Lcd.setRotation(3);
    M5.Lcd.setCursor(1, 10);
    M5.Lcd.setTextColor(YELLOW);
    M5.Lcd.setTextSize(2);
    M5.Lcd.printf("IIC Address: 0x5F\n");
    M5.Lcd.printf(">>");
    }
    void loop()
    {
    Wire.requestFrom(CARDKB_ADDR, 1);
    while(Wire.available())
    {
    char c = Wire.read(); // re ceive a byte as characterif
    if (c != 0)
    {
    M5.Lcd.printf("%c", c);
    Serial.println(c, HEX);
    // M5.Speaker.beep();
    }
    }
    // delay(10);
    }



  • 
    
    #include <M5StickC.h>
    #include <Wire.h>
    
    #define CARDKB_ADDR 0x5F
    
    void setup()
    {
      M5.begin();
      Serial.begin(115200);
      Wire.begin();
      M5.Lcd.fillScreen(BLACK);
      M5.Lcd.setRotation(3);
      M5.Lcd.setCursor(1, 10);
      M5.Lcd.setTextColor(YELLOW);
      M5.Lcd.setTextSize(2);
      M5.Lcd.printf("IIC Address: 0x5F\n");
      M5.Lcd.printf(">>");
    }
    void loop()
    {
      Wire.requestFrom(CARDKB_ADDR, 1);
      while(Wire.available())
      {
        char c = Wire.read(); // receive a byte as characterif
        if (c != 0)
        {
          M5.Lcd.printf("%c", c);
          Serial.println(c, HEX);
         // M5.Speaker.beep();
        }
      }
      // delay(10);
    }
    
    
    


  • Thanks! it works.