MicroPython: added code to allow the user to select the flash mod for flashing the MicroPython firmware for ESP32/ESP8266 devices.

Fri, 15 May 2020 18:33:53 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 15 May 2020 18:33:53 +0200
changeset 7595
5db6bfeff23e
parent 7594
ee35df230130
child 7596
1b1f401e1d70

MicroPython: added code to allow the user to select the flash mod for flashing the MicroPython firmware for ESP32/ESP8266 devices.

eric6/APIs/Python3/eric6.api file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.MicroPython.EspFirmwareSelectionDialog.html file | annotate | diff | comparison | revisions
eric6/MicroPython/CircuitPythonFirmwareSelectionDialog.py file | annotate | diff | comparison | revisions
eric6/MicroPython/EspBackupRestoreFirmwareDialog.py file | annotate | diff | comparison | revisions
eric6/MicroPython/EspDevices.py file | annotate | diff | comparison | revisions
eric6/MicroPython/EspFirmwareSelectionDialog.py file | annotate | diff | comparison | revisions
eric6/MicroPython/EspFirmwareSelectionDialog.ui file | annotate | diff | comparison | revisions
eric6/MicroPython/MicroPythonWidget.py file | annotate | diff | comparison | revisions
eric6/Utilities/__init__.py file | annotate | diff | comparison | revisions
eric6/WebBrowser/Tools/WebIconProvider.py file | annotate | diff | comparison | revisions
eric6/i18n/eric6_cs.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_de.qm file | annotate | diff | comparison | revisions
eric6/i18n/eric6_de.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_empty.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_en.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_es.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_fr.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_it.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_pt.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_ru.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_tr.ts file | annotate | diff | comparison | revisions
eric6/i18n/eric6_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/eric6/APIs/Python3/eric6.api	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/APIs/Python3/eric6.api	Fri May 15 18:33:53 2020 +0200
@@ -2275,6 +2275,7 @@
 eric6.MicroPython.EspDevices.EspDevice.runScript?4(script)
 eric6.MicroPython.EspDevices.EspDevice.setButtons?4()
 eric6.MicroPython.EspDevices.EspDevice?1(microPythonWidget, parent=None)
+eric6.MicroPython.EspFirmwareSelectionDialog.EspFirmwareSelectionDialog.FlashModes?7
 eric6.MicroPython.EspFirmwareSelectionDialog.EspFirmwareSelectionDialog.getData?4()
 eric6.MicroPython.EspFirmwareSelectionDialog.EspFirmwareSelectionDialog.on_espComboBox_currentTextChanged?4(chip)
 eric6.MicroPython.EspFirmwareSelectionDialog.EspFirmwareSelectionDialog.on_firmwarePicker_textChanged?4(firmware)
--- a/eric6/Documentation/Source/eric6.MicroPython.EspFirmwareSelectionDialog.html	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/Documentation/Source/eric6.MicroPython.EspFirmwareSelectionDialog.html	Fri May 15 18:33:53 2020 +0200
@@ -59,7 +59,7 @@
 <h3>Class Attributes</h3>
 
 <table>
-<tr><td>None</td></tr>
+<tr><td>FlashModes</td></tr>
 </table>
 <h3>Class Methods</h3>
 
@@ -133,13 +133,13 @@
 <dt>Returns:</dt>
 <dd>
 tuple containing the selected chip type, the path of the
-            firmware file and the flash address
+            firmware file, the flash mode and the flash address
 </dd>
 </dl>
 <dl>
 <dt>Return Type:</dt>
 <dd>
-tuple of (str, str, str)
+tuple of (str, str, str, str)
 </dd>
 </dl>
 <a NAME="EspFirmwareSelectionDialog.on_espComboBox_currentTextChanged" ID="EspFirmwareSelectionDialog.on_espComboBox_currentTextChanged"></a>
--- a/eric6/MicroPython/CircuitPythonFirmwareSelectionDialog.py	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/MicroPython/CircuitPythonFirmwareSelectionDialog.py	Fri May 15 18:33:53 2020 +0200
@@ -48,6 +48,7 @@
         
         self.bootPicker.setMode(E5PathPickerModes.DirectoryShowFilesMode)
         
+        self.__manualMarker = "<manual>"
         boards = (
             ("", ""),           # indicator for no selection
             
@@ -63,7 +64,7 @@
             ("NeoTrelis M4 Express", "TRELM4BOOT"),
             ("Trinket M0", "TRINKETBOOT"),
             
-            ("Manual Select", "<manual>"),
+            (self.tr("Manual Select"), self.__manualMarker),
         )
         for boardName, bootVolume in boards:
             self.boardComboBox.addItem(boardName, bootVolume)
@@ -84,7 +85,7 @@
             enable = False
         else:
             volumeName = self.boardComboBox.currentData()
-            if volumeName and volumeName != "<manual>":
+            if volumeName and volumeName != self.__manualMarker:
                 # check if the user selected a board and the board is in
                 # bootloader mode
                 deviceDirectory = Utilities.findVolume(volumeName)
@@ -104,7 +105,7 @@
                         .format(volumeName)
                     )
             
-            elif volumeName == "<manual>":
+            elif volumeName == self.__manualMarker:
                 # select the device path manually
                 deviceDirectory = self.bootPicker.text()
                 enable = (bool(deviceDirectory) and
@@ -134,7 +135,7 @@
         @param index index of the selected board type
         @type int
         """
-        if self.boardComboBox.itemData(index) == "<manual>":
+        if self.boardComboBox.itemData(index) == self.__manualMarker:
             self.bootPicker.clear()
             self.bootPicker.setEnabled(True)
         else:
--- a/eric6/MicroPython/EspBackupRestoreFirmwareDialog.py	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/MicroPython/EspBackupRestoreFirmwareDialog.py	Fri May 15 18:33:53 2020 +0200
@@ -26,7 +26,12 @@
     Class implementing a dialog to select the ESP chip type and the backup and
     restore parameters.
     """
-    FlashModes = ["qio", "qout", "dio", "dout"]
+    FlashModes = [
+        ("Quad I/O", "qio"),
+        ("Quad Output", "qout"),
+        ("Dual I/O", "dio"),
+        ("Dual Output", "dout"),
+    ]
     FlashSizes = {
         "ESP32": [
             (" 1 MB", "0x100000"),
@@ -72,7 +77,8 @@
             self.setWindowTitle(self.tr("Backup Firmware"))
         else:
             self.firmwarePicker.setMode(E5PathPickerModes.OpenFileMode)
-            self.modeComboBox.addItems(self.FlashModes)
+            for text, mode in self.FlashModes:
+                self.modeComboBox.addItem(text, mode)
             self.setWindowTitle(self.tr("Restore Firmware"))
         
         msh = self.minimumSizeHint()
@@ -131,6 +137,6 @@
         return (
             self.espComboBox.currentText().lower(),
             self.sizeComboBox.currentData(),
-            self.modeComboBox.currentText(),
+            self.modeComboBox.currentData(),
             self.firmwarePicker.text(),
         )
--- a/eric6/MicroPython/EspDevices.py	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/MicroPython/EspDevices.py	Fri May 15 18:33:53 2020 +0200
@@ -191,7 +191,7 @@
         from .EspFirmwareSelectionDialog import EspFirmwareSelectionDialog
         dlg = EspFirmwareSelectionDialog()
         if dlg.exec_() == QDialog.Accepted:
-            chip, firmware, _ = dlg.getData()
+            chip, firmware, flashMode, _ = dlg.getData()
             if chip == "esp8266":
                 flashAddress = "0x0000"
             elif chip == "esp32":
@@ -205,9 +205,15 @@
                 "--chip", chip,
                 "--port", self.microPython.getCurrentPort(),
                 "write_flash",
+            ]
+            if flashMode:
+                flashArgs.extend([
+                    "--flash_mode", flashMode
+                ])
+            flashArgs.extend([
                 flashAddress,
                 firmware,
-            ]
+            ])
             dlg = E5ProcessDialog(self.tr("'esptool write_flash' Output"),
                                   self.tr("Flash MicroPython Firmware"),
                                   showProgress=True)
@@ -223,16 +229,22 @@
         from .EspFirmwareSelectionDialog import EspFirmwareSelectionDialog
         dlg = EspFirmwareSelectionDialog(addon=True)
         if dlg.exec_() == QDialog.Accepted:
-            chip, firmware, flashAddress = dlg.getData()
+            chip, firmware, flashMode, flashAddress = dlg.getData()
             flashArgs = [
                 "-u",
                 "-m", "esptool",
                 "--chip", chip,
                 "--port", self.microPython.getCurrentPort(),
                 "write_flash",
+            ]
+            if flashMode:
+                flashArgs.extend([
+                    "--flash_mode", flashMode
+                ])
+            flashArgs.extend([
                 flashAddress.lower(),
                 firmware,
-            ]
+            ])
             dlg = E5ProcessDialog(self.tr("'esptool write_flash' Output"),
                                   self.tr("Flash Additional Firmware"),
                                   showProgress=True)
--- a/eric6/MicroPython/EspFirmwareSelectionDialog.py	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/MicroPython/EspFirmwareSelectionDialog.py	Fri May 15 18:33:53 2020 +0200
@@ -25,6 +25,14 @@
     Class implementing a dialog to select the ESP chip type and the firmware to
     be flashed.
     """
+    FlashModes = (
+        ("", ""),
+        ("Quad I/O", "qio"),
+        ("Quad Output", "qout"),
+        ("Dual I/O", "dio"),
+        ("Dual Output", "dout"),
+    )
+    
     def __init__(self, addon=False, parent=None):
         """
         Constructor
@@ -45,6 +53,9 @@
         
         self.espComboBox.addItems(["", "ESP32", "ESP8266"])
         
+        for text, mode in self.FlashModes:
+            self.modeComboBox.addItem(text, mode)
+        
         if addon:
             self.__validator = QRegularExpressionValidator(
                 QRegularExpression(r"[0-9a-fA-F]{0,4}")
@@ -93,8 +104,8 @@
         Public method to get the entered data.
         
         @return tuple containing the selected chip type, the path of the
-            firmware file and the flash address
-        @rtype tuple of (str, str, str)
+            firmware file, the flash mode and the flash address
+        @rtype tuple of (str, str, str, str)
         """
         if self.__addon:
             address = self.addressEdit.text()
@@ -104,5 +115,6 @@
         return (
             self.espComboBox.currentText().lower(),
             self.firmwarePicker.text(),
+            self.modeComboBox.currentData(),
             address,
         )
--- a/eric6/MicroPython/EspFirmwareSelectionDialog.ui	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/MicroPython/EspFirmwareSelectionDialog.ui	Fri May 15 18:33:53 2020 +0200
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>500</width>
-    <height>114</height>
+    <height>140</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -43,7 +43,7 @@
        </property>
        <property name="sizeHint" stdset="0">
         <size>
-         <width>40</width>
+         <width>318</width>
          <height>20</height>
         </size>
        </property>
@@ -67,13 +67,37 @@
       </widget>
      </item>
      <item row="2" column="0">
+      <widget class="QLabel" name="label_3">
+       <property name="toolTip">
+        <string/>
+       </property>
+       <property name="text">
+        <string>Flash Mode:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QComboBox" name="modeComboBox">
+       <property name="toolTip">
+        <string>Select the flash mode</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="2">
+      <widget class="QLabel" name="label_4">
+       <property name="text">
+        <string>Leave empty to use the default mode.</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="0">
       <widget class="QLabel" name="addressLabel">
        <property name="text">
         <string>Address:</string>
        </property>
       </widget>
      </item>
-     <item row="2" column="1" colspan="2">
+     <item row="3" column="1" colspan="2">
       <widget class="E5ClearableLineEdit" name="addressEdit">
        <property name="toolTip">
         <string>Enter the flash addres in the hexadecimal form</string>
@@ -113,6 +137,7 @@
  <tabstops>
   <tabstop>espComboBox</tabstop>
   <tabstop>firmwarePicker</tabstop>
+  <tabstop>modeComboBox</tabstop>
   <tabstop>addressEdit</tabstop>
  </tabstops>
  <resources/>
--- a/eric6/MicroPython/MicroPythonWidget.py	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/MicroPython/MicroPythonWidget.py	Fri May 15 18:33:53 2020 +0200
@@ -327,10 +327,10 @@
         self.deviceTypeComboBox.setCurrentIndex(index)
         
         if unknownDevices:
-            ignoredUnknown = set([
+            ignoredUnknown = {
                 tuple(d)
                 for d in Preferences.getMicroPython("IgnoredUnknownDevices")
-            ])
+            }
             newUnknownDevices = set(unknownDevices) - ignoredUnknown
             if newUnknownDevices:
                 button = E5MessageBox.information(
--- a/eric6/Utilities/__init__.py	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/Utilities/__init__.py	Fri May 15 18:33:53 2020 +0200
@@ -1746,7 +1746,7 @@
         os.path.join(qtDir, generateQtToolName(toolname)) + ".app",
     ]
     if toolname == "designer":
-        # support the standalone Qt Designer installer from 
+        # support the standalone Qt Designer installer from
         # https://build-system.fman.io/qt-designer-download
         designer = "Qt Designer.app"
         bundles.extend([
--- a/eric6/WebBrowser/Tools/WebIconProvider.py	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/WebBrowser/Tools/WebIconProvider.py	Fri May 15 18:33:53 2020 +0200
@@ -161,7 +161,7 @@
         @rtype str
         """
         return url.toString(QUrl.PrettyDecoded | QUrl.RemoveUserInfo |
-                            QUrl.RemoveFragment| QUrl.RemovePath)
+                            QUrl.RemoveFragment | QUrl.RemovePath)
     
     def iconForUrl(self, url):
         """
--- a/eric6/i18n/eric6_cs.ts	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/i18n/eric6_cs.ts	Fri May 15 18:33:53 2020 +0200
@@ -2960,15 +2960,20 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>Select Path to Device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>&lt;p&gt;The device volume &lt;b&gt;{0}&lt;/b&gt; could not be found. Is the device in &apos;bootloader&apos; mode and mounted?&lt;/p&gt; &lt;p&gt;Alternatively select the &quot;Manual Select&quot; entry and enter the path to the device below.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="52"/>
+        <source>Manual Select</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ClearPrivateDataDialog</name>
@@ -17547,17 +17552,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="66"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="71"/>
         <source>Firmware Files (*.img);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="72"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="77"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="76"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="82"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17575,12 +17580,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="211"/>
+        <location filename="../MicroPython/EspDevices.py" line="217"/>
         <source>Flash MicroPython Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="236"/>
+        <location filename="../MicroPython/EspDevices.py" line="248"/>
         <source>Flash Additional Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17605,7 +17610,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>&apos;esptool write_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17615,47 +17620,47 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>Show Chip ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>Show Flash ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>Show MAC Address</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>&apos;esptool read_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>&apos;esptool chip_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>&apos;esptool flash_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>&apos;esptool read_mac&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17688,20 +17693,35 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="72"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="96"/>
         <source>Address:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="79"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="103"/>
         <source>Enter the flash addres in the hexadecimal form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="43"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="51"/>
         <source>Firmware Files (*.bin);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="75"/>
+        <source>Flash Mode:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="82"/>
+        <source>Select the flash mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="89"/>
+        <source>Leave empty to use the default mode.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ExceptionLogger</name>
Binary file eric6/i18n/eric6_de.qm has changed
--- a/eric6/i18n/eric6_de.ts	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/i18n/eric6_de.ts	Fri May 15 18:33:53 2020 +0200
@@ -2927,15 +2927,20 @@
         <translation>CircuitPython Firmwaredateien (*.uf2);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>Select Path to Device</source>
         <translation>Wähle den Pfad zum Gerät</translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>&lt;p&gt;The device volume &lt;b&gt;{0}&lt;/b&gt; could not be found. Is the device in &apos;bootloader&apos; mode and mounted?&lt;/p&gt; &lt;p&gt;Alternatively select the &quot;Manual Select&quot; entry and enter the path to the device below.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Der Datenträger des Gerätes &lt;b&gt;{0}&lt;/b&gt; konnte nicht gefunden werden. Ist das Gerät im&apos;Bootloader&apos; Modus und eingehängt?&lt;/p&gt;&lt;p&gt;Wähle alternativ den Eintrag &quot;Manuelle Auswahl&quot; und gib unten den Pfad zum Gerät ein.&lt;/p&gt;</translation>
     </message>
+    <message>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="52"/>
+        <source>Manual Select</source>
+        <translation>Manuelle Auswahl</translation>
+    </message>
 </context>
 <context>
     <name>ClearPrivateDataDialog</name>
@@ -17014,17 +17019,17 @@
         <translation>Gib den Pfad der Firmwaredatei ein</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="66"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="71"/>
         <source>Firmware Files (*.img);;All Files (*)</source>
         <translation>Firmwaredateien (*.img);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="72"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="77"/>
         <source>Backup Firmware</source>
         <translation>Firmware sichern</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="76"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="82"/>
         <source>Restore Firmware</source>
         <translation>Firmware zurückspielen</translation>
     </message>
@@ -17042,12 +17047,12 @@
         <translation>Flash löschen</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="211"/>
+        <location filename="../MicroPython/EspDevices.py" line="217"/>
         <source>Flash MicroPython Firmware</source>
         <translation>MicroPython Firmware flashen</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="236"/>
+        <location filename="../MicroPython/EspDevices.py" line="248"/>
         <source>Flash Additional Firmware</source>
         <translation>Zusätzliche Firmware flashen</translation>
     </message>
@@ -17072,7 +17077,7 @@
         <translation>Chiptyp &apos;{0}&apos; wird nicht unterstützt.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>&apos;esptool write_flash&apos; Output</source>
         <translation>Ausgabe von &apos;esptool write_flash&apos;</translation>
     </message>
@@ -17082,47 +17087,47 @@
         <translation>Gerät zurücksetzen</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>Backup Firmware</source>
         <translation>Firmware sichern</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>Restore Firmware</source>
         <translation>Firmware zurückspielen</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>Show Chip ID</source>
         <translation>Chip ID anzeigen</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>Show Flash ID</source>
         <translation>Flash ID anzeigen</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>Show MAC Address</source>
         <translation>MAC Adresse anzeigen</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>&apos;esptool read_flash&apos; Output</source>
         <translation>Ausgabe von &apos;esptool read_flash&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>&apos;esptool chip_id&apos; Output</source>
         <translation>Ausgabe von &apos;esptool chip_id&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>&apos;esptool flash_id&apos; Output</source>
         <translation>Ausgabe von &apos;esptool flash_id&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>&apos;esptool read_mac&apos; Output</source>
         <translation>Ausgabe von &apos;esptool read_mac&apos;</translation>
     </message>
@@ -17155,20 +17160,35 @@
         <translation>Gib den Pfad der Firmwaredatei ein</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="72"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="96"/>
         <source>Address:</source>
         <translation>Adresse:</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="79"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="103"/>
         <source>Enter the flash addres in the hexadecimal form</source>
         <translation>Gib die Flash Speicheradresse in Hexadezimalform ein</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="43"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="51"/>
         <source>Firmware Files (*.bin);;All Files (*)</source>
         <translation>Firmwaredateien (*.bin);;Alle Dateien (*)</translation>
     </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="75"/>
+        <source>Flash Mode:</source>
+        <translation>Flash Modus:</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="82"/>
+        <source>Select the flash mode</source>
+        <translation>Wähle den Flashmodus aus</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="89"/>
+        <source>Leave empty to use the default mode.</source>
+        <translation>Leer lassen, um den Standardmodus zu verwenden.</translation>
+    </message>
 </context>
 <context>
     <name>ExceptionLogger</name>
--- a/eric6/i18n/eric6_empty.ts	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/i18n/eric6_empty.ts	Fri May 15 18:33:53 2020 +0200
@@ -2894,15 +2894,20 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>Select Path to Device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>&lt;p&gt;The device volume &lt;b&gt;{0}&lt;/b&gt; could not be found. Is the device in &apos;bootloader&apos; mode and mounted?&lt;/p&gt; &lt;p&gt;Alternatively select the &quot;Manual Select&quot; entry and enter the path to the device below.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="52"/>
+        <source>Manual Select</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ClearPrivateDataDialog</name>
@@ -16893,17 +16898,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="66"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="71"/>
         <source>Firmware Files (*.img);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="72"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="77"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="76"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="82"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -16921,12 +16926,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="211"/>
+        <location filename="../MicroPython/EspDevices.py" line="217"/>
         <source>Flash MicroPython Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="236"/>
+        <location filename="../MicroPython/EspDevices.py" line="248"/>
         <source>Flash Additional Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -16951,7 +16956,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>&apos;esptool write_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -16961,47 +16966,47 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>Show Chip ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>Show Flash ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>Show MAC Address</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>&apos;esptool read_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>&apos;esptool chip_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>&apos;esptool flash_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>&apos;esptool read_mac&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17034,20 +17039,35 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="72"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="96"/>
         <source>Address:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="79"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="103"/>
         <source>Enter the flash addres in the hexadecimal form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="43"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="51"/>
         <source>Firmware Files (*.bin);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="75"/>
+        <source>Flash Mode:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="82"/>
+        <source>Select the flash mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="89"/>
+        <source>Leave empty to use the default mode.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ExceptionLogger</name>
--- a/eric6/i18n/eric6_en.ts	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/i18n/eric6_en.ts	Fri May 15 18:33:53 2020 +0200
@@ -2894,15 +2894,20 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>Select Path to Device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>&lt;p&gt;The device volume &lt;b&gt;{0}&lt;/b&gt; could not be found. Is the device in &apos;bootloader&apos; mode and mounted?&lt;/p&gt; &lt;p&gt;Alternatively select the &quot;Manual Select&quot; entry and enter the path to the device below.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="52"/>
+        <source>Manual Select</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ClearPrivateDataDialog</name>
@@ -16907,17 +16912,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="66"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="71"/>
         <source>Firmware Files (*.img);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="72"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="77"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="76"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="82"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -16935,12 +16940,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="211"/>
+        <location filename="../MicroPython/EspDevices.py" line="217"/>
         <source>Flash MicroPython Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="236"/>
+        <location filename="../MicroPython/EspDevices.py" line="248"/>
         <source>Flash Additional Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -16965,7 +16970,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>&apos;esptool write_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -16975,47 +16980,47 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>Show Chip ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>Show Flash ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>Show MAC Address</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>&apos;esptool read_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>&apos;esptool chip_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>&apos;esptool flash_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>&apos;esptool read_mac&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17048,20 +17053,35 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="72"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="96"/>
         <source>Address:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="79"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="103"/>
         <source>Enter the flash addres in the hexadecimal form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="43"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="51"/>
         <source>Firmware Files (*.bin);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="75"/>
+        <source>Flash Mode:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="82"/>
+        <source>Select the flash mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="89"/>
+        <source>Leave empty to use the default mode.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ExceptionLogger</name>
--- a/eric6/i18n/eric6_es.ts	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/i18n/eric6_es.ts	Fri May 15 18:33:53 2020 +0200
@@ -2924,15 +2924,20 @@
         <translation>Archivos de Firmware CircuitPython (*.uf2);;Todos los Archivos (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>Select Path to Device</source>
         <translation>Seleccionar Ruta al Dispositivo</translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>&lt;p&gt;The device volume &lt;b&gt;{0}&lt;/b&gt; could not be found. Is the device in &apos;bootloader&apos; mode and mounted?&lt;/p&gt; &lt;p&gt;Alternatively select the &quot;Manual Select&quot; entry and enter the path to the device below.&lt;/p&gt;</source>
         <translation>&lt;p&gt;El volumen de dispositivo &lt;b&gt;{0}&lt;/b&gt; no se puede encontrar. ¿Está dicho dispositivo en modo &apos;cargador de arranque&apos; y montado?&lt;/p&gt; &lt;p&gt;Alternativamente, seleccionar la opción &quot;Selección Manuale introducir la ruta al dispositivo más abajo.&lt;/p&gt;</translation>
     </message>
+    <message>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="52"/>
+        <source>Manual Select</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ClearPrivateDataDialog</name>
@@ -17018,17 +17023,17 @@
         <translation>Introducir la ruta del archivo de firmware</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="66"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="71"/>
         <source>Firmware Files (*.img);;All Files (*)</source>
         <translation>Archivos de Firmware (*.img);;Todos los Archivos (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="72"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="77"/>
         <source>Backup Firmware</source>
         <translation>Copia de Seguridad de Firmware</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="76"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="82"/>
         <source>Restore Firmware</source>
         <translation>Restaurar Firmware</translation>
     </message>
@@ -17046,12 +17051,12 @@
         <translation>Borrar Flash</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="211"/>
+        <location filename="../MicroPython/EspDevices.py" line="217"/>
         <source>Flash MicroPython Firmware</source>
         <translation>Flash MicroPython Firmware</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="236"/>
+        <location filename="../MicroPython/EspDevices.py" line="248"/>
         <source>Flash Additional Firmware</source>
         <translation>Flash Additional Firmware</translation>
     </message>
@@ -17076,7 +17081,7 @@
         <translation>Tipo de chip no soportado &apos;{0}&apos;.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>&apos;esptool write_flash&apos; Output</source>
         <translation>Salida de &apos;esptool write_flash&apos;</translation>
     </message>
@@ -17086,47 +17091,47 @@
         <translation>Resetear Dispositivo</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>Backup Firmware</source>
         <translation>Copia de Seguridad de Firmware</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>Restore Firmware</source>
         <translation>Restaurar Firmware</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>Show Chip ID</source>
         <translation>Mostrar ID de Chip</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>Show Flash ID</source>
         <translation>Mostrar ID de Flash</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>Show MAC Address</source>
         <translation>Mostrar dirección MAC</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>&apos;esptool read_flash&apos; Output</source>
         <translation>Salida de &apos;esptool read_flash&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>&apos;esptool chip_id&apos; Output</source>
         <translation>Salida de &apos;esptool chip_id&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>&apos;esptool flash_id&apos; Output</source>
         <translation>Salida de &apos;esptool flash_id&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>&apos;esptool read_mac&apos; Output</source>
         <translation>Salida de &apos;esptool read_mac&apos;</translation>
     </message>
@@ -17159,20 +17164,35 @@
         <translation>Introducir la ruta del archivo patch</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="72"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="96"/>
         <source>Address:</source>
         <translation>Dirección:</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="79"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="103"/>
         <source>Enter the flash addres in the hexadecimal form</source>
         <translation>Introducir la dirección del flash en forma hexadecimal</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="43"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="51"/>
         <source>Firmware Files (*.bin);;All Files (*)</source>
         <translation>Archivos de Firmware (*.bin);;Todos los Archivos (*)</translation>
     </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="75"/>
+        <source>Flash Mode:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="82"/>
+        <source>Select the flash mode</source>
+        <translation type="unfinished">Seleccionar el modo de flash</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="89"/>
+        <source>Leave empty to use the default mode.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ExceptionLogger</name>
--- a/eric6/i18n/eric6_fr.ts	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/i18n/eric6_fr.ts	Fri May 15 18:33:53 2020 +0200
@@ -2973,15 +2973,20 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>Select Path to Device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>&lt;p&gt;The device volume &lt;b&gt;{0}&lt;/b&gt; could not be found. Is the device in &apos;bootloader&apos; mode and mounted?&lt;/p&gt; &lt;p&gt;Alternatively select the &quot;Manual Select&quot; entry and enter the path to the device below.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="52"/>
+        <source>Manual Select</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ClearPrivateDataDialog</name>
@@ -17491,17 +17496,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="66"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="71"/>
         <source>Firmware Files (*.img);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="72"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="77"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="76"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="82"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17519,12 +17524,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="211"/>
+        <location filename="../MicroPython/EspDevices.py" line="217"/>
         <source>Flash MicroPython Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="236"/>
+        <location filename="../MicroPython/EspDevices.py" line="248"/>
         <source>Flash Additional Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17549,7 +17554,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>&apos;esptool write_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17559,47 +17564,47 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>Show Chip ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>Show Flash ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>Show MAC Address</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>&apos;esptool read_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>&apos;esptool chip_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>&apos;esptool flash_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>&apos;esptool read_mac&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17632,20 +17637,35 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="72"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="96"/>
         <source>Address:</source>
         <translation type="unfinished">Adresse:</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="79"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="103"/>
         <source>Enter the flash addres in the hexadecimal form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="43"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="51"/>
         <source>Firmware Files (*.bin);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="75"/>
+        <source>Flash Mode:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="82"/>
+        <source>Select the flash mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="89"/>
+        <source>Leave empty to use the default mode.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ExceptionLogger</name>
--- a/eric6/i18n/eric6_it.ts	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/i18n/eric6_it.ts	Fri May 15 18:33:53 2020 +0200
@@ -2983,15 +2983,20 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>Select Path to Device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>&lt;p&gt;The device volume &lt;b&gt;{0}&lt;/b&gt; could not be found. Is the device in &apos;bootloader&apos; mode and mounted?&lt;/p&gt; &lt;p&gt;Alternatively select the &quot;Manual Select&quot; entry and enter the path to the device below.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="52"/>
+        <source>Manual Select</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ClearPrivateDataDialog</name>
@@ -17896,17 +17901,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="66"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="71"/>
         <source>Firmware Files (*.img);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="72"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="77"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="76"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="82"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17924,12 +17929,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="211"/>
+        <location filename="../MicroPython/EspDevices.py" line="217"/>
         <source>Flash MicroPython Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="236"/>
+        <location filename="../MicroPython/EspDevices.py" line="248"/>
         <source>Flash Additional Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17954,7 +17959,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>&apos;esptool write_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17964,47 +17969,47 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>Show Chip ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>Show Flash ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>Show MAC Address</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>&apos;esptool read_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>&apos;esptool chip_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>&apos;esptool flash_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>&apos;esptool read_mac&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -18037,20 +18042,35 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="72"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="96"/>
         <source>Address:</source>
         <translation type="unfinished">Indirizzo:</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="79"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="103"/>
         <source>Enter the flash addres in the hexadecimal form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="43"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="51"/>
         <source>Firmware Files (*.bin);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="75"/>
+        <source>Flash Mode:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="82"/>
+        <source>Select the flash mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="89"/>
+        <source>Leave empty to use the default mode.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ExceptionLogger</name>
--- a/eric6/i18n/eric6_pt.ts	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/i18n/eric6_pt.ts	Fri May 15 18:33:53 2020 +0200
@@ -2981,15 +2981,20 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>Select Path to Device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>&lt;p&gt;The device volume &lt;b&gt;{0}&lt;/b&gt; could not be found. Is the device in &apos;bootloader&apos; mode and mounted?&lt;/p&gt; &lt;p&gt;Alternatively select the &quot;Manual Select&quot; entry and enter the path to the device below.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="52"/>
+        <source>Manual Select</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ClearPrivateDataDialog</name>
@@ -17812,17 +17817,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="66"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="71"/>
         <source>Firmware Files (*.img);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="72"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="77"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="76"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="82"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17840,12 +17845,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="211"/>
+        <location filename="../MicroPython/EspDevices.py" line="217"/>
         <source>Flash MicroPython Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="236"/>
+        <location filename="../MicroPython/EspDevices.py" line="248"/>
         <source>Flash Additional Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17870,7 +17875,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>&apos;esptool write_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17880,47 +17885,47 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>Show Chip ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>Show Flash ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>Show MAC Address</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>&apos;esptool read_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>&apos;esptool chip_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>&apos;esptool flash_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>&apos;esptool read_mac&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17953,20 +17958,35 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="72"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="96"/>
         <source>Address:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="79"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="103"/>
         <source>Enter the flash addres in the hexadecimal form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="43"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="51"/>
         <source>Firmware Files (*.bin);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="75"/>
+        <source>Flash Mode:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="82"/>
+        <source>Select the flash mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="89"/>
+        <source>Leave empty to use the default mode.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ExceptionLogger</name>
--- a/eric6/i18n/eric6_ru.ts	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/i18n/eric6_ru.ts	Fri May 15 18:33:53 2020 +0200
@@ -2926,15 +2926,20 @@
         <translation>Файлы прошивки CircuitPython (*.uf2);;Все файлы (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>Select Path to Device</source>
         <translation>Выберите путь к устройству</translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>&lt;p&gt;The device volume &lt;b&gt;{0}&lt;/b&gt; could not be found. Is the device in &apos;bootloader&apos; mode and mounted?&lt;/p&gt; &lt;p&gt;Alternatively select the &quot;Manual Select&quot; entry and enter the path to the device below.&lt;/p&gt;</source>
         <translation>&lt;p&gt;Не удается найти том устройства &lt;b&gt;{0}&lt;/b&gt;. Находится ли устройство в режиме &apos;bootloader&apos; и подмонтировано ли?&lt;/p&gt;&lt;p&gt;В качестве альтернативы, выберите пункт &quot;Manual Select&quot; и ниже введите путь к устройству.&lt;/p&gt;</translation>
     </message>
+    <message>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="52"/>
+        <source>Manual Select</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ClearPrivateDataDialog</name>
@@ -17053,17 +17058,17 @@
         <translation>Введите путь к файлу прошивки</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="66"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="71"/>
         <source>Firmware Files (*.img);;All Files (*)</source>
         <translation>Файлы прошивки (*.img);;Все файлы (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="72"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="77"/>
         <source>Backup Firmware</source>
         <translation>Резервное копирование прошивки</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="76"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="82"/>
         <source>Restore Firmware</source>
         <translation>Восстановить прошивку</translation>
     </message>
@@ -17081,12 +17086,12 @@
         <translation>Очистить Flash-память</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="211"/>
+        <location filename="../MicroPython/EspDevices.py" line="217"/>
         <source>Flash MicroPython Firmware</source>
         <translation>Прошивка Flash MicroPython</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="236"/>
+        <location filename="../MicroPython/EspDevices.py" line="248"/>
         <source>Flash Additional Firmware</source>
         <translation>Дополнительная прошивка Flash</translation>
     </message>
@@ -17111,7 +17116,7 @@
         <translation>Неподдерживаемый тип чипа &apos;{0}&apos;.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>&apos;esptool write_flash&apos; Output</source>
         <translation>Вывод команды &apos;esptool write_flash&apos;</translation>
     </message>
@@ -17121,47 +17126,47 @@
         <translation>Сбросить устройство</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>Backup Firmware</source>
         <translation>Резервное копирование прошивки</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>Restore Firmware</source>
         <translation>Восстановить прошивку</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>Show Chip ID</source>
         <translation>Показать ID чипа</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>Show Flash ID</source>
         <translation>Показать ID Flash</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>Show MAC Address</source>
         <translation>Показать MAC-адрес</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>&apos;esptool read_flash&apos; Output</source>
         <translation>Вывод команды &apos;esptool read_flash&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>&apos;esptool chip_id&apos; Output</source>
         <translation>Вывод команды &apos;esptool chip_id&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>&apos;esptool flash_id&apos; Output</source>
         <translation>Вывод команды &apos;esptool flash_id&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>&apos;esptool read_mac&apos; Output</source>
         <translation>Вывод команды &apos;esptool read_mac&apos;</translation>
     </message>
@@ -17194,20 +17199,35 @@
         <translation>Введите путь к файлу прошивки</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="72"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="96"/>
         <source>Address:</source>
         <translation>Адрес:</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="79"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="103"/>
         <source>Enter the flash addres in the hexadecimal form</source>
         <translation>Введите адрес flash-памяти в шестнадцатеричной форме</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="43"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="51"/>
         <source>Firmware Files (*.bin);;All Files (*)</source>
         <translation>Файлы прошивки (* .bin);;Все файлы (*)</translation>
     </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="75"/>
+        <source>Flash Mode:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="82"/>
+        <source>Select the flash mode</source>
+        <translation type="unfinished">Выберите режим прошивки</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="89"/>
+        <source>Leave empty to use the default mode.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ExceptionLogger</name>
--- a/eric6/i18n/eric6_tr.ts	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/i18n/eric6_tr.ts	Fri May 15 18:33:53 2020 +0200
@@ -2960,15 +2960,20 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>Select Path to Device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>&lt;p&gt;The device volume &lt;b&gt;{0}&lt;/b&gt; could not be found. Is the device in &apos;bootloader&apos; mode and mounted?&lt;/p&gt; &lt;p&gt;Alternatively select the &quot;Manual Select&quot; entry and enter the path to the device below.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="52"/>
+        <source>Manual Select</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ClearPrivateDataDialog</name>
@@ -17490,17 +17495,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="66"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="71"/>
         <source>Firmware Files (*.img);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="72"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="77"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="76"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="82"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17518,12 +17523,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="211"/>
+        <location filename="../MicroPython/EspDevices.py" line="217"/>
         <source>Flash MicroPython Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="236"/>
+        <location filename="../MicroPython/EspDevices.py" line="248"/>
         <source>Flash Additional Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17548,7 +17553,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>&apos;esptool write_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17558,47 +17563,47 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>Show Chip ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>Show Flash ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>Show MAC Address</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>&apos;esptool read_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>&apos;esptool chip_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>&apos;esptool flash_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>&apos;esptool read_mac&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17631,20 +17636,35 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="72"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="96"/>
         <source>Address:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="79"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="103"/>
         <source>Enter the flash addres in the hexadecimal form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="43"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="51"/>
         <source>Firmware Files (*.bin);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="75"/>
+        <source>Flash Mode:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="82"/>
+        <source>Select the flash mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="89"/>
+        <source>Leave empty to use the default mode.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ExceptionLogger</name>
--- a/eric6/i18n/eric6_zh_CN.ts	Tue May 12 17:32:16 2020 +0200
+++ b/eric6/i18n/eric6_zh_CN.ts	Fri May 15 18:33:53 2020 +0200
@@ -2971,15 +2971,20 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>Select Path to Device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="96"/>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="97"/>
         <source>&lt;p&gt;The device volume &lt;b&gt;{0}&lt;/b&gt; could not be found. Is the device in &apos;bootloader&apos; mode and mounted?&lt;/p&gt; &lt;p&gt;Alternatively select the &quot;Manual Select&quot; entry and enter the path to the device below.&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/CircuitPythonFirmwareSelectionDialog.py" line="52"/>
+        <source>Manual Select</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ClearPrivateDataDialog</name>
@@ -17560,17 +17565,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="66"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="71"/>
         <source>Firmware Files (*.img);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="72"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="77"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="76"/>
+        <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.py" line="82"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17588,12 +17593,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="211"/>
+        <location filename="../MicroPython/EspDevices.py" line="217"/>
         <source>Flash MicroPython Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="236"/>
+        <location filename="../MicroPython/EspDevices.py" line="248"/>
         <source>Flash Additional Firmware</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17618,7 +17623,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>&apos;esptool write_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17628,47 +17633,47 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>Backup Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="297"/>
+        <location filename="../MicroPython/EspDevices.py" line="309"/>
         <source>Restore Firmware</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>Show Chip ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>Show Flash ID</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>Show MAC Address</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="263"/>
+        <location filename="../MicroPython/EspDevices.py" line="275"/>
         <source>&apos;esptool read_flash&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="315"/>
+        <location filename="../MicroPython/EspDevices.py" line="327"/>
         <source>&apos;esptool chip_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="332"/>
+        <location filename="../MicroPython/EspDevices.py" line="344"/>
         <source>&apos;esptool flash_id&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspDevices.py" line="349"/>
+        <location filename="../MicroPython/EspDevices.py" line="361"/>
         <source>&apos;esptool read_mac&apos; Output</source>
         <translation type="unfinished"></translation>
     </message>
@@ -17701,20 +17706,35 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="72"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="96"/>
         <source>Address:</source>
         <translation type="unfinished">地址:</translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="79"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="103"/>
         <source>Enter the flash addres in the hexadecimal form</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="43"/>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.py" line="51"/>
         <source>Firmware Files (*.bin);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="75"/>
+        <source>Flash Mode:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="82"/>
+        <source>Select the flash mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="89"/>
+        <source>Leave empty to use the default mode.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>ExceptionLogger</name>

eric ide

mercurial