GPIO46 must also be either left unconnected/floating, or driven Low, in order to enter the serial bootloader.
And of course I picked GPIO46 for I2C SDA, so it's pulled high.
https://github.com/skot/bitaxe/issues/18After removing the SDA I2C pull-up resistor I can program the ESP32 with ESP-Prog, so that's good news!
Yes great catch , GPIO3 = Pin 15 is floating by default and is one of the strapping pins which includes ( GPIO0=Pin27, GPIO045=Pin26, GPIO46=Pin16, GPIO3=Pin15) . So that should work