MicrobitDevices: modified the MicroPython flashing routine and the saving of scripts to the device.

Sat, 19 Oct 2019 20:32:26 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 19 Oct 2019 20:32:26 +0200
changeset 7299
a22b87b46128
parent 7298
9d15757d06ac
child 7300
7622b6330e62

MicrobitDevices: modified the MicroPython flashing routine and the saving of scripts to the device.

eric6/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
eric6/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.MicroPython.MicrobitDevices.html file | annotate | diff | comparison | revisions
eric6/MicroPython/MicrobitDevices.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
Binary file eric6/Documentation/Help/source.qch has changed
--- a/eric6/Documentation/Help/source.qhp	Sun Oct 13 15:30:10 2019 +0200
+++ b/eric6/Documentation/Help/source.qhp	Sat Oct 19 20:32:26 2019 +0200
@@ -9775,12 +9775,10 @@
       <keyword name="MicroPythonWidget.setActionButtons" id="MicroPythonWidget.setActionButtons" ref="eric6.MicroPython.MicroPythonWidget.html#MicroPythonWidget.setActionButtons" />
       <keyword name="MicrobitDevice" id="MicrobitDevice" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice" />
       <keyword name="MicrobitDevice (Constructor)" id="MicrobitDevice (Constructor)" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.__init__" />
-      <keyword name="MicrobitDevice.__flashCustomMicroPython" id="MicrobitDevice.__flashCustomMicroPython" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.__flashCustomMicroPython" />
       <keyword name="MicrobitDevice.__flashMicroPython" id="MicrobitDevice.__flashMicroPython" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.__flashMicroPython" />
-      <keyword name="MicrobitDevice.__flashScript" id="MicrobitDevice.__flashScript" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.__flashScript" />
-      <keyword name="MicrobitDevice.__installUflashTool" id="MicrobitDevice.__installUflashTool" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.__installUflashTool" />
       <keyword name="MicrobitDevice.__resetDevice" id="MicrobitDevice.__resetDevice" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.__resetDevice" />
       <keyword name="MicrobitDevice.__saveMain" id="MicrobitDevice.__saveMain" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.__saveMain" />
+      <keyword name="MicrobitDevice.__saveScriptToDevice" id="MicrobitDevice.__saveScriptToDevice" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.__saveScriptToDevice" />
       <keyword name="MicrobitDevice.addDeviceMenuEntries" id="MicrobitDevice.addDeviceMenuEntries" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.addDeviceMenuEntries" />
       <keyword name="MicrobitDevice.canRunScript" id="MicrobitDevice.canRunScript" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.canRunScript" />
       <keyword name="MicrobitDevice.canStartFileManager" id="MicrobitDevice.canStartFileManager" ref="eric6.MicroPython.MicrobitDevices.html#MicrobitDevice.canStartFileManager" />
--- a/eric6/Documentation/Source/eric6.MicroPython.MicrobitDevices.html	Sun Oct 13 15:30:10 2019 +0200
+++ b/eric6/Documentation/Source/eric6.MicroPython.MicrobitDevices.html	Sat Oct 19 20:32:26 2019 +0200
@@ -73,22 +73,10 @@
 <td>Constructor</td>
 </tr>
 <tr>
-<td><a href="#MicrobitDevice.__flashCustomMicroPython">__flashCustomMicroPython</a></td>
-<td>Private slot to flash a custom MicroPython firmware to the device.</td>
-</tr>
-<tr>
 <td><a href="#MicrobitDevice.__flashMicroPython">__flashMicroPython</a></td>
 <td>Private slot to flash the default MicroPython firmware to the device.</td>
 </tr>
 <tr>
-<td><a href="#MicrobitDevice.__flashScript">__flashScript</a></td>
-<td>Private slot to flash the current script onto the selected device.</td>
-</tr>
-<tr>
-<td><a href="#MicrobitDevice.__installUflashTool">__installUflashTool</a></td>
-<td>Private slot to install the uflash package via pip.</td>
-</tr>
-<tr>
 <td><a href="#MicrobitDevice.__resetDevice">__resetDevice</a></td>
 <td>Private slot to reset the connected device.</td>
 </tr>
@@ -97,6 +85,10 @@
 <td>Private slot to copy the current script as 'main.py' onto the connected device.</td>
 </tr>
 <tr>
+<td><a href="#MicrobitDevice.__saveScriptToDevice">__saveScriptToDevice</a></td>
+<td>Private method to save the current script onto the connected device.</td>
+</tr>
+<tr>
 <td><a href="#MicrobitDevice.addDeviceMenuEntries">addDeviceMenuEntries</a></td>
 <td>Public method to add device specific entries to the given menu.</td>
 </tr>
@@ -169,13 +161,6 @@
 reference to the parent object
 </dd>
 </dl>
-<a NAME="MicrobitDevice.__flashCustomMicroPython" ID="MicrobitDevice.__flashCustomMicroPython"></a>
-<h4>MicrobitDevice.__flashCustomMicroPython</h4>
-<b>__flashCustomMicroPython</b>(<i></i>)
-
-<p>
-        Private slot to flash a custom MicroPython firmware to the device.
-</p>
 <a NAME="MicrobitDevice.__flashMicroPython" ID="MicrobitDevice.__flashMicroPython"></a>
 <h4>MicrobitDevice.__flashMicroPython</h4>
 <b>__flashMicroPython</b>(<i></i>)
@@ -183,20 +168,6 @@
 <p>
         Private slot to flash the default MicroPython firmware to the device.
 </p>
-<a NAME="MicrobitDevice.__flashScript" ID="MicrobitDevice.__flashScript"></a>
-<h4>MicrobitDevice.__flashScript</h4>
-<b>__flashScript</b>(<i></i>)
-
-<p>
-        Private slot to flash the current script onto the selected device.
-</p>
-<a NAME="MicrobitDevice.__installUflashTool" ID="MicrobitDevice.__installUflashTool"></a>
-<h4>MicrobitDevice.__installUflashTool</h4>
-<b>__installUflashTool</b>(<i></i>)
-
-<p>
-        Private slot to install the uflash package via pip.
-</p>
 <a NAME="MicrobitDevice.__resetDevice" ID="MicrobitDevice.__resetDevice"></a>
 <h4>MicrobitDevice.__resetDevice</h4>
 <b>__resetDevice</b>(<i></i>)
@@ -212,6 +183,21 @@
         Private slot to copy the current script as 'main.py' onto the
         connected device.
 </p>
+<a NAME="MicrobitDevice.__saveScriptToDevice" ID="MicrobitDevice.__saveScriptToDevice"></a>
+<h4>MicrobitDevice.__saveScriptToDevice</h4>
+<b>__saveScriptToDevice</b>(<i>scriptName=""</i>)
+
+<p>
+        Private method to save the current script onto the connected
+        device.
+</p>
+<dl>
+
+<dt><i>scriptName</i> (str)</dt>
+<dd>
+name of the file on the device
+</dd>
+</dl>
 <a NAME="MicrobitDevice.addDeviceMenuEntries" ID="MicrobitDevice.addDeviceMenuEntries"></a>
 <h4>MicrobitDevice.addDeviceMenuEntries</h4>
 <b>addDeviceMenuEntries</b>(<i>menu</i>)
--- a/eric6/MicroPython/MicrobitDevices.py	Sun Oct 13 15:30:10 2019 +0200
+++ b/eric6/MicroPython/MicrobitDevices.py	Sat Oct 19 20:32:26 2019 +0200
@@ -8,17 +8,17 @@
 """
 
 
-import sys
 import os
+import shutil
 
 from PyQt5.QtCore import pyqtSlot, QStandardPaths
+from PyQt5.QtWidgets import QInputDialog, QLineEdit
 
 from .MicroPythonDevices import MicroPythonDevice
 from .MicroPythonWidget import HAS_QTCHART
 
 from E5Gui import E5MessageBox, E5FileDialog
 from E5Gui.E5Application import e5App
-from E5Gui.E5ProcessDialog import E5ProcessDialog
 
 import Utilities
 import Preferences
@@ -160,17 +160,14 @@
         """
         connected = self.microPython.isConnected()
         
-        act = menu.addAction(self.tr("Flash Default MicroPython Firmware"),
+        act = menu.addAction(self.tr("Flash MicroPython Firmware"),
                              self.__flashMicroPython)
         act.setEnabled(not connected)
-        act = menu.addAction(self.tr("Flash Custom MicroPython Firmware"),
-                             self.__flashCustomMicroPython)
-        act.setEnabled(not connected)
         menu.addSeparator()
-        act = menu.addAction(self.tr("Flash Script"), self.__flashScript)
+        act = menu.addAction(self.tr("Save Script"), self.__saveScriptToDevice)
         act.setToolTip(self.tr(
-            "Flash the current script to the selected device."))
-        act.setEnabled(not connected)
+            "Save the current script to the selected device"))
+        act.setEnabled(connected)
         act = menu.addAction(self.tr("Save Script as 'main.py'"),
                              self.__saveMain)
         act.setToolTip(self.tr(
@@ -179,87 +176,35 @@
         menu.addSeparator()
         act = menu.addAction(self.tr("Reset micro:bit"), self.__resetDevice)
         act.setEnabled(connected)
-        menu.addSeparator()
-        menu.addAction(self.tr("Install 'uflash'"), self.__installUflashTool)
     
     @pyqtSlot()
     def __flashMicroPython(self):
         """
         Private slot to flash the default MicroPython firmware to the device.
         """
-        flashArgs = [
-            "-u",
-            "-m", "uflash",
-        ]
-        dlg = E5ProcessDialog(self.tr("'uflash' Output"),
-                              self.tr("Flash Default MicroPython Firmware"))
-        res = dlg.startProcess(sys.executable, flashArgs)
-        if res:
-            dlg.exec_()
-    
-    @pyqtSlot()
-    def __flashCustomMicroPython(self):
-        """
-        Private slot to flash a custom MicroPython firmware to the device.
-        """
-        downloadsPath = QStandardPaths.standardLocations(
-            QStandardPaths.DownloadLocation)[0]
-        firmware = E5FileDialog.getOpenFileName(
-            self.microPython,
-            self.tr("Flash Custom MicroPython Firmware"),
-            downloadsPath,
-            self.tr("MicroPython Firmware Files (*.hex);;All Files (*)"))
-        if firmware and os.path.exists(firmware):
-            flashArgs = [
-                "-u",
-                "-m", "uflash",
-                "--runtime", firmware,
-            ]
-            dlg = E5ProcessDialog(
-                self.tr("'uflash' Output"),
-                self.tr("Flash Default MicroPython Firmware"))
-            res = dlg.startProcess(sys.executable, flashArgs)
-            if res:
-                dlg.exec_()
-    
-    @pyqtSlot()
-    def __flashScript(self):
-        """
-        Private slot to flash the current script onto the selected device.
-        """
-        aw = e5App().getObject("ViewManager").activeWindow()
-        if not aw:
-            return
-        
-        if not (aw.isPyFile() or aw.isMicroPythonFile()):
-            yes = E5MessageBox.yesNo(
+        # Attempts to find the path on the filesystem that represents the
+        # plugged in micro:bit board in maintenance mode.
+        deviceDirectory = Utilities.findVolume("MAINTENANCE")
+        if not deviceDirectory:
+            # BBC micro:bit is not ready or not mounted
+            E5MessageBox.critical(
                 self.microPython,
-                self.tr("Flash Script"),
-                self.tr("""The current editor does not contain a Python"""
-                        """ script. Flash it anyway?"""))
-            if not yes:
-                return
-        
-        script = aw.text().strip()
-        if not script:
-            E5MessageBox.warning(
+                self.tr("Flash MicroPython Firmware"),
+                self.tr(
+                    'The BBC micro:bit is not ready for flashing. See the'
+                    ' <a href="https://microbit.org/guide/firmware/">'
+                    'micro:bit web site</a> for details.'
+                ))
+        else:
+            downloadsPath = QStandardPaths.standardLocations(
+                QStandardPaths.DownloadLocation)[0]
+            firmware = E5FileDialog.getOpenFileName(
                 self.microPython,
-                self.tr("Flash Script"),
-                self.tr("""The script is empty. Aborting."""))
-            return
-        
-        if aw.checkDirty():
-            filename = aw.getFileName()
-            flashArgs = [
-                "-u",
-                "-m", "uflash",
-                filename,
-            ]
-            dlg = E5ProcessDialog(self.tr("'uflash' Output"),
-                                  self.tr("Flash Script"))
-            res = dlg.startProcess(sys.executable, flashArgs)
-            if res:
-                dlg.exec_()
+                self.tr("Flash MicroPython Firmware"),
+                downloadsPath,
+                self.tr("MicroPython Firmware Files (*.hex);;All Files (*)"))
+            if firmware and os.path.exists(firmware):
+                shutil.copy2(firmware, deviceDirectory)
     
     @pyqtSlot()
     def __saveMain(self):
@@ -267,14 +212,30 @@
         Private slot to copy the current script as 'main.py' onto the
         connected device.
         """
+        self.__saveScriptToDevice("main.py")
+    
+    @pyqtSlot()
+    def __saveScriptToDevice(self, scriptName=""):
+        """
+        Private method to save the current script onto the connected
+        device.
+        
+        @param scriptName name of the file on the device
+        @type str
+        """
         aw = e5App().getObject("ViewManager").activeWindow()
         if not aw:
             return
         
+        if scriptName:
+            title = self.tr("Save Script as '{0}'").format(scriptName)
+        else:
+            title = self.tr("Save Script")
+        
         if not (aw.isPyFile() or aw.isMicroPythonFile()):
             yes = E5MessageBox.yesNo(
                 self.microPython,
-                self.tr("Save Script as 'main.py'"),
+                title,
                 self.tr("""The current editor does not contain a Python"""
                         """ script. Write it anyway?"""))
             if not yes:
@@ -284,12 +245,25 @@
         if not script:
             E5MessageBox.warning(
                 self.microPython,
-                self.tr("Save Script as 'main.py'"),
+                title,
                 self.tr("""The script is empty. Aborting."""))
             return
         
+        if not scriptName:
+            scriptName = os.path.basename(aw.getFileName())
+            scriptName, ok = QInputDialog.getText(
+                self.microPython,
+                title,
+                self.tr("Enter a file name on the device:"),
+                QLineEdit.Normal,
+                scriptName)
+            if not ok or not bool(scriptName):
+                return
+            
+            title = self.tr("Save Script as '{0}'").format(scriptName)
+        
         commands = [
-            "fd = open('main.py', 'wb')",
+            "fd = open('{0}', 'wb')".format(scriptName),
             "f = fd.write",
         ]
         for line in script.splitlines():
@@ -299,16 +273,13 @@
         if err:
             E5MessageBox.critical(
                 self.microPython,
-                self.tr("Save Script as 'main.py'"),
+                title,
                 self.tr("""<p>The script could not be saved to the"""
                         """ device.</p><p>Reason: {0}</p>""")
                 .format(err.decode("utf-8")))
         
         # reset the device
-        self.microPython.commandsInterface().execute([
-            "import microbit",
-            "microbit.reset()",
-        ])
+        self.__resetDevice()
     
     @pyqtSlot()
     def __resetDevice(self):
@@ -320,14 +291,6 @@
             "microbit.reset()",
         ])
     
-    @pyqtSlot()
-    def __installUflashTool(self):
-        """
-        Private slot to install the uflash package via pip.
-        """
-        pip = e5App().getObject("Pip")
-        pip.installPackages(["uflash"], interpreter=sys.executable)
-    
     def getDocumentationUrl(self):
         """
         Public method to get the device documentation URL.
--- a/eric6/i18n/eric6_cs.ts	Sun Oct 13 15:30:10 2019 +0200
+++ b/eric6/i18n/eric6_cs.ts	Sat Oct 19 20:32:26 2019 +0200
@@ -46598,75 +46598,70 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="218"/>
-        <source>Flash Default MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
-        <source>Flash Custom MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>Flash Script</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
-        <source>Flash the current script to the selected device.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
         <source>Save Script as &apos;main.py&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="176"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="173"/>
         <source>Save the current script as &apos;main.py&apos; on the connected device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="180"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="177"/>
         <source>Reset micro:bit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="183"/>
-        <source>Install &apos;uflash&apos;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>&apos;uflash&apos; Output</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
         <source>MicroPython Firmware Files (*.hex);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="235"/>
-        <source>The current editor does not contain a Python script. Flash it anyway?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="285"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="246"/>
         <source>The script is empty. Aborting.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="275"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="236"/>
         <source>The current editor does not contain a Python script. Write it anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="274"/>
         <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="233"/>
+        <source>Save Script</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="190"/>
+        <source>The BBC micro:bit is not ready for flashing. See the &lt;a href=&quot;https://microbit.org/guide/firmware/&quot;&gt;micro:bit web site&lt;/a&gt; for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="263"/>
+        <source>Save Script as &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="254"/>
+        <source>Enter a file name on the device:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="168"/>
+        <source>Save the current script to the selected device</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MicrosoftEngine</name>
Binary file eric6/i18n/eric6_de.qm has changed
--- a/eric6/i18n/eric6_de.ts	Sun Oct 13 15:30:10 2019 +0200
+++ b/eric6/i18n/eric6_de.ts	Sat Oct 19 20:32:26 2019 +0200
@@ -44299,75 +44299,70 @@
 Bitte stelle sicher, dass das Gerät an diesem Computer angesteckt ist.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="218"/>
-        <source>Flash Default MicroPython Firmware</source>
-        <translation>Standard MicroPython Firmware flashen</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
-        <source>Flash Custom MicroPython Firmware</source>
-        <translation>Alternative MicroPython Firmware flashen</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>Flash Script</source>
-        <translation>Flash Skript</translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
-        <source>Flash the current script to the selected device.</source>
-        <translation>Flasht das aktuelle Skript auf das ausgewählte Gerät.</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
         <source>Save Script as &apos;main.py&apos;</source>
-        <translation>Speicher Skript als &apos;main.py&apos;</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="176"/>
+        <translation>Skript als &apos;main.py&apos; speichern</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="173"/>
         <source>Save the current script as &apos;main.py&apos; on the connected device</source>
         <translation>Speichert das aktuelle Skript als &apos;main.py&apos; auf das angeschlossene Gerät</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="180"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="177"/>
         <source>Reset micro:bit</source>
         <translation>micro:bit zurücksetzen</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="183"/>
-        <source>Install &apos;uflash&apos;</source>
-        <translation>&apos;uflash&apos; installieren</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>&apos;uflash&apos; Output</source>
-        <translation>&apos;uflash&apos; Ausgabe</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
         <source>MicroPython Firmware Files (*.hex);;All Files (*)</source>
         <translation>MicroPython Firmwaredateien (*.hex);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="235"/>
-        <source>The current editor does not contain a Python script. Flash it anyway?</source>
-        <translation>Der aktuelle Editor enthält kein Python Skript. Trotzdem flashen?</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="285"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="246"/>
         <source>The script is empty. Aborting.</source>
         <translation>Das Skript ist leer. Abbruch.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="275"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="236"/>
         <source>The current editor does not contain a Python script. Write it anyway?</source>
         <translation>Der aktuelle Editor enthält kein Python Skript. Trotzdem schreiben?</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="274"/>
         <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Das Skript konnte nicht auf dem Gerät gespeichert werden&lt;/p&gt;&lt;p&gt;Ursache: {0}&lt;/p&gt;</translation>
     </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation>MicroPython Firmware flashen</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="233"/>
+        <source>Save Script</source>
+        <translation>Skript speichern</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="190"/>
+        <source>The BBC micro:bit is not ready for flashing. See the &lt;a href=&quot;https://microbit.org/guide/firmware/&quot;&gt;micro:bit web site&lt;/a&gt; for details.</source>
+        <translation>Der BBC micro:bit ist nicht zum Flashen bereit. Siehe &lt;a href=&quot;https://microbit.org/guide/firmware/&quot;&gt;micro:bit Webseite&lt;/a&gt; für Details.</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="263"/>
+        <source>Save Script as &apos;{0}&apos;</source>
+        <translation>Skript als &apos;{0}&apos; speichern</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="254"/>
+        <source>Enter a file name on the device:</source>
+        <translation>Gib einen Dateinamen auf dem Gerät ein:</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="168"/>
+        <source>Save the current script to the selected device</source>
+        <translation>Speichert das aktuelle Skript auf das angeschlossene Gerät</translation>
+    </message>
 </context>
 <context>
     <name>MicrosoftEngine</name>
--- a/eric6/i18n/eric6_empty.ts	Sun Oct 13 15:30:10 2019 +0200
+++ b/eric6/i18n/eric6_empty.ts	Sat Oct 19 20:32:26 2019 +0200
@@ -44066,75 +44066,70 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="218"/>
-        <source>Flash Default MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
-        <source>Flash Custom MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>Flash Script</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
-        <source>Flash the current script to the selected device.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
         <source>Save Script as &apos;main.py&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="176"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="173"/>
         <source>Save the current script as &apos;main.py&apos; on the connected device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="180"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="177"/>
         <source>Reset micro:bit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="183"/>
-        <source>Install &apos;uflash&apos;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>&apos;uflash&apos; Output</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
         <source>MicroPython Firmware Files (*.hex);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="235"/>
-        <source>The current editor does not contain a Python script. Flash it anyway?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="285"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="246"/>
         <source>The script is empty. Aborting.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="275"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="236"/>
         <source>The current editor does not contain a Python script. Write it anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="274"/>
         <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="233"/>
+        <source>Save Script</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="190"/>
+        <source>The BBC micro:bit is not ready for flashing. See the &lt;a href=&quot;https://microbit.org/guide/firmware/&quot;&gt;micro:bit web site&lt;/a&gt; for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="263"/>
+        <source>Save Script as &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="254"/>
+        <source>Enter a file name on the device:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="168"/>
+        <source>Save the current script to the selected device</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MicrosoftEngine</name>
--- a/eric6/i18n/eric6_en.ts	Sun Oct 13 15:30:10 2019 +0200
+++ b/eric6/i18n/eric6_en.ts	Sat Oct 19 20:32:26 2019 +0200
@@ -44106,75 +44106,70 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="218"/>
-        <source>Flash Default MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
-        <source>Flash Custom MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>Flash Script</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
-        <source>Flash the current script to the selected device.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
         <source>Save Script as &apos;main.py&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="176"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="173"/>
         <source>Save the current script as &apos;main.py&apos; on the connected device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="180"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="177"/>
         <source>Reset micro:bit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="183"/>
-        <source>Install &apos;uflash&apos;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>&apos;uflash&apos; Output</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
         <source>MicroPython Firmware Files (*.hex);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="235"/>
-        <source>The current editor does not contain a Python script. Flash it anyway?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="285"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="246"/>
         <source>The script is empty. Aborting.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="275"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="236"/>
         <source>The current editor does not contain a Python script. Write it anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="274"/>
         <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="233"/>
+        <source>Save Script</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="190"/>
+        <source>The BBC micro:bit is not ready for flashing. See the &lt;a href=&quot;https://microbit.org/guide/firmware/&quot;&gt;micro:bit web site&lt;/a&gt; for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="263"/>
+        <source>Save Script as &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="254"/>
+        <source>Enter a file name on the device:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="168"/>
+        <source>Save the current script to the selected device</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MicrosoftEngine</name>
--- a/eric6/i18n/eric6_es.ts	Sun Oct 13 15:30:10 2019 +0200
+++ b/eric6/i18n/eric6_es.ts	Sat Oct 19 20:32:26 2019 +0200
@@ -44304,73 +44304,103 @@
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="218"/>
         <source>Flash Default MicroPython Firmware</source>
-        <translation>Flashear Firmware por defecto de CircuitPython</translation>
+        <translation type="obsolete">Flashear Firmware por defecto de CircuitPython</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
         <source>Flash Custom MicroPython Firmware</source>
-        <translation>Flashear Firmware personalizado de CircuitPython</translation>
+        <translation type="obsolete">Flashear Firmware personalizado de CircuitPython</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
         <source>Flash Script</source>
-        <translation>Flashear Script</translation>
+        <translation type="obsolete">Flashear Script</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
         <source>Flash the current script to the selected device.</source>
-        <translation>Flashear el archivo actual al dispositivo seleccionado.</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
+        <translation type="obsolete">Flashear el archivo actual al dispositivo seleccionado.</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
         <source>Save Script as &apos;main.py&apos;</source>
         <translation>Guardar Script como &apos;main.py&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="176"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="173"/>
         <source>Save the current script as &apos;main.py&apos; on the connected device</source>
         <translation>Guardar el script actual como &apos;main.py&apos; en el dispositivo conectado</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="180"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="177"/>
         <source>Reset micro:bit</source>
         <translation>Restablecer micro:bit</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="183"/>
         <source>Install &apos;uflash&apos;</source>
-        <translation>Instalar &apos;uflash&apos;</translation>
+        <translation type="obsolete">Instalar &apos;uflash&apos;</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
         <source>&apos;uflash&apos; Output</source>
-        <translation>Salida de &apos;uflash&apos;</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
+        <translation type="obsolete">Salida de &apos;uflash&apos;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
         <source>MicroPython Firmware Files (*.hex);;All Files (*)</source>
         <translation>Archivos de Firmware MicroPython (*.hex);;Todos los Archivos (*)</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="235"/>
         <source>The current editor does not contain a Python script. Flash it anyway?</source>
-        <translation>El editor actual no contiene un script Python. ¿Flashear de todos modos?</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="285"/>
+        <translation type="obsolete">El editor actual no contiene un script Python. ¿Flashear de todos modos?</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="246"/>
         <source>The script is empty. Aborting.</source>
         <translation>Script vacío. Abortando.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="275"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="236"/>
         <source>The current editor does not contain a Python script. Write it anyway?</source>
         <translation>El editor actual no contiene un script Python. ¿Escribir de todos modos?</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="274"/>
         <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation>&lt;p&gt;El script no se ha podido guardar al dispositivo.&lt;/p&gt;&lt;p&gt;Razón: {0}&lt;/p&gt;</translation>
     </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished">Flash MicroPython Firmware</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="233"/>
+        <source>Save Script</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="190"/>
+        <source>The BBC micro:bit is not ready for flashing. See the &lt;a href=&quot;https://microbit.org/guide/firmware/&quot;&gt;micro:bit web site&lt;/a&gt; for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="263"/>
+        <source>Save Script as &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="254"/>
+        <source>Enter a file name on the device:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="168"/>
+        <source>Save the current script to the selected device</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MicrosoftEngine</name>
--- a/eric6/i18n/eric6_fr.ts	Sun Oct 13 15:30:10 2019 +0200
+++ b/eric6/i18n/eric6_fr.ts	Sat Oct 19 20:32:26 2019 +0200
@@ -45809,75 +45809,70 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="218"/>
-        <source>Flash Default MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
-        <source>Flash Custom MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>Flash Script</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
-        <source>Flash the current script to the selected device.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
         <source>Save Script as &apos;main.py&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="176"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="173"/>
         <source>Save the current script as &apos;main.py&apos; on the connected device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="180"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="177"/>
         <source>Reset micro:bit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="183"/>
-        <source>Install &apos;uflash&apos;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>&apos;uflash&apos; Output</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
         <source>MicroPython Firmware Files (*.hex);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="235"/>
-        <source>The current editor does not contain a Python script. Flash it anyway?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="285"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="246"/>
         <source>The script is empty. Aborting.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="275"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="236"/>
         <source>The current editor does not contain a Python script. Write it anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="274"/>
         <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="233"/>
+        <source>Save Script</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="190"/>
+        <source>The BBC micro:bit is not ready for flashing. See the &lt;a href=&quot;https://microbit.org/guide/firmware/&quot;&gt;micro:bit web site&lt;/a&gt; for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="263"/>
+        <source>Save Script as &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="254"/>
+        <source>Enter a file name on the device:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="168"/>
+        <source>Save the current script to the selected device</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MicrosoftEngine</name>
--- a/eric6/i18n/eric6_it.ts	Sun Oct 13 15:30:10 2019 +0200
+++ b/eric6/i18n/eric6_it.ts	Sat Oct 19 20:32:26 2019 +0200
@@ -47867,75 +47867,70 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="218"/>
-        <source>Flash Default MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
-        <source>Flash Custom MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>Flash Script</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
-        <source>Flash the current script to the selected device.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
         <source>Save Script as &apos;main.py&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="176"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="173"/>
         <source>Save the current script as &apos;main.py&apos; on the connected device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="180"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="177"/>
         <source>Reset micro:bit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="183"/>
-        <source>Install &apos;uflash&apos;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>&apos;uflash&apos; Output</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
         <source>MicroPython Firmware Files (*.hex);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="235"/>
-        <source>The current editor does not contain a Python script. Flash it anyway?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="285"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="246"/>
         <source>The script is empty. Aborting.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="275"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="236"/>
         <source>The current editor does not contain a Python script. Write it anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="274"/>
         <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="233"/>
+        <source>Save Script</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="190"/>
+        <source>The BBC micro:bit is not ready for flashing. See the &lt;a href=&quot;https://microbit.org/guide/firmware/&quot;&gt;micro:bit web site&lt;/a&gt; for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="263"/>
+        <source>Save Script as &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="254"/>
+        <source>Enter a file name on the device:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="168"/>
+        <source>Save the current script to the selected device</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MicrosoftEngine</name>
--- a/eric6/i18n/eric6_pt.ts	Sun Oct 13 15:30:10 2019 +0200
+++ b/eric6/i18n/eric6_pt.ts	Sat Oct 19 20:32:26 2019 +0200
@@ -47376,75 +47376,70 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="218"/>
-        <source>Flash Default MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
-        <source>Flash Custom MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>Flash Script</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
-        <source>Flash the current script to the selected device.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
         <source>Save Script as &apos;main.py&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="176"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="173"/>
         <source>Save the current script as &apos;main.py&apos; on the connected device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="180"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="177"/>
         <source>Reset micro:bit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="183"/>
-        <source>Install &apos;uflash&apos;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>&apos;uflash&apos; Output</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
         <source>MicroPython Firmware Files (*.hex);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="235"/>
-        <source>The current editor does not contain a Python script. Flash it anyway?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="285"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="246"/>
         <source>The script is empty. Aborting.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="275"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="236"/>
         <source>The current editor does not contain a Python script. Write it anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="274"/>
         <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="233"/>
+        <source>Save Script</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="190"/>
+        <source>The BBC micro:bit is not ready for flashing. See the &lt;a href=&quot;https://microbit.org/guide/firmware/&quot;&gt;micro:bit web site&lt;/a&gt; for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="263"/>
+        <source>Save Script as &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="254"/>
+        <source>Enter a file name on the device:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="168"/>
+        <source>Save the current script to the selected device</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MicrosoftEngine</name>
--- a/eric6/i18n/eric6_ru.ts	Sun Oct 13 15:30:10 2019 +0200
+++ b/eric6/i18n/eric6_ru.ts	Sat Oct 19 20:32:26 2019 +0200
@@ -44368,73 +44368,103 @@
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="218"/>
         <source>Flash Default MicroPython Firmware</source>
-        <translation>Прошивка стандартной Flash MicroPython</translation>
+        <translation type="obsolete">Прошивка стандартной Flash MicroPython</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
         <source>Flash Custom MicroPython Firmware</source>
-        <translation>Прошивка пользовательской Flash MicroPython</translation>
+        <translation type="obsolete">Прошивка пользовательской Flash MicroPython</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
         <source>Flash Script</source>
-        <translation>Скрипт для Flash</translation>
+        <translation type="obsolete">Скрипт для Flash</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
         <source>Flash the current script to the selected device.</source>
-        <translation>Передать текущий скрипт на выбранное устройство.</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
+        <translation type="obsolete">Передать текущий скрипт на выбранное устройство.</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
         <source>Save Script as &apos;main.py&apos;</source>
         <translation>Сохранить скрипт как &apos;main.py&apos;</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="176"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="173"/>
         <source>Save the current script as &apos;main.py&apos; on the connected device</source>
         <translation>Сохранить текущий скрипт как &apos;main.py&apos; на подключенном устройстве</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="180"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="177"/>
         <source>Reset micro:bit</source>
         <translation>Сброс micro:bit</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="183"/>
         <source>Install &apos;uflash&apos;</source>
-        <translation>Установить &apos;uflash&apos;</translation>
+        <translation type="obsolete">Установить &apos;uflash&apos;</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
         <source>&apos;uflash&apos; Output</source>
-        <translation>Вывод команды &apos;uflash&apos;</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
+        <translation type="obsolete">Вывод команды &apos;uflash&apos;</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
         <source>MicroPython Firmware Files (*.hex);;All Files (*)</source>
         <translation>Файлы прошивки MicroPython (*.hex);;Все файлы (*)</translation>
     </message>
     <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="235"/>
         <source>The current editor does not contain a Python script. Flash it anyway?</source>
-        <translation>Текущий редактор не содержит скрипт Python. В любом случае прошить?</translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="285"/>
+        <translation type="obsolete">Текущий редактор не содержит скрипт Python. В любом случае прошить?</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="246"/>
         <source>The script is empty. Aborting.</source>
         <translation>Скрипт пуст. Прерывание.</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="275"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="236"/>
         <source>The current editor does not contain a Python script. Write it anyway?</source>
         <translation>Текущий редактор не содержит скрипт Python. Все равно записать?</translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="274"/>
         <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation>&lt;p&gt;Не удается сохранить скрипт на устройстве.&lt;/p&gt;&lt;p&gt;Причина: {0}&lt;/p&gt;</translation>
     </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished">Прошивка Flash MicroPython</translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="233"/>
+        <source>Save Script</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="190"/>
+        <source>The BBC micro:bit is not ready for flashing. See the &lt;a href=&quot;https://microbit.org/guide/firmware/&quot;&gt;micro:bit web site&lt;/a&gt; for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="263"/>
+        <source>Save Script as &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="254"/>
+        <source>Enter a file name on the device:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="168"/>
+        <source>Save the current script to the selected device</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MicrosoftEngine</name>
--- a/eric6/i18n/eric6_tr.ts	Sun Oct 13 15:30:10 2019 +0200
+++ b/eric6/i18n/eric6_tr.ts	Sat Oct 19 20:32:26 2019 +0200
@@ -46696,75 +46696,70 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="218"/>
-        <source>Flash Default MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
-        <source>Flash Custom MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>Flash Script</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
-        <source>Flash the current script to the selected device.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
         <source>Save Script as &apos;main.py&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="176"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="173"/>
         <source>Save the current script as &apos;main.py&apos; on the connected device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="180"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="177"/>
         <source>Reset micro:bit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="183"/>
-        <source>Install &apos;uflash&apos;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>&apos;uflash&apos; Output</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
         <source>MicroPython Firmware Files (*.hex);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="235"/>
-        <source>The current editor does not contain a Python script. Flash it anyway?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="285"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="246"/>
         <source>The script is empty. Aborting.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="275"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="236"/>
         <source>The current editor does not contain a Python script. Write it anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="274"/>
         <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="233"/>
+        <source>Save Script</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="190"/>
+        <source>The BBC micro:bit is not ready for flashing. See the &lt;a href=&quot;https://microbit.org/guide/firmware/&quot;&gt;micro:bit web site&lt;/a&gt; for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="263"/>
+        <source>Save Script as &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="254"/>
+        <source>Enter a file name on the device:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="168"/>
+        <source>Save the current script to the selected device</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MicrosoftEngine</name>
--- a/eric6/i18n/eric6_zh_CN.ts	Sun Oct 13 15:30:10 2019 +0200
+++ b/eric6/i18n/eric6_zh_CN.ts	Sat Oct 19 20:32:26 2019 +0200
@@ -47206,75 +47206,70 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="218"/>
-        <source>Flash Default MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
-        <source>Flash Custom MicroPython Firmware</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>Flash Script</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="../MicroPython/MicrobitDevices.py" line="171"/>
-        <source>Flash the current script to the selected device.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
         <source>Save Script as &apos;main.py&apos;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="176"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="173"/>
         <source>Save the current script as &apos;main.py&apos; on the connected device</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="180"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="177"/>
         <source>Reset micro:bit</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="183"/>
-        <source>Install &apos;uflash&apos;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="258"/>
-        <source>&apos;uflash&apos; Output</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="207"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
         <source>MicroPython Firmware Files (*.hex);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="235"/>
-        <source>The current editor does not contain a Python script. Flash it anyway?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="285"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="246"/>
         <source>The script is empty. Aborting.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="275"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="236"/>
         <source>The current editor does not contain a Python script. Write it anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../MicroPython/MicrobitDevices.py" line="300"/>
+        <location filename="../MicroPython/MicrobitDevices.py" line="274"/>
         <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="201"/>
+        <source>Flash MicroPython Firmware</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="233"/>
+        <source>Save Script</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="190"/>
+        <source>The BBC micro:bit is not ready for flashing. See the &lt;a href=&quot;https://microbit.org/guide/firmware/&quot;&gt;micro:bit web site&lt;/a&gt; for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="263"/>
+        <source>Save Script as &apos;{0}&apos;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="254"/>
+        <source>Enter a file name on the device:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../MicroPython/MicrobitDevices.py" line="168"/>
+        <source>Save the current script to the selected device</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>MicrosoftEngine</name>

eric ide

mercurial