@JimiT, the software is a Google Home enabled thermostat with a 7 day programmable heating schedule. I have it running on two different boards right now (DOIT ESP32 and Heltec ESP32 with OLED). I wanted to port the code to the M5Stack and got half way thru porting the code before it started misbehaving.

I found a post here about a user who had similar problems and built a push button jig that would ground GPIO 0 to force the unit into bootloader mode. I tried the same and sadly, that did not work for me. Now when I connect the monitor program and hit reset, I get garbage characters and not ESP boot message. I've tried different baud rates but can't see the boot message.

When I try to upload a sketch, it gives me a message that the EEPROM size can't be determined and hangs after loading the bootstrap loader. I had a similar program with another ESP32 board and it turns out that the EEPROM was fried.

The links you've posted are all good but once the unit goes into Brownout, it will not allow you to upload any sketch in the Arduino IDE. I've yet to find a Espressif command line program to clear the brownout condition.

I think this unit is bricked :(

@reaper7 Thanks for the info. Perhaps the people at M5Stack can provide me with some help here...