I've managed to read button clicks from M5Unit 8Servos.
Here is how i connected the button to the unit.
IMG_1089.JPG
IMG_1090.JPG
I've managed to read button click from M5Unit 8Servos with this code.
I'm using an M5Stack AtomS3 Lite.
#include <Arduino.h>
#include <M5Unified.h>
#include <Wire.h>
#include <M5_UNIT_8SERVO.h>
#define SERVO_PIN 0
#define START_BUTTON_PIN 1
// put variables here:
M5_UNIT_8SERVO unit_8servo;
bool btnState;
unsigned long btnClieckedMs;
// put function declarations here:
void setup() {
  M5.begin();
  Serial.begin(115200);
  Serial.println("### Setup - start");
  while (!unit_8servo.begin(&Wire, G2, G1, M5_UNIT_8SERVO_DEFAULT_ADDR)) {
    Serial.println("extio Connect Error");
    delay(100);
  }
  //unit_8servo.setAllPinMode(SERVO_CTL_MODE);
  unit_8servo.setOnePinMode(SERVO_PIN, SERVO_CTL_MODE);
  unit_8servo.setOnePinMode(START_BUTTON_PIN, DIGITAL_INPUT_MODE);
  
  btnState = false;
  Serial.println("### Setup - end");
}
void loop() {
  bool prevBtnState = btnState;                               // save last state for comparison
  btnState = unit_8servo.getDigitalInput(START_BUTTON_PIN);   // read new state
  if(prevBtnState == false && btnState == true) {             // if state has changed
    btnClieckedMs = millis();                                 // save millis
  } else if(prevBtnState == true && btnState == false) {      // if state has changed again
    if(millis() - btnClieckedMs > 50) {                       // check how long it took from 'false' to 'true' (debounce)
      Serial.print("Button clicked ");                        // do some fancy things when button clicked 
      Serial.println(btnClieckedMs);                      
    }
  }
}