Add connect_mode argument

This commit is contained in:
Joris Aerts 2021-12-19 10:19:15 +01:00
parent 09e119a610
commit b9fab023fe
2 changed files with 8 additions and 3 deletions

View File

@ -53,6 +53,11 @@ def parse_args(argv):
help="(ESP32-only) The otadata file to flash.",
default=ESP32_DEFAULT_OTA_DATA,
)
parser.add_argument(
'--connect_mode',
help="Connect Mode (similar to esptool 'before' argument)",
default="default_reset"
)
parser.add_argument(
"--no-erase", help="Do not erase flash before flashing", action="store_true"
)

View File

@ -212,13 +212,13 @@ def configure_write_flash_args(
return MockEsptoolArgs(flash_size, addr_filename, flash_mode, flash_freq)
def detect_chip(port, force_esp8266=False, force_esp32=False):
def detect_chip(port, force_esp8266=False, force_esp32=False, connect_mode='default_reset'):
if force_esp8266 or force_esp32:
klass = esptool.ESP32ROM if force_esp32 else esptool.ESP8266ROM
chip = klass(port)
else:
try:
chip = esptool.ESPLoader.detect_chip(port)
chip = esptool.ESPLoader.detect_chip(port, connect_mode=connect_mode)
except esptool.FatalError as err:
if "Wrong boot mode detected" in str(err):
msg = "ESP is not in flash boot mode. If your board has a flashing pin, try again while keeping it pressed."
@ -227,7 +227,7 @@ def detect_chip(port, force_esp8266=False, force_esp32=False):
raise EsphomeflasherError(msg) from err
try:
chip.connect()
chip.connect(mode=connect_mode)
except esptool.FatalError as err:
raise EsphomeflasherError(f"Error connecting to ESP: {err}") from err