diff --git a/src/main.cpp b/src/main.cpp index 2357a00de5..eb99f279a6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -237,6 +237,17 @@ void printInfo() #ifndef PIO_UNIT_TESTING void setup() { +#if defined(T_DECK) + // GPIO10 manages all peripheral power supplies + // Turn on peripheral power immediately after MUC starts. + // If some boards are turned on late, ESP32 will reset due to low voltage. + // ESP32-C3(Keyboard) , MAX98357A(Audio Power Amplifier) , + // TF Card , Display backlight(AW9364DNR) , AN48841B(Trackball) , ES7210(Decoder) + pinMode(KB_POWERON, OUTPUT); + digitalWrite(KB_POWERON, HIGH); + delay(100); +#endif + concurrency::hasBeenSetup = true; #if ARCH_PORTDUINO SPISettings spiSettings(settingsMap[spiSpeed], MSBFIRST, SPI_MODE0); @@ -409,14 +420,6 @@ void setup() digitalWrite(AQ_SET_PIN, HIGH); #endif -#if defined(T_DECK) - // enable keyboard - pinMode(KB_POWERON, OUTPUT); - digitalWrite(KB_POWERON, HIGH); - // There needs to be a delay after power on, give LILYGO-KEYBOARD some startup time - // otherwise keyboard and touch screen will not work - delay(200); -#endif // Currently only the tbeam has a PMU // PMU initialization needs to be placed before i2c scanning