Reorganized the MicroPython code even more. eric7

Tue, 14 Feb 2023 18:10:30 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 14 Feb 2023 18:10:30 +0100
branch
eric7
changeset 9765
6378da868bb0
parent 9764
57496966803c
child 9766
f0e22f3a5878

Reorganized the MicroPython code even more.

eric7.epj file | annotate | diff | comparison | revisions
src/eric7/APIs/Python3/eric7.api file | annotate | diff | comparison | revisions
src/eric7/APIs/Python3/eric7.bas file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.MicroPython.Devices.DeviceBase.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.MicroPython.Devices.EspDevices.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.MicroPython.Devices.MicrobitDevices.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.MicroPython.Devices.PyBoardDevices.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.MicroPython.Devices.RP2040Devices.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.MicroPython.Devices.TeensyDevices.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.MicroPython.MicroPythonCommandsInterface.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.MicroPython.MicroPythonDeviceInterface.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.MicroPython.MicroPythonFileManager.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.MicroPython.MicroPythonFileManagerWidget.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.MicroPython.MicroPythonWidget.html file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/index-eric7.MicroPython.html file | annotate | diff | comparison | revisions
src/eric7/MicroPython/ConnectionSelectionDialog.py file | annotate | diff | comparison | revisions
src/eric7/MicroPython/Devices/CircuitPythonDevices.py file | annotate | diff | comparison | revisions
src/eric7/MicroPython/Devices/DeviceBase.py file | annotate | diff | comparison | revisions
src/eric7/MicroPython/Devices/EspDevices.py file | annotate | diff | comparison | revisions
src/eric7/MicroPython/Devices/MicrobitDevices.py file | annotate | diff | comparison | revisions
src/eric7/MicroPython/Devices/PyBoardDevices.py file | annotate | diff | comparison | revisions
src/eric7/MicroPython/Devices/RP2040Devices.py file | annotate | diff | comparison | revisions
src/eric7/MicroPython/Devices/TeensyDevices.py file | annotate | diff | comparison | revisions
src/eric7/MicroPython/Devices/__init__.py file | annotate | diff | comparison | revisions
src/eric7/MicroPython/MicroPythonCommandsInterface.py file | annotate | diff | comparison | revisions
src/eric7/MicroPython/MicroPythonDeviceInterface.py file | annotate | diff | comparison | revisions
src/eric7/MicroPython/MicroPythonFileManager.py file | annotate | diff | comparison | revisions
src/eric7/MicroPython/MicroPythonFileManagerWidget.py file | annotate | diff | comparison | revisions
src/eric7/MicroPython/MicroPythonWidget.py file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_cs.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_de.qm file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_de.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_empty.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_en.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_es.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_fr.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_it.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_pt.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_ru.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_tr.ts file | annotate | diff | comparison | revisions
src/eric7/i18n/eric7_zh_CN.ts file | annotate | diff | comparison | revisions
--- a/eric7.epj	Tue Feb 14 11:09:49 2023 +0100
+++ b/eric7.epj	Tue Feb 14 18:10:30 2023 +0100
@@ -1301,7 +1301,7 @@
       "src/eric7/MicroPython/Devices/TeensyDevices.py",
       "src/eric7/MicroPython/Devices/__init__.py",
       "src/eric7/MicroPython/IgnoredDevicesDialog.py",
-      "src/eric7/MicroPython/MicroPythonCommandsInterface.py",
+      "src/eric7/MicroPython/MicroPythonDeviceInterface.py",
       "src/eric7/MicroPython/MicroPythonFileManager.py",
       "src/eric7/MicroPython/MicroPythonFileManagerWidget.py",
       "src/eric7/MicroPython/MicroPythonFileSystemUtilities.py",
--- a/src/eric7/APIs/Python3/eric7.api	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/APIs/Python3/eric7.api	Tue Feb 14 18:10:30 2023 +0100
@@ -2586,26 +2586,45 @@
 eric7.MicroPython.Devices.CircuitPythonUpdater.ShowOutdatedDialog.ShowOutdatedDialog.getSelection?4()
 eric7.MicroPython.Devices.CircuitPythonUpdater.ShowOutdatedDialog.ShowOutdatedDialog.on_modulesList_itemChanged?4(item, column)
 eric7.MicroPython.Devices.CircuitPythonUpdater.ShowOutdatedDialog.ShowOutdatedDialog?1(devicePath, selectionMode=False, parent=None)
+eric7.MicroPython.Devices.DeviceBase.BaseDevice._getSetTimeCode?5()
+eric7.MicroPython.Devices.DeviceBase.BaseDevice._shortError?5(error)
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.addDeviceMenuEntries?4(menu)
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.canRunScript?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.canStartFileManager?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.canStartPlotter?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.canStartRepl?4()
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.cd?4(dirname)
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.checkDeviceData?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.deviceName?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.downloadFirmware?4()
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.fileSystemInfo?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.forceInterrupt?4()
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.get?4(deviceFileName, hostFileName=None)
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.getBoardInformation?4()
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.getData?4(deviceFileName)
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.getDeviceData?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.getDeviceType?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.getDocumentationUrl?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.getDownloadMenuEntries?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.getFirmwareUrl?4()
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.getModules?4()
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.getTime?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.getWorkspace?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.handleDataFlood?4()
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.hasCircuitPython?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.hasDocumentationUrl?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.hasFirmwareUrl?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.hasFlashMenuEntry?4()
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.hasTimeCommands?4()
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.lls?4(dirname="", fullstat=False, showHidden=False)
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.ls?4(dirname="")
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.mkdir?4(dirname)
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.put?4(hostFileName, deviceFileName=None)
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.putData?4(deviceFileName, content)
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.pwd?4()
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.rm?4(filename)
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.rmdir?4(dirname)
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.rmrf?4(name, recursive=False, force=False)
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.runScript?4(script)
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.selectDeviceDirectory?4(deviceDirectories)
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.sendCommands?4(commandsList)
@@ -2615,7 +2634,9 @@
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.setPlotter?4(on)
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.setRepl?4(on)
 eric7.MicroPython.Devices.DeviceBase.BaseDevice.supportsLocalFileAccess?4()
+eric7.MicroPython.Devices.DeviceBase.BaseDevice.syncTime?4(deviceType, hasCPy=False)
 eric7.MicroPython.Devices.DeviceBase.BaseDevice?1(microPythonWidget, deviceType, parent=None)
+eric7.MicroPython.Devices.EspDevices.EspDevice._getSetTimeCode?5()
 eric7.MicroPython.Devices.EspDevices.EspDevice.addDeviceMenuEntries?4(menu)
 eric7.MicroPython.Devices.EspDevices.EspDevice.canRunScript?4()
 eric7.MicroPython.Devices.EspDevices.EspDevice.canStartFileManager?4()
@@ -2659,6 +2680,7 @@
 eric7.MicroPython.Devices.GenericMicroPythonDevices.GenericMicroPythonDevice?1(microPythonWidget, deviceType, vid, pid, parent=None)
 eric7.MicroPython.Devices.GenericMicroPythonDevices.createDevice?4(microPythonWidget, deviceType, vid, pid, boardName, serialNumber)
 eric7.MicroPython.Devices.IgnoredBoards?7
+eric7.MicroPython.Devices.MicrobitDevices.MicrobitDevice._getSetTimeCode?5()
 eric7.MicroPython.Devices.MicrobitDevices.MicrobitDevice.addDeviceMenuEntries?4(menu)
 eric7.MicroPython.Devices.MicrobitDevices.MicrobitDevice.canRunScript?4()
 eric7.MicroPython.Devices.MicrobitDevices.MicrobitDevice.canStartFileManager?4()
@@ -2670,12 +2692,16 @@
 eric7.MicroPython.Devices.MicrobitDevices.MicrobitDevice.getDownloadMenuEntries?4()
 eric7.MicroPython.Devices.MicrobitDevices.MicrobitDevice.hasFlashMenuEntry?4()
 eric7.MicroPython.Devices.MicrobitDevices.MicrobitDevice.hasTimeCommands?4()
+eric7.MicroPython.Devices.MicrobitDevices.MicrobitDevice.lls?4(dirname="", fullstat=False, showHidden=False)
+eric7.MicroPython.Devices.MicrobitDevices.MicrobitDevice.ls?4(dirname="")
+eric7.MicroPython.Devices.MicrobitDevices.MicrobitDevice.pwd?4()
 eric7.MicroPython.Devices.MicrobitDevices.MicrobitDevice.runScript?4(script)
 eric7.MicroPython.Devices.MicrobitDevices.MicrobitDevice.setButtons?4()
 eric7.MicroPython.Devices.MicrobitDevices.MicrobitDevice?1(microPythonWidget, deviceType, serialNumber, parent=None)
 eric7.MicroPython.Devices.MicrobitDevices.createDevice?4(microPythonWidget, deviceType, vid, pid, boardName, serialNumber)
 eric7.MicroPython.Devices.PyBoardDevices.PyBoardDevice.DeviceVolumeName?7
 eric7.MicroPython.Devices.PyBoardDevices.PyBoardDevice.FlashInstructionsURL?7
+eric7.MicroPython.Devices.PyBoardDevices.PyBoardDevice._getSetTimeCode?5()
 eric7.MicroPython.Devices.PyBoardDevices.PyBoardDevice.addDeviceMenuEntries?4(menu)
 eric7.MicroPython.Devices.PyBoardDevices.PyBoardDevice.canRunScript?4()
 eric7.MicroPython.Devices.PyBoardDevices.PyBoardDevice.canStartFileManager?4()
@@ -2692,6 +2718,7 @@
 eric7.MicroPython.Devices.PyBoardDevices.PyBoardDevice.supportsLocalFileAccess?4()
 eric7.MicroPython.Devices.PyBoardDevices.PyBoardDevice?1(microPythonWidget, deviceType, parent=None)
 eric7.MicroPython.Devices.PyBoardDevices.createDevice?4(microPythonWidget, deviceType, vid, pid, boardName, serialNumber)
+eric7.MicroPython.Devices.RP2040Devices.RP2040Device._getSetTimeCode?5()
 eric7.MicroPython.Devices.RP2040Devices.RP2040Device.addDeviceMenuEntries?4(menu)
 eric7.MicroPython.Devices.RP2040Devices.RP2040Device.canRunScript?4()
 eric7.MicroPython.Devices.RP2040Devices.RP2040Device.canStartFileManager?4()
@@ -2707,6 +2734,7 @@
 eric7.MicroPython.Devices.RP2040Devices.RP2040Device?1(microPythonWidget, deviceType, parent=None)
 eric7.MicroPython.Devices.RP2040Devices.createDevice?4(microPythonWidget, deviceType, vid, pid, boardName, serialNumber)
 eric7.MicroPython.Devices.SupportedBoards?7
+eric7.MicroPython.Devices.TeensyDevices.TeensyDevice._getSetTimeCode?5()
 eric7.MicroPython.Devices.TeensyDevices.TeensyDevice.addDeviceMenuEntries?4(menu)
 eric7.MicroPython.Devices.TeensyDevices.TeensyDevice.canRunScript?4()
 eric7.MicroPython.Devices.TeensyDevices.TeensyDevice.canStartFileManager?4()
@@ -2726,36 +2754,17 @@
 eric7.MicroPython.Devices.getSupportedDevices?4()
 eric7.MicroPython.IgnoredDevicesDialog.IgnoredDevicesDialog.getDevices?4()
 eric7.MicroPython.IgnoredDevicesDialog.IgnoredDevicesDialog?1(deviceList, parent=None)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.cd?4(dirname)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.connectToDevice?4(port)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.dataReceived?7
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.disconnectFromDevice?4()
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.execute?4(commands)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.executeAsync?4(commandsList)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.executeAsyncFinished?7
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.fileSystemInfo?4()
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.get?4(deviceFileName, hostFileName=None)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.getBoardInformation?4()
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.getData?4(deviceFileName)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.getDeviceData?4()
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.getModules?4()
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.getTime?4()
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.handlePreferencesChanged?4()
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.isConnected?4()
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.lls?4(dirname="", fullstat=False, showHidden=False)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.ls?4(dirname="")
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.mkdir?4(dirname)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.probeDevice?4()
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.put?4(hostFileName, deviceFileName=None)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.putData?4(deviceFileName, content)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.pwd?4()
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.remainingTask?4()
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.rm?4(filename)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.rmdir?4(dirname)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.rmrf?4(name, recursive=False, force=False)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.syncTime?4(deviceType, hasCPy=False)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface.write?4(data)
-eric7.MicroPython.MicroPythonCommandsInterface.MicroPythonCommandsInterface?1(parent=None)
+eric7.MicroPython.MicroPythonDeviceInterface.MicroPythonDeviceInterface.connectToDevice?4(port)
+eric7.MicroPython.MicroPythonDeviceInterface.MicroPythonDeviceInterface.dataReceived?7
+eric7.MicroPython.MicroPythonDeviceInterface.MicroPythonDeviceInterface.disconnectFromDevice?4()
+eric7.MicroPython.MicroPythonDeviceInterface.MicroPythonDeviceInterface.execute?4(commands)
+eric7.MicroPython.MicroPythonDeviceInterface.MicroPythonDeviceInterface.executeAsync?4(commandsList)
+eric7.MicroPython.MicroPythonDeviceInterface.MicroPythonDeviceInterface.executeAsyncFinished?7
+eric7.MicroPython.MicroPythonDeviceInterface.MicroPythonDeviceInterface.handlePreferencesChanged?4()
+eric7.MicroPython.MicroPythonDeviceInterface.MicroPythonDeviceInterface.isConnected?4()
+eric7.MicroPython.MicroPythonDeviceInterface.MicroPythonDeviceInterface.probeDevice?4()
+eric7.MicroPython.MicroPythonDeviceInterface.MicroPythonDeviceInterface.write?4(data)
+eric7.MicroPython.MicroPythonDeviceInterface.MicroPythonDeviceInterface?1(parent=None)
 eric7.MicroPython.MicroPythonFileManager.MicroPythonFileManager.cd?4(dirname)
 eric7.MicroPython.MicroPythonFileManager.MicroPythonFileManager.createDirectoryDone?7
 eric7.MicroPython.MicroPythonFileManager.MicroPythonFileManager.currentDir?7
@@ -2781,7 +2790,7 @@
 eric7.MicroPython.MicroPythonFileManager.MicroPythonFileManager.rsync?4(hostDirectory, deviceDirectory, mirror=True, localDevice=False)
 eric7.MicroPython.MicroPythonFileManager.MicroPythonFileManager.rsyncDone?7
 eric7.MicroPython.MicroPythonFileManager.MicroPythonFileManager.rsyncProgressMessage?7
-eric7.MicroPython.MicroPythonFileManager.MicroPythonFileManager?1(commandsInterface, parent=None)
+eric7.MicroPython.MicroPythonFileManager.MicroPythonFileManager?1(device, parent=None)
 eric7.MicroPython.MicroPythonFileManagerWidget.MicroPythonFileManagerWidget.on_deviceFileTreeWidget_itemActivated?4(item, column)
 eric7.MicroPython.MicroPythonFileManagerWidget.MicroPythonFileManagerWidget.on_deviceFileTreeWidget_itemSelectionChanged?4()
 eric7.MicroPython.MicroPythonFileManagerWidget.MicroPythonFileManagerWidget.on_deviceHomeButton_clicked?4()
@@ -2802,7 +2811,7 @@
 eric7.MicroPython.MicroPythonFileManagerWidget.MicroPythonFileManagerWidget.on_syncButton_clicked?4()
 eric7.MicroPython.MicroPythonFileManagerWidget.MicroPythonFileManagerWidget.start?4()
 eric7.MicroPython.MicroPythonFileManagerWidget.MicroPythonFileManagerWidget.stop?4()
-eric7.MicroPython.MicroPythonFileManagerWidget.MicroPythonFileManagerWidget?1(commandsInterface, deviceWithLocalAccess, parent=None)
+eric7.MicroPython.MicroPythonFileManagerWidget.MicroPythonFileManagerWidget?1(device, parent=None)
 eric7.MicroPython.MicroPythonFileSystemUtilities.MPY_EPOCH?7
 eric7.MicroPython.MicroPythonFileSystemUtilities.decoratedName?4(name, mode, isDir=False)
 eric7.MicroPython.MicroPythonFileSystemUtilities.fstat?4(filename)
@@ -2837,8 +2846,8 @@
 eric7.MicroPython.MicroPythonWidget.MicroPythonWidget.ManualMarker?7
 eric7.MicroPython.MicroPythonWidget.MicroPythonWidget.ZoomMax?7
 eric7.MicroPython.MicroPythonWidget.MicroPythonWidget.ZoomMin?7
-eric7.MicroPython.MicroPythonWidget.MicroPythonWidget.commandsInterface?4()
 eric7.MicroPython.MicroPythonWidget.MicroPythonWidget.dataReceived?7
+eric7.MicroPython.MicroPythonWidget.MicroPythonWidget.deviceInterface?4()
 eric7.MicroPython.MicroPythonWidget.MicroPythonWidget.eventFilter?4(obj, evt)
 eric7.MicroPython.MicroPythonWidget.MicroPythonWidget.getCurrentBoard?4()
 eric7.MicroPython.MicroPythonWidget.MicroPythonWidget.getCurrentPort?4()
--- a/src/eric7/APIs/Python3/eric7.bas	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/APIs/Python3/eric7.bas	Tue Feb 14 18:10:30 2023 +0100
@@ -649,7 +649,7 @@
 MermaidPreprocessor Preprocessor
 MessageBoxWizard QObject
 MessageBoxWizardDialog QDialog Ui_MessageBoxWizardDialog
-MicroPythonCommandsInterface QObject
+MicroPythonDeviceInterface QObject
 MicroPythonFileManager QObject
 MicroPythonFileManagerWidget QWidget Ui_MicroPythonFileManagerWidget
 MicroPythonGraphWidget QWidget
Binary file src/eric7/Documentation/Help/source.qch has changed
--- a/src/eric7/Documentation/Help/source.qhp	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/Documentation/Help/source.qhp	Tue Feb 14 18:10:30 2023 +0100
@@ -294,7 +294,7 @@
             <section title="eric7.MicroPython.BoardDataDialog" ref="eric7.MicroPython.BoardDataDialog.html" />
             <section title="eric7.MicroPython.ConnectionSelectionDialog" ref="eric7.MicroPython.ConnectionSelectionDialog.html" />
             <section title="eric7.MicroPython.IgnoredDevicesDialog" ref="eric7.MicroPython.IgnoredDevicesDialog.html" />
-            <section title="eric7.MicroPython.MicroPythonCommandsInterface" ref="eric7.MicroPython.MicroPythonCommandsInterface.html" />
+            <section title="eric7.MicroPython.MicroPythonDeviceInterface" ref="eric7.MicroPython.MicroPythonDeviceInterface.html" />
             <section title="eric7.MicroPython.MicroPythonFileManager" ref="eric7.MicroPython.MicroPythonFileManager.html" />
             <section title="eric7.MicroPython.MicroPythonFileManagerWidget" ref="eric7.MicroPython.MicroPythonFileManagerWidget.html" />
             <section title="eric7.MicroPython.MicroPythonFileSystemUtilities" ref="eric7.MicroPython.MicroPythonFileSystemUtilities.html" />
@@ -2044,26 +2044,46 @@
       <keyword name="BackgroundService.shutdown" id="BackgroundService.shutdown" ref="eric7.Utilities.BackgroundService.html#BackgroundService.shutdown" />
       <keyword name="BaseDevice" id="BaseDevice" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice" />
       <keyword name="BaseDevice (Constructor)" id="BaseDevice (Constructor)" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.__init__" />
+      <keyword name="BaseDevice.__getDeviceData" id="BaseDevice.__getDeviceData" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.__getDeviceData" />
+      <keyword name="BaseDevice._getSetTimeCode" id="BaseDevice._getSetTimeCode" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice._getSetTimeCode" />
+      <keyword name="BaseDevice._shortError" id="BaseDevice._shortError" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice._shortError" />
       <keyword name="BaseDevice.addDeviceMenuEntries" id="BaseDevice.addDeviceMenuEntries" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.addDeviceMenuEntries" />
       <keyword name="BaseDevice.canRunScript" id="BaseDevice.canRunScript" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.canRunScript" />
       <keyword name="BaseDevice.canStartFileManager" id="BaseDevice.canStartFileManager" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.canStartFileManager" />
       <keyword name="BaseDevice.canStartPlotter" id="BaseDevice.canStartPlotter" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.canStartPlotter" />
       <keyword name="BaseDevice.canStartRepl" id="BaseDevice.canStartRepl" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.canStartRepl" />
+      <keyword name="BaseDevice.cd" id="BaseDevice.cd" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.cd" />
       <keyword name="BaseDevice.checkDeviceData" id="BaseDevice.checkDeviceData" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.checkDeviceData" />
       <keyword name="BaseDevice.deviceName" id="BaseDevice.deviceName" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.deviceName" />
       <keyword name="BaseDevice.downloadFirmware" id="BaseDevice.downloadFirmware" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.downloadFirmware" />
+      <keyword name="BaseDevice.fileSystemInfo" id="BaseDevice.fileSystemInfo" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.fileSystemInfo" />
       <keyword name="BaseDevice.forceInterrupt" id="BaseDevice.forceInterrupt" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.forceInterrupt" />
+      <keyword name="BaseDevice.get" id="BaseDevice.get" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.get" />
+      <keyword name="BaseDevice.getBoardInformation" id="BaseDevice.getBoardInformation" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.getBoardInformation" />
+      <keyword name="BaseDevice.getData" id="BaseDevice.getData" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.getData" />
       <keyword name="BaseDevice.getDeviceData" id="BaseDevice.getDeviceData" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.getDeviceData" />
       <keyword name="BaseDevice.getDeviceType" id="BaseDevice.getDeviceType" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.getDeviceType" />
       <keyword name="BaseDevice.getDocumentationUrl" id="BaseDevice.getDocumentationUrl" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.getDocumentationUrl" />
       <keyword name="BaseDevice.getDownloadMenuEntries" id="BaseDevice.getDownloadMenuEntries" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.getDownloadMenuEntries" />
       <keyword name="BaseDevice.getFirmwareUrl" id="BaseDevice.getFirmwareUrl" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.getFirmwareUrl" />
+      <keyword name="BaseDevice.getModules" id="BaseDevice.getModules" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.getModules" />
+      <keyword name="BaseDevice.getTime" id="BaseDevice.getTime" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.getTime" />
       <keyword name="BaseDevice.getWorkspace" id="BaseDevice.getWorkspace" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.getWorkspace" />
       <keyword name="BaseDevice.handleDataFlood" id="BaseDevice.handleDataFlood" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.handleDataFlood" />
+      <keyword name="BaseDevice.hasCircuitPython" id="BaseDevice.hasCircuitPython" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.hasCircuitPython" />
       <keyword name="BaseDevice.hasDocumentationUrl" id="BaseDevice.hasDocumentationUrl" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.hasDocumentationUrl" />
       <keyword name="BaseDevice.hasFirmwareUrl" id="BaseDevice.hasFirmwareUrl" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.hasFirmwareUrl" />
       <keyword name="BaseDevice.hasFlashMenuEntry" id="BaseDevice.hasFlashMenuEntry" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.hasFlashMenuEntry" />
       <keyword name="BaseDevice.hasTimeCommands" id="BaseDevice.hasTimeCommands" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.hasTimeCommands" />
+      <keyword name="BaseDevice.lls" id="BaseDevice.lls" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.lls" />
+      <keyword name="BaseDevice.ls" id="BaseDevice.ls" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.ls" />
+      <keyword name="BaseDevice.mkdir" id="BaseDevice.mkdir" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.mkdir" />
+      <keyword name="BaseDevice.put" id="BaseDevice.put" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.put" />
+      <keyword name="BaseDevice.putData" id="BaseDevice.putData" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.putData" />
+      <keyword name="BaseDevice.pwd" id="BaseDevice.pwd" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.pwd" />
+      <keyword name="BaseDevice.rm" id="BaseDevice.rm" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.rm" />
+      <keyword name="BaseDevice.rmdir" id="BaseDevice.rmdir" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.rmdir" />
+      <keyword name="BaseDevice.rmrf" id="BaseDevice.rmrf" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.rmrf" />
       <keyword name="BaseDevice.runScript" id="BaseDevice.runScript" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.runScript" />
       <keyword name="BaseDevice.selectDeviceDirectory" id="BaseDevice.selectDeviceDirectory" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.selectDeviceDirectory" />
       <keyword name="BaseDevice.sendCommands" id="BaseDevice.sendCommands" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.sendCommands" />
@@ -2073,6 +2093,7 @@
       <keyword name="BaseDevice.setPlotter" id="BaseDevice.setPlotter" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.setPlotter" />
       <keyword name="BaseDevice.setRepl" id="BaseDevice.setRepl" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.setRepl" />
       <keyword name="BaseDevice.supportsLocalFileAccess" id="BaseDevice.supportsLocalFileAccess" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.supportsLocalFileAccess" />
+      <keyword name="BaseDevice.syncTime" id="BaseDevice.syncTime" ref="eric7.MicroPython.Devices.DeviceBase.html#BaseDevice.syncTime" />
       <keyword name="BaseDocstringGenerator" id="BaseDocstringGenerator" ref="eric7.QScintilla.DocstringGenerator.BaseDocstringGenerator.html#BaseDocstringGenerator" />
       <keyword name="BaseDocstringGenerator (Constructor)" id="BaseDocstringGenerator (Constructor)" ref="eric7.QScintilla.DocstringGenerator.BaseDocstringGenerator.html#BaseDocstringGenerator.__init__" />
       <keyword name="BaseDocstringGenerator (Module)" id="BaseDocstringGenerator (Module)" ref="eric7.QScintilla.DocstringGenerator.BaseDocstringGenerator.html" />
@@ -6102,6 +6123,7 @@
       <keyword name="EspDevice.__showFirmwareVersions" id="EspDevice.__showFirmwareVersions" ref="eric7.MicroPython.Devices.EspDevices.html#EspDevice.__showFirmwareVersions" />
       <keyword name="EspDevice.__showFlashID" id="EspDevice.__showFlashID" ref="eric7.MicroPython.Devices.EspDevices.html#EspDevice.__showFlashID" />
       <keyword name="EspDevice.__showMACAddress" id="EspDevice.__showMACAddress" ref="eric7.MicroPython.Devices.EspDevices.html#EspDevice.__showMACAddress" />
+      <keyword name="EspDevice._getSetTimeCode" id="EspDevice._getSetTimeCode" ref="eric7.MicroPython.Devices.EspDevices.html#EspDevice._getSetTimeCode" />
       <keyword name="EspDevice.addDeviceMenuEntries" id="EspDevice.addDeviceMenuEntries" ref="eric7.MicroPython.Devices.EspDevices.html#EspDevice.addDeviceMenuEntries" />
       <keyword name="EspDevice.canRunScript" id="EspDevice.canRunScript" ref="eric7.MicroPython.Devices.EspDevices.html#EspDevice.canRunScript" />
       <keyword name="EspDevice.canStartFileManager" id="EspDevice.canStartFileManager" ref="eric7.MicroPython.Devices.EspDevices.html#EspDevice.canStartFileManager" />
@@ -10536,40 +10558,20 @@
       <keyword name="MessageBoxWizardDialog.on_rAboutQt_toggled" id="MessageBoxWizardDialog.on_rAboutQt_toggled" ref="eric7.Plugins.WizardPlugins.MessageBoxWizard.MessageBoxWizardDialog.html#MessageBoxWizardDialog.on_rAboutQt_toggled" />
       <keyword name="MessageBoxWizardDialog.on_rAbout_toggled" id="MessageBoxWizardDialog.on_rAbout_toggled" ref="eric7.Plugins.WizardPlugins.MessageBoxWizard.MessageBoxWizardDialog.html#MessageBoxWizardDialog.on_rAbout_toggled" />
       <keyword name="MicroPython (Package)" id="MicroPython (Package)" ref="index-eric7.MicroPython.html" />
-      <keyword name="MicroPythonCommandsInterface" id="MicroPythonCommandsInterface" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface" />
-      <keyword name="MicroPythonCommandsInterface (Constructor)" id="MicroPythonCommandsInterface (Constructor)" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.__init__" />
-      <keyword name="MicroPythonCommandsInterface (Module)" id="MicroPythonCommandsInterface (Module)" ref="eric7.MicroPython.MicroPythonCommandsInterface.html" />
-      <keyword name="MicroPythonCommandsInterface.__rawOff" id="MicroPythonCommandsInterface.__rawOff" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.__rawOff" />
-      <keyword name="MicroPythonCommandsInterface.__rawOn" id="MicroPythonCommandsInterface.__rawOn" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.__rawOn" />
-      <keyword name="MicroPythonCommandsInterface.__readSerial" id="MicroPythonCommandsInterface.__readSerial" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.__readSerial" />
-      <keyword name="MicroPythonCommandsInterface.__shortError" id="MicroPythonCommandsInterface.__shortError" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.__shortError" />
-      <keyword name="MicroPythonCommandsInterface.cd" id="MicroPythonCommandsInterface.cd" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.cd" />
-      <keyword name="MicroPythonCommandsInterface.connectToDevice" id="MicroPythonCommandsInterface.connectToDevice" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.connectToDevice" />
-      <keyword name="MicroPythonCommandsInterface.disconnectFromDevice" id="MicroPythonCommandsInterface.disconnectFromDevice" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.disconnectFromDevice" />
-      <keyword name="MicroPythonCommandsInterface.execute" id="MicroPythonCommandsInterface.execute" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.execute" />
-      <keyword name="MicroPythonCommandsInterface.executeAsync" id="MicroPythonCommandsInterface.executeAsync" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.executeAsync" />
-      <keyword name="MicroPythonCommandsInterface.fileSystemInfo" id="MicroPythonCommandsInterface.fileSystemInfo" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.fileSystemInfo" />
-      <keyword name="MicroPythonCommandsInterface.get" id="MicroPythonCommandsInterface.get" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.get" />
-      <keyword name="MicroPythonCommandsInterface.getBoardInformation" id="MicroPythonCommandsInterface.getBoardInformation" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.getBoardInformation" />
-      <keyword name="MicroPythonCommandsInterface.getData" id="MicroPythonCommandsInterface.getData" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.getData" />
-      <keyword name="MicroPythonCommandsInterface.getDeviceData" id="MicroPythonCommandsInterface.getDeviceData" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.getDeviceData" />
-      <keyword name="MicroPythonCommandsInterface.getModules" id="MicroPythonCommandsInterface.getModules" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.getModules" />
-      <keyword name="MicroPythonCommandsInterface.getTime" id="MicroPythonCommandsInterface.getTime" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.getTime" />
-      <keyword name="MicroPythonCommandsInterface.handlePreferencesChanged" id="MicroPythonCommandsInterface.handlePreferencesChanged" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.handlePreferencesChanged" />
-      <keyword name="MicroPythonCommandsInterface.isConnected" id="MicroPythonCommandsInterface.isConnected" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.isConnected" />
-      <keyword name="MicroPythonCommandsInterface.lls" id="MicroPythonCommandsInterface.lls" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.lls" />
-      <keyword name="MicroPythonCommandsInterface.ls" id="MicroPythonCommandsInterface.ls" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.ls" />
-      <keyword name="MicroPythonCommandsInterface.mkdir" id="MicroPythonCommandsInterface.mkdir" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.mkdir" />
-      <keyword name="MicroPythonCommandsInterface.probeDevice" id="MicroPythonCommandsInterface.probeDevice" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.probeDevice" />
-      <keyword name="MicroPythonCommandsInterface.put" id="MicroPythonCommandsInterface.put" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.put" />
-      <keyword name="MicroPythonCommandsInterface.putData" id="MicroPythonCommandsInterface.putData" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.putData" />
-      <keyword name="MicroPythonCommandsInterface.pwd" id="MicroPythonCommandsInterface.pwd" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.pwd" />
-      <keyword name="MicroPythonCommandsInterface.remainingTask" id="MicroPythonCommandsInterface.remainingTask" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.remainingTask" />
-      <keyword name="MicroPythonCommandsInterface.rm" id="MicroPythonCommandsInterface.rm" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.rm" />
-      <keyword name="MicroPythonCommandsInterface.rmdir" id="MicroPythonCommandsInterface.rmdir" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.rmdir" />
-      <keyword name="MicroPythonCommandsInterface.rmrf" id="MicroPythonCommandsInterface.rmrf" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.rmrf" />
-      <keyword name="MicroPythonCommandsInterface.syncTime" id="MicroPythonCommandsInterface.syncTime" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.syncTime" />
-      <keyword name="MicroPythonCommandsInterface.write" id="MicroPythonCommandsInterface.write" ref="eric7.MicroPython.MicroPythonCommandsInterface.html#MicroPythonCommandsInterface.write" />
+      <keyword name="MicroPythonDeviceInterface" id="MicroPythonDeviceInterface" ref="eric7.MicroPython.MicroPythonDeviceInterface.html#MicroPythonDeviceInterface" />
+      <keyword name="MicroPythonDeviceInterface (Constructor)" id="MicroPythonDeviceInterface (Constructor)" ref="eric7.MicroPython.MicroPythonDeviceInterface.html#MicroPythonDeviceInterface.__init__" />
+      <keyword name="MicroPythonDeviceInterface (Module)" id="MicroPythonDeviceInterface (Module)" ref="eric7.MicroPython.MicroPythonDeviceInterface.html" />
+      <keyword name="MicroPythonDeviceInterface.__rawOff" id="MicroPythonDeviceInterface.__rawOff" ref="eric7.MicroPython.MicroPythonDeviceInterface.html#MicroPythonDeviceInterface.__rawOff" />
+      <keyword name="MicroPythonDeviceInterface.__rawOn" id="MicroPythonDeviceInterface.__rawOn" ref="eric7.MicroPython.MicroPythonDeviceInterface.html#MicroPythonDeviceInterface.__rawOn" />
+      <keyword name="MicroPythonDeviceInterface.__readSerial" id="MicroPythonDeviceInterface.__readSerial" ref="eric7.MicroPython.MicroPythonDeviceInterface.html#MicroPythonDeviceInterface.__readSerial" />
+      <keyword name="MicroPythonDeviceInterface.connectToDevice" id="MicroPythonDeviceInterface.connectToDevice" ref="eric7.MicroPython.MicroPythonDeviceInterface.html#MicroPythonDeviceInterface.connectToDevice" />
+      <keyword name="MicroPythonDeviceInterface.disconnectFromDevice" id="MicroPythonDeviceInterface.disconnectFromDevice" ref="eric7.MicroPython.MicroPythonDeviceInterface.html#MicroPythonDeviceInterface.disconnectFromDevice" />
+      <keyword name="MicroPythonDeviceInterface.execute" id="MicroPythonDeviceInterface.execute" ref="eric7.MicroPython.MicroPythonDeviceInterface.html#MicroPythonDeviceInterface.execute" />
+      <keyword name="MicroPythonDeviceInterface.executeAsync" id="MicroPythonDeviceInterface.executeAsync" ref="eric7.MicroPython.MicroPythonDeviceInterface.html#MicroPythonDeviceInterface.executeAsync" />
+      <keyword name="MicroPythonDeviceInterface.handlePreferencesChanged" id="MicroPythonDeviceInterface.handlePreferencesChanged" ref="eric7.MicroPython.MicroPythonDeviceInterface.html#MicroPythonDeviceInterface.handlePreferencesChanged" />
+      <keyword name="MicroPythonDeviceInterface.isConnected" id="MicroPythonDeviceInterface.isConnected" ref="eric7.MicroPython.MicroPythonDeviceInterface.html#MicroPythonDeviceInterface.isConnected" />
+      <keyword name="MicroPythonDeviceInterface.probeDevice" id="MicroPythonDeviceInterface.probeDevice" ref="eric7.MicroPython.MicroPythonDeviceInterface.html#MicroPythonDeviceInterface.probeDevice" />
+      <keyword name="MicroPythonDeviceInterface.write" id="MicroPythonDeviceInterface.write" ref="eric7.MicroPython.MicroPythonDeviceInterface.html#MicroPythonDeviceInterface.write" />
       <keyword name="MicroPythonFileManager" id="MicroPythonFileManager" ref="eric7.MicroPython.MicroPythonFileManager.html#MicroPythonFileManager" />
       <keyword name="MicroPythonFileManager (Constructor)" id="MicroPythonFileManager (Constructor)" ref="eric7.MicroPython.MicroPythonFileManager.html#MicroPythonFileManager.__init__" />
       <keyword name="MicroPythonFileManager (Module)" id="MicroPythonFileManager (Module)" ref="eric7.MicroPython.MicroPythonFileManager.html" />
@@ -10702,7 +10704,7 @@
       <keyword name="MicroPythonWidget.__showLocalTime" id="MicroPythonWidget.__showLocalTime" ref="eric7.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__showLocalTime" />
       <keyword name="MicroPythonWidget.__showNoDeviceMessage" id="MicroPythonWidget.__showNoDeviceMessage" ref="eric7.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__showNoDeviceMessage" />
       <keyword name="MicroPythonWidget.__synchronizeTime" id="MicroPythonWidget.__synchronizeTime" ref="eric7.MicroPython.MicroPythonWidget.html#MicroPythonWidget.__synchronizeTime" />
-      <keyword name="MicroPythonWidget.commandsInterface" id="MicroPythonWidget.commandsInterface" ref="eric7.MicroPython.MicroPythonWidget.html#MicroPythonWidget.commandsInterface" />
+      <keyword name="MicroPythonWidget.deviceInterface" id="MicroPythonWidget.deviceInterface" ref="eric7.MicroPython.MicroPythonWidget.html#MicroPythonWidget.deviceInterface" />
       <keyword name="MicroPythonWidget.eventFilter" id="MicroPythonWidget.eventFilter" ref="eric7.MicroPython.MicroPythonWidget.html#MicroPythonWidget.eventFilter" />
       <keyword name="MicroPythonWidget.getCurrentBoard" id="MicroPythonWidget.getCurrentBoard" ref="eric7.MicroPython.MicroPythonWidget.html#MicroPythonWidget.getCurrentBoard" />
       <keyword name="MicroPythonWidget.getCurrentPort" id="MicroPythonWidget.getCurrentPort" ref="eric7.MicroPython.MicroPythonWidget.html#MicroPythonWidget.getCurrentPort" />
@@ -10731,6 +10733,7 @@
       <keyword name="MicrobitDevice.__saveMain" id="MicrobitDevice.__saveMain" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice.__saveMain" />
       <keyword name="MicrobitDevice.__saveScriptToDevice" id="MicrobitDevice.__saveScriptToDevice" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice.__saveScriptToDevice" />
       <keyword name="MicrobitDevice.__showFirmwareVersions" id="MicrobitDevice.__showFirmwareVersions" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice.__showFirmwareVersions" />
+      <keyword name="MicrobitDevice._getSetTimeCode" id="MicrobitDevice._getSetTimeCode" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice._getSetTimeCode" />
       <keyword name="MicrobitDevice.addDeviceMenuEntries" id="MicrobitDevice.addDeviceMenuEntries" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice.addDeviceMenuEntries" />
       <keyword name="MicrobitDevice.canRunScript" id="MicrobitDevice.canRunScript" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice.canRunScript" />
       <keyword name="MicrobitDevice.canStartFileManager" id="MicrobitDevice.canStartFileManager" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice.canStartFileManager" />
@@ -10742,6 +10745,9 @@
       <keyword name="MicrobitDevice.getDownloadMenuEntries" id="MicrobitDevice.getDownloadMenuEntries" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice.getDownloadMenuEntries" />
       <keyword name="MicrobitDevice.hasFlashMenuEntry" id="MicrobitDevice.hasFlashMenuEntry" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice.hasFlashMenuEntry" />
       <keyword name="MicrobitDevice.hasTimeCommands" id="MicrobitDevice.hasTimeCommands" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice.hasTimeCommands" />
+      <keyword name="MicrobitDevice.lls" id="MicrobitDevice.lls" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice.lls" />
+      <keyword name="MicrobitDevice.ls" id="MicrobitDevice.ls" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice.ls" />
+      <keyword name="MicrobitDevice.pwd" id="MicrobitDevice.pwd" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice.pwd" />
       <keyword name="MicrobitDevice.runScript" id="MicrobitDevice.runScript" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice.runScript" />
       <keyword name="MicrobitDevice.setButtons" id="MicrobitDevice.setButtons" ref="eric7.MicroPython.Devices.MicrobitDevices.html#MicrobitDevice.setButtons" />
       <keyword name="MicrobitDevices (Module)" id="MicrobitDevices (Module)" ref="eric7.MicroPython.Devices.MicrobitDevices.html" />
@@ -12986,6 +12992,7 @@
       <keyword name="PyBoardDevice.__showDfuEnableInstructions" id="PyBoardDevice.__showDfuEnableInstructions" ref="eric7.MicroPython.Devices.PyBoardDevices.html#PyBoardDevice.__showDfuEnableInstructions" />
       <keyword name="PyBoardDevice.__showFirmwareVersions" id="PyBoardDevice.__showFirmwareVersions" ref="eric7.MicroPython.Devices.PyBoardDevices.html#PyBoardDevice.__showFirmwareVersions" />
       <keyword name="PyBoardDevice.__showFlashInstructions" id="PyBoardDevice.__showFlashInstructions" ref="eric7.MicroPython.Devices.PyBoardDevices.html#PyBoardDevice.__showFlashInstructions" />
+      <keyword name="PyBoardDevice._getSetTimeCode" id="PyBoardDevice._getSetTimeCode" ref="eric7.MicroPython.Devices.PyBoardDevices.html#PyBoardDevice._getSetTimeCode" />
       <keyword name="PyBoardDevice.addDeviceMenuEntries" id="PyBoardDevice.addDeviceMenuEntries" ref="eric7.MicroPython.Devices.PyBoardDevices.html#PyBoardDevice.addDeviceMenuEntries" />
       <keyword name="PyBoardDevice.canRunScript" id="PyBoardDevice.canRunScript" ref="eric7.MicroPython.Devices.PyBoardDevices.html#PyBoardDevice.canRunScript" />
       <keyword name="PyBoardDevice.canStartFileManager" id="PyBoardDevice.canStartFileManager" ref="eric7.MicroPython.Devices.PyBoardDevices.html#PyBoardDevice.canStartFileManager" />
@@ -13641,6 +13648,7 @@
       <keyword name="RP2040Device.__firmwareVersionResponse" id="RP2040Device.__firmwareVersionResponse" ref="eric7.MicroPython.Devices.RP2040Devices.html#RP2040Device.__firmwareVersionResponse" />
       <keyword name="RP2040Device.__flashPython" id="RP2040Device.__flashPython" ref="eric7.MicroPython.Devices.RP2040Devices.html#RP2040Device.__flashPython" />
       <keyword name="RP2040Device.__showFirmwareVersions" id="RP2040Device.__showFirmwareVersions" ref="eric7.MicroPython.Devices.RP2040Devices.html#RP2040Device.__showFirmwareVersions" />
+      <keyword name="RP2040Device._getSetTimeCode" id="RP2040Device._getSetTimeCode" ref="eric7.MicroPython.Devices.RP2040Devices.html#RP2040Device._getSetTimeCode" />
       <keyword name="RP2040Device.addDeviceMenuEntries" id="RP2040Device.addDeviceMenuEntries" ref="eric7.MicroPython.Devices.RP2040Devices.html#RP2040Device.addDeviceMenuEntries" />
       <keyword name="RP2040Device.canRunScript" id="RP2040Device.canRunScript" ref="eric7.MicroPython.Devices.RP2040Devices.html#RP2040Device.canRunScript" />
       <keyword name="RP2040Device.canStartFileManager" id="RP2040Device.canStartFileManager" ref="eric7.MicroPython.Devices.RP2040Devices.html#RP2040Device.canStartFileManager" />
@@ -16250,6 +16258,7 @@
       <keyword name="TeensyDevice.__showFirmwareVersions" id="TeensyDevice.__showFirmwareVersions" ref="eric7.MicroPython.Devices.TeensyDevices.html#TeensyDevice.__showFirmwareVersions" />
       <keyword name="TeensyDevice.__showFlashInstructions" id="TeensyDevice.__showFlashInstructions" ref="eric7.MicroPython.Devices.TeensyDevices.html#TeensyDevice.__showFlashInstructions" />
       <keyword name="TeensyDevice.__startTeensyLoader" id="TeensyDevice.__startTeensyLoader" ref="eric7.MicroPython.Devices.TeensyDevices.html#TeensyDevice.__startTeensyLoader" />
+      <keyword name="TeensyDevice._getSetTimeCode" id="TeensyDevice._getSetTimeCode" ref="eric7.MicroPython.Devices.TeensyDevices.html#TeensyDevice._getSetTimeCode" />
       <keyword name="TeensyDevice.addDeviceMenuEntries" id="TeensyDevice.addDeviceMenuEntries" ref="eric7.MicroPython.Devices.TeensyDevices.html#TeensyDevice.addDeviceMenuEntries" />
       <keyword name="TeensyDevice.canRunScript" id="TeensyDevice.canRunScript" ref="eric7.MicroPython.Devices.TeensyDevices.html#TeensyDevice.canRunScript" />
       <keyword name="TeensyDevice.canStartFileManager" id="TeensyDevice.canStartFileManager" ref="eric7.MicroPython.Devices.TeensyDevices.html#TeensyDevice.canStartFileManager" />
@@ -20139,7 +20148,7 @@
       <file>eric7.MicroPython.Devices.TeensyDevices.html</file>
       <file>eric7.MicroPython.Devices.__init__.html</file>
       <file>eric7.MicroPython.IgnoredDevicesDialog.html</file>
-      <file>eric7.MicroPython.MicroPythonCommandsInterface.html</file>
+      <file>eric7.MicroPython.MicroPythonDeviceInterface.html</file>
       <file>eric7.MicroPython.MicroPythonFileManager.html</file>
       <file>eric7.MicroPython.MicroPythonFileManagerWidget.html</file>
       <file>eric7.MicroPython.MicroPythonFileSystemUtilities.html</file>
--- a/src/eric7/Documentation/Source/eric7.MicroPython.Devices.DeviceBase.html	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.MicroPython.Devices.DeviceBase.html	Tue Feb 14 18:10:30 2023 +0100
@@ -60,6 +60,18 @@
 <td>Constructor</td>
 </tr>
 <tr>
+<td><a href="#BaseDevice.__getDeviceData">__getDeviceData</a></td>
+<td>Private method to get some essential data for the connected board.</td>
+</tr>
+<tr>
+<td><a href="#BaseDevice._getSetTimeCode">_getSetTimeCode</a></td>
+<td>Protected method to get the device code to set the time.</td>
+</tr>
+<tr>
+<td><a href="#BaseDevice._shortError">_shortError</a></td>
+<td>Protected method to create a shortened error message.</td>
+</tr>
+<tr>
 <td><a href="#BaseDevice.addDeviceMenuEntries">addDeviceMenuEntries</a></td>
 <td>Public method to add device specific entries to the given menu.</td>
 </tr>
@@ -80,6 +92,10 @@
 <td>Public method to determine, if a REPL can be started.</td>
 </tr>
 <tr>
+<td><a href="#BaseDevice.cd">cd</a></td>
+<td>Public method to change the current directory on the connected device.</td>
+</tr>
+<tr>
 <td><a href="#BaseDevice.checkDeviceData">checkDeviceData</a></td>
 <td>Public method to check the validity of the device data determined during connecting the device.</td>
 </tr>
@@ -92,10 +108,26 @@
 <td>Public method to download the device firmware.</td>
 </tr>
 <tr>
+<td><a href="#BaseDevice.fileSystemInfo">fileSystemInfo</a></td>
+<td>Public method to obtain information about the currently mounted file systems.</td>
+</tr>
+<tr>
 <td><a href="#BaseDevice.forceInterrupt">forceInterrupt</a></td>
 <td>Public method to determine the need for an interrupt when opening the serial connection.</td>
 </tr>
 <tr>
+<td><a href="#BaseDevice.get">get</a></td>
+<td>Public method to copy a file from the connected device.</td>
+</tr>
+<tr>
+<td><a href="#BaseDevice.getBoardInformation">getBoardInformation</a></td>
+<td>Public method to get some information data of the connected board.</td>
+</tr>
+<tr>
+<td><a href="#BaseDevice.getData">getData</a></td>
+<td>Public method to read data from the connected device.</td>
+</tr>
+<tr>
 <td><a href="#BaseDevice.getDeviceData">getDeviceData</a></td>
 <td>Public method to get a copy of the determined device data.</td>
 </tr>
@@ -116,6 +148,14 @@
 <td>Public method to get the device firmware download URL.</td>
 </tr>
 <tr>
+<td><a href="#BaseDevice.getModules">getModules</a></td>
+<td>Public method to show a list of modules built into the firmware.</td>
+</tr>
+<tr>
+<td><a href="#BaseDevice.getTime">getTime</a></td>
+<td>Public method to get the current time of the device.</td>
+</tr>
+<tr>
 <td><a href="#BaseDevice.getWorkspace">getWorkspace</a></td>
 <td>Public method to get the workspace directory.</td>
 </tr>
@@ -124,6 +164,10 @@
 <td>Public slot handling a data floof from the device.</td>
 </tr>
 <tr>
+<td><a href="#BaseDevice.hasCircuitPython">hasCircuitPython</a></td>
+<td>Public method to check, if the connected device is flashed with CircuitPython.</td>
+</tr>
+<tr>
 <td><a href="#BaseDevice.hasDocumentationUrl">hasDocumentationUrl</a></td>
 <td>Public method to check, if the device has a configured documentation URL.</td>
 </tr>
@@ -140,6 +184,42 @@
 <td>Public method to check, if the device supports time commands.</td>
 </tr>
 <tr>
+<td><a href="#BaseDevice.lls">lls</a></td>
+<td>Public method to get a long directory listing of the connected device including meta data.</td>
+</tr>
+<tr>
+<td><a href="#BaseDevice.ls">ls</a></td>
+<td>Public method to get a directory listing of the connected device.</td>
+</tr>
+<tr>
+<td><a href="#BaseDevice.mkdir">mkdir</a></td>
+<td>Public method to create a new directory.</td>
+</tr>
+<tr>
+<td><a href="#BaseDevice.put">put</a></td>
+<td>Public method to copy a local file to the connected device.</td>
+</tr>
+<tr>
+<td><a href="#BaseDevice.putData">putData</a></td>
+<td>Public method to write the given data to the connected device.</td>
+</tr>
+<tr>
+<td><a href="#BaseDevice.pwd">pwd</a></td>
+<td>Public method to get the current directory of the connected device.</td>
+</tr>
+<tr>
+<td><a href="#BaseDevice.rm">rm</a></td>
+<td>Public method to remove a file from the connected device.</td>
+</tr>
+<tr>
+<td><a href="#BaseDevice.rmdir">rmdir</a></td>
+<td>Public method to remove a directory.</td>
+</tr>
+<tr>
+<td><a href="#BaseDevice.rmrf">rmrf</a></td>
+<td>Public method to remove a file or directory recursively.</td>
+</tr>
+<tr>
 <td><a href="#BaseDevice.runScript">runScript</a></td>
 <td>Public method to run the given Python script.</td>
 </tr>
@@ -175,6 +255,10 @@
 <td><a href="#BaseDevice.supportsLocalFileAccess">supportsLocalFileAccess</a></td>
 <td>Public method to indicate file access via a local directory.</td>
 </tr>
+<tr>
+<td><a href="#BaseDevice.syncTime">syncTime</a></td>
+<td>Public method to set the time of the connected device to the local computer's time.</td>
+</tr>
 </table>
 <h3>Static Methods</h3>
 
@@ -204,6 +288,81 @@
 reference to the parent object
 </dd>
 </dl>
+<a NAME="BaseDevice.__getDeviceData" ID="BaseDevice.__getDeviceData"></a>
+<h4>BaseDevice.__getDeviceData</h4>
+<b>__getDeviceData</b>(<i></i>)
+
+<p>
+        Private method to get some essential data for the connected board.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+dictionary containing the determined data
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
+<a NAME="BaseDevice._getSetTimeCode" ID="BaseDevice._getSetTimeCode"></a>
+<h4>BaseDevice._getSetTimeCode</h4>
+<b>_getSetTimeCode</b>(<i></i>)
+
+<p>
+        Protected method to get the device code to set the time.
+</p>
+<p>
+        Note: This method must be implemented in the various device specific
+        subclasses.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+code to be executed on the connected device to set the time
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<a NAME="BaseDevice._shortError" ID="BaseDevice._shortError"></a>
+<h4>BaseDevice._shortError</h4>
+<b>_shortError</b>(<i>error</i>)
+
+<p>
+        Protected method to create a shortened error message.
+</p>
+<dl>
+
+<dt><i>error</i> (bytes)</dt>
+<dd>
+verbose error message
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+shortened error message
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
 <a NAME="BaseDevice.addDeviceMenuEntries" ID="BaseDevice.addDeviceMenuEntries"></a>
 <h4>BaseDevice.addDeviceMenuEntries</h4>
 <b>addDeviceMenuEntries</b>(<i>menu</i>)
@@ -298,6 +457,27 @@
 tuple of (bool, str)
 </dd>
 </dl>
+<a NAME="BaseDevice.cd" ID="BaseDevice.cd"></a>
+<h4>BaseDevice.cd</h4>
+<b>cd</b>(<i>dirname</i>)
+
+<p>
+        Public method to change the current directory on the connected device.
+</p>
+<dl>
+
+<dt><i>dirname</i> (str)</dt>
+<dd>
+directory to change to
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
 <a NAME="BaseDevice.checkDeviceData" ID="BaseDevice.checkDeviceData"></a>
 <h4>BaseDevice.checkDeviceData</h4>
 <b>checkDeviceData</b>(<i></i>)
@@ -344,6 +524,34 @@
 <p>
         Public method to download the device firmware.
 </p>
+<a NAME="BaseDevice.fileSystemInfo" ID="BaseDevice.fileSystemInfo"></a>
+<h4>BaseDevice.fileSystemInfo</h4>
+<b>fileSystemInfo</b>(<i></i>)
+
+<p>
+        Public method to obtain information about the currently mounted file
+        systems.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+tuple of tuples containing the file system name, the total
+            size, the used size and the free size
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of tuples of (str, int, int, int)
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
 <a NAME="BaseDevice.forceInterrupt" ID="BaseDevice.forceInterrupt"></a>
 <h4>BaseDevice.forceInterrupt</h4>
 <b>forceInterrupt</b>(<i></i>)
@@ -364,6 +572,102 @@
 bool
 </dd>
 </dl>
+<a NAME="BaseDevice.get" ID="BaseDevice.get"></a>
+<h4>BaseDevice.get</h4>
+<b>get</b>(<i>deviceFileName, hostFileName=None</i>)
+
+<p>
+        Public method to copy a file from the connected device.
+</p>
+<dl>
+
+<dt><i>deviceFileName</i> (str)</dt>
+<dd>
+name of the file to copy
+</dd>
+<dt><i>hostFileName</i> (str)</dt>
+<dd>
+name of the file to copy to
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
+<a NAME="BaseDevice.getBoardInformation" ID="BaseDevice.getBoardInformation"></a>
+<h4>BaseDevice.getBoardInformation</h4>
+<b>getBoardInformation</b>(<i></i>)
+
+<p>
+        Public method to get some information data of the connected board.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+dictionary containing the determined data
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
+<a NAME="BaseDevice.getData" ID="BaseDevice.getData"></a>
+<h4>BaseDevice.getData</h4>
+<b>getData</b>(<i>deviceFileName</i>)
+
+<p>
+        Public method to read data from the connected device.
+</p>
+<dl>
+
+<dt><i>deviceFileName</i> (str)</dt>
+<dd>
+name of the file to read from
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+data read from the device
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bytes
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
 <a NAME="BaseDevice.getDeviceData" ID="BaseDevice.getDeviceData"></a>
 <h4>BaseDevice.getDeviceData</h4>
 <b>getDeviceData</b>(<i></i>)
@@ -460,6 +764,58 @@
 str
 </dd>
 </dl>
+<a NAME="BaseDevice.getModules" ID="BaseDevice.getModules"></a>
+<h4>BaseDevice.getModules</h4>
+<b>getModules</b>(<i></i>)
+
+<p>
+        Public method to show a list of modules built into the firmware.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+list of builtin modules
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+list of str
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
+<a NAME="BaseDevice.getTime" ID="BaseDevice.getTime"></a>
+<h4>BaseDevice.getTime</h4>
+<b>getTime</b>(<i></i>)
+
+<p>
+        Public method to get the current time of the device.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+time of the device
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
 <a NAME="BaseDevice.getWorkspace" ID="BaseDevice.getWorkspace"></a>
 <h4>BaseDevice.getWorkspace</h4>
 <b>getWorkspace</b>(<i></i>)
@@ -486,6 +842,25 @@
 <p>
         Public slot handling a data floof from the device.
 </p>
+<a NAME="BaseDevice.hasCircuitPython" ID="BaseDevice.hasCircuitPython"></a>
+<h4>BaseDevice.hasCircuitPython</h4>
+<b>hasCircuitPython</b>(<i></i>)
+
+<p>
+        Public method to check, if the connected device is flashed with CircuitPython.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+flag indicating CircuitPython
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
 <a NAME="BaseDevice.hasDocumentationUrl" ID="BaseDevice.hasDocumentationUrl"></a>
 <h4>BaseDevice.hasDocumentationUrl</h4>
 <b>hasDocumentationUrl</b>(<i></i>)
@@ -567,6 +942,288 @@
 bool
 </dd>
 </dl>
+<a NAME="BaseDevice.lls" ID="BaseDevice.lls"></a>
+<h4>BaseDevice.lls</h4>
+<b>lls</b>(<i>dirname="", fullstat=False, showHidden=False</i>)
+
+<p>
+        Public method to get a long directory listing of the connected device
+        including meta data.
+</p>
+<dl>
+
+<dt><i>dirname</i> (str)</dt>
+<dd>
+name of the directory to be listed
+</dd>
+<dt><i>fullstat</i> (bool)</dt>
+<dd>
+flag indicating to return the full stat() tuple
+</dd>
+<dt><i>showHidden</i> (bool)</dt>
+<dd>
+flag indicating to show hidden files as well
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+list containing the directory listing with tuple entries of
+            the name and and a tuple of mode, size and time (if fullstat is
+            false) or the complete stat() tuple. 'None' is returned in case the
+            directory doesn't exist.
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (str, tuple)
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
+<a NAME="BaseDevice.ls" ID="BaseDevice.ls"></a>
+<h4>BaseDevice.ls</h4>
+<b>ls</b>(<i>dirname=""</i>)
+
+<p>
+        Public method to get a directory listing of the connected device.
+</p>
+<dl>
+
+<dt><i>dirname</i> (str)</dt>
+<dd>
+name of the directory to be listed
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+tuple containg the directory listing
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of str
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
+<a NAME="BaseDevice.mkdir" ID="BaseDevice.mkdir"></a>
+<h4>BaseDevice.mkdir</h4>
+<b>mkdir</b>(<i>dirname</i>)
+
+<p>
+        Public method to create a new directory.
+</p>
+<dl>
+
+<dt><i>dirname</i> (str)</dt>
+<dd>
+name of the directory to create
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
+<a NAME="BaseDevice.put" ID="BaseDevice.put"></a>
+<h4>BaseDevice.put</h4>
+<b>put</b>(<i>hostFileName, deviceFileName=None</i>)
+
+<p>
+        Public method to copy a local file to the connected device.
+</p>
+<dl>
+
+<dt><i>hostFileName</i> (str)</dt>
+<dd>
+name of the file to be copied
+</dd>
+<dt><i>deviceFileName</i> (str)</dt>
+<dd>
+name of the file to copy to
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
+<a NAME="BaseDevice.putData" ID="BaseDevice.putData"></a>
+<h4>BaseDevice.putData</h4>
+<b>putData</b>(<i>deviceFileName, content</i>)
+
+<p>
+        Public method to write the given data to the connected device.
+</p>
+<dl>
+
+<dt><i>deviceFileName</i> (str)</dt>
+<dd>
+name of the file to write to
+</dd>
+<dt><i>content</i> (bytes)</dt>
+<dd>
+data to write
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
+<a NAME="BaseDevice.pwd" ID="BaseDevice.pwd"></a>
+<h4>BaseDevice.pwd</h4>
+<b>pwd</b>(<i></i>)
+
+<p>
+        Public method to get the current directory of the connected device.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+current directory
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
+<a NAME="BaseDevice.rm" ID="BaseDevice.rm"></a>
+<h4>BaseDevice.rm</h4>
+<b>rm</b>(<i>filename</i>)
+
+<p>
+        Public method to remove a file from the connected device.
+</p>
+<dl>
+
+<dt><i>filename</i> (str)</dt>
+<dd>
+name of the file to be removed
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
+<a NAME="BaseDevice.rmdir" ID="BaseDevice.rmdir"></a>
+<h4>BaseDevice.rmdir</h4>
+<b>rmdir</b>(<i>dirname</i>)
+
+<p>
+        Public method to remove a directory.
+</p>
+<dl>
+
+<dt><i>dirname</i> (str)</dt>
+<dd>
+name of the directory to be removed
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
+<a NAME="BaseDevice.rmrf" ID="BaseDevice.rmrf"></a>
+<h4>BaseDevice.rmrf</h4>
+<b>rmrf</b>(<i>name, recursive=False, force=False</i>)
+
+<p>
+        Public method to remove a file or directory recursively.
+</p>
+<dl>
+
+<dt><i>name</i> (str)</dt>
+<dd>
+of the file or directory to remove
+</dd>
+<dt><i>recursive</i> (bool)</dt>
+<dd>
+flag indicating a recursive deletion
+</dd>
+<dt><i>force</i> (bool)</dt>
+<dd>
+flag indicating to ignore errors
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
 <a NAME="BaseDevice.runScript" ID="BaseDevice.runScript"></a>
 <h4>BaseDevice.runScript</h4>
 <b>runScript</b>(<i>script</i>)
@@ -708,6 +1365,33 @@
 bool
 </dd>
 </dl>
+<a NAME="BaseDevice.syncTime" ID="BaseDevice.syncTime"></a>
+<h4>BaseDevice.syncTime</h4>
+<b>syncTime</b>(<i>deviceType, hasCPy=False</i>)
+
+<p>
+        Public method to set the time of the connected device to the local
+        computer's time.
+</p>
+<dl>
+
+<dt><i>deviceType</i> (str)</dt>
+<dd>
+type of board to sync time to
+</dd>
+<dt><i>hasCPy</i> (bool)</dt>
+<dd>
+flag indicating that the device has CircuitPython loadede
+            (defaults to False)
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/src/eric7/Documentation/Source/eric7.MicroPython.Devices.EspDevices.html	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.MicroPython.Devices.EspDevices.html	Tue Feb 14 18:10:30 2023 +0100
@@ -116,6 +116,10 @@
 <td>Private slot to show the MAC address of the ESP chip.</td>
 </tr>
 <tr>
+<td><a href="#EspDevice._getSetTimeCode">_getSetTimeCode</a></td>
+<td>Protected method to get the device code to set the time.</td>
+</tr>
+<tr>
 <td><a href="#EspDevice.addDeviceMenuEntries">addDeviceMenuEntries</a></td>
 <td>Public method to add device specific entries to the given menu.</td>
 </tr>
@@ -291,6 +295,29 @@
 <p>
         Private slot to show the MAC address of the ESP chip.
 </p>
+<a NAME="EspDevice._getSetTimeCode" ID="EspDevice._getSetTimeCode"></a>
+<h4>EspDevice._getSetTimeCode</h4>
+<b>_getSetTimeCode</b>(<i></i>)
+
+<p>
+        Protected method to get the device code to set the time.
+</p>
+<p>
+        Note: This method must be implemented in the various device specific
+        subclasses.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+code to be executed on the connected device to set the time
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
 <a NAME="EspDevice.addDeviceMenuEntries" ID="EspDevice.addDeviceMenuEntries"></a>
 <h4>EspDevice.addDeviceMenuEntries</h4>
 <b>addDeviceMenuEntries</b>(<i>menu</i>)
--- a/src/eric7/Documentation/Source/eric7.MicroPython.Devices.MicrobitDevices.html	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.MicroPython.Devices.MicrobitDevices.html	Tue Feb 14 18:10:30 2023 +0100
@@ -104,6 +104,10 @@
 <td>Private slot to show the firmware version of the connected device and the available firmware version.</td>
 </tr>
 <tr>
+<td><a href="#MicrobitDevice._getSetTimeCode">_getSetTimeCode</a></td>
+<td>Protected method to get the device code to set the time.</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>
@@ -148,6 +152,18 @@
 <td>Public method to check, if the device supports time commands.</td>
 </tr>
 <tr>
+<td><a href="#MicrobitDevice.lls">lls</a></td>
+<td>Public method to get a long directory listing of the connected device including meta data.</td>
+</tr>
+<tr>
+<td><a href="#MicrobitDevice.ls">ls</a></td>
+<td>Public method to get a directory listing of the connected device.</td>
+</tr>
+<tr>
+<td><a href="#MicrobitDevice.pwd">pwd</a></td>
+<td>Public method to get the current directory of the connected device.</td>
+</tr>
+<tr>
 <td><a href="#MicrobitDevice.runScript">runScript</a></td>
 <td>Public method to run the given Python script.</td>
 </tr>
@@ -319,6 +335,29 @@
         Private slot to show the firmware version of the connected device and the
         available firmware version.
 </p>
+<a NAME="MicrobitDevice._getSetTimeCode" ID="MicrobitDevice._getSetTimeCode"></a>
+<h4>MicrobitDevice._getSetTimeCode</h4>
+<b>_getSetTimeCode</b>(<i></i>)
+
+<p>
+        Protected method to get the device code to set the time.
+</p>
+<p>
+        Note: This method must be implemented in the various device specific
+        subclasses.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+code to be executed on the connected device to set the time
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
 <a NAME="MicrobitDevice.addDeviceMenuEntries" ID="MicrobitDevice.addDeviceMenuEntries"></a>
 <h4>MicrobitDevice.addDeviceMenuEntries</h4>
 <b>addDeviceMenuEntries</b>(<i>menu</i>)
@@ -532,6 +571,103 @@
 bool
 </dd>
 </dl>
+<a NAME="MicrobitDevice.lls" ID="MicrobitDevice.lls"></a>
+<h4>MicrobitDevice.lls</h4>
+<b>lls</b>(<i>dirname="", fullstat=False, showHidden=False</i>)
+
+<p>
+        Public method to get a long directory listing of the connected device
+        including meta data.
+</p>
+<dl>
+
+<dt><i>dirname</i> (str)</dt>
+<dd>
+name of the directory to be listed
+</dd>
+<dt><i>fullstat</i> (bool)</dt>
+<dd>
+flag indicating to return the full stat() tuple
+</dd>
+<dt><i>showHidden</i> (bool)</dt>
+<dd>
+flag indicating to show hidden files as well
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+list containing the directory listing with tuple entries of
+            the name and and a tuple of mode, size and time (if fullstat is
+            false) or the complete stat() tuple. 'None' is returned in case the
+            directory doesn't exist.
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (str, tuple)
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
+<a NAME="MicrobitDevice.ls" ID="MicrobitDevice.ls"></a>
+<h4>MicrobitDevice.ls</h4>
+<b>ls</b>(<i>dirname=""</i>)
+
+<p>
+        Public method to get a directory listing of the connected device.
+</p>
+<dl>
+
+<dt><i>dirname</i> (str)</dt>
+<dd>
+name of the directory to be listed
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+tuple containg the directory listing
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of str
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>OSError</b>:</dt>
+<dd>
+raised to indicate an issue with the device
+</dd>
+</dl>
+<a NAME="MicrobitDevice.pwd" ID="MicrobitDevice.pwd"></a>
+<h4>MicrobitDevice.pwd</h4>
+<b>pwd</b>(<i></i>)
+
+<p>
+        Public method to get the current directory of the connected device.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+current directory
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
 <a NAME="MicrobitDevice.runScript" ID="MicrobitDevice.runScript"></a>
 <h4>MicrobitDevice.runScript</h4>
 <b>runScript</b>(<i>script</i>)
--- a/src/eric7/Documentation/Source/eric7.MicroPython.Devices.PyBoardDevices.html	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.MicroPython.Devices.PyBoardDevices.html	Tue Feb 14 18:10:30 2023 +0100
@@ -111,6 +111,10 @@
 <td>Private slot to open the URL containing instructions for installing MicroPython on the pyboard.</td>
 </tr>
 <tr>
+<td><a href="#PyBoardDevice._getSetTimeCode">_getSetTimeCode</a></td>
+<td>Protected method to get the device code to set the time.</td>
+</tr>
+<tr>
 <td><a href="#PyBoardDevice.addDeviceMenuEntries">addDeviceMenuEntries</a></td>
 <td>Public method to add device specific entries to the given menu.</td>
 </tr>
@@ -350,6 +354,29 @@
         Private slot to open the URL containing instructions for installing
         MicroPython on the pyboard.
 </p>
+<a NAME="PyBoardDevice._getSetTimeCode" ID="PyBoardDevice._getSetTimeCode"></a>
+<h4>PyBoardDevice._getSetTimeCode</h4>
+<b>_getSetTimeCode</b>(<i></i>)
+
+<p>
+        Protected method to get the device code to set the time.
+</p>
+<p>
+        Note: This method must be implemented in the various device specific
+        subclasses.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+code to be executed on the connected device to set the time
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
 <a NAME="PyBoardDevice.addDeviceMenuEntries" ID="PyBoardDevice.addDeviceMenuEntries"></a>
 <h4>PyBoardDevice.addDeviceMenuEntries</h4>
 <b>addDeviceMenuEntries</b>(<i>menu</i>)
--- a/src/eric7/Documentation/Source/eric7.MicroPython.Devices.RP2040Devices.html	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.MicroPython.Devices.RP2040Devices.html	Tue Feb 14 18:10:30 2023 +0100
@@ -84,6 +84,10 @@
 <td>Private slot to show the firmware version of the connected device and the available firmware version.</td>
 </tr>
 <tr>
+<td><a href="#RP2040Device._getSetTimeCode">_getSetTimeCode</a></td>
+<td>Protected method to get the device code to set the time.</td>
+</tr>
+<tr>
 <td><a href="#RP2040Device.addDeviceMenuEntries">addDeviceMenuEntries</a></td>
 <td>Public method to add device specific entries to the given menu.</td>
 </tr>
@@ -203,6 +207,29 @@
         Private slot to show the firmware version of the connected device and the
         available firmware version.
 </p>
+<a NAME="RP2040Device._getSetTimeCode" ID="RP2040Device._getSetTimeCode"></a>
+<h4>RP2040Device._getSetTimeCode</h4>
+<b>_getSetTimeCode</b>(<i></i>)
+
+<p>
+        Protected method to get the device code to set the time.
+</p>
+<p>
+        Note: This method must be implemented in the various device specific
+        subclasses.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+code to be executed on the connected device to set the time
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
 <a NAME="RP2040Device.addDeviceMenuEntries" ID="RP2040Device.addDeviceMenuEntries"></a>
 <h4>RP2040Device.addDeviceMenuEntries</h4>
 <b>addDeviceMenuEntries</b>(<i>menu</i>)
--- a/src/eric7/Documentation/Source/eric7.MicroPython.Devices.TeensyDevices.html	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.MicroPython.Devices.TeensyDevices.html	Tue Feb 14 18:10:30 2023 +0100
@@ -83,6 +83,10 @@
 <td>Private method to start the 'Teensy Loader' application.</td>
 </tr>
 <tr>
+<td><a href="#TeensyDevice._getSetTimeCode">_getSetTimeCode</a></td>
+<td>Protected method to get the device code to set the time.</td>
+</tr>
+<tr>
 <td><a href="#TeensyDevice.addDeviceMenuEntries">addDeviceMenuEntries</a></td>
 <td>Public method to add device specific entries to the given menu.</td>
 </tr>
@@ -201,6 +205,29 @@
 <p>
         Note: The application must be accessible via the application search path.
 </p>
+<a NAME="TeensyDevice._getSetTimeCode" ID="TeensyDevice._getSetTimeCode"></a>
+<h4>TeensyDevice._getSetTimeCode</h4>
+<b>_getSetTimeCode</b>(<i></i>)
+
+<p>
+        Protected method to get the device code to set the time.
+</p>
+<p>
+        Note: This method must be implemented in the various device specific
+        subclasses.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+code to be executed on the connected device to set the time
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+str
+</dd>
+</dl>
 <a NAME="TeensyDevice.addDeviceMenuEntries" ID="TeensyDevice.addDeviceMenuEntries"></a>
 <h4>TeensyDevice.addDeviceMenuEntries</h4>
 <b>addDeviceMenuEntries</b>(<i>menu</i>)
--- a/src/eric7/Documentation/Source/eric7.MicroPython.MicroPythonCommandsInterface.html	Tue Feb 14 11:09:49 2023 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,982 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric7.MicroPython.MicroPythonCommandsInterface</title>
-<meta charset="UTF-8">
-<link rel="stylesheet" href="styles.css">
-</head>
-<body>
-<a NAME="top" ID="top"></a>
-<h1>eric7.MicroPython.MicroPythonCommandsInterface</h1>
-
-<p>
-Module implementing some file system commands for MicroPython.
-</p>
-<h3>Global Attributes</h3>
-
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-
-<table>
-
-<tr>
-<td><a href="#MicroPythonCommandsInterface">MicroPythonCommandsInterface</a></td>
-<td>Class implementing some file system commands for MicroPython.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr />
-<hr />
-<a NAME="MicroPythonCommandsInterface" ID="MicroPythonCommandsInterface"></a>
-<h2>MicroPythonCommandsInterface</h2>
-
-<p>
-    Class implementing some file system commands for MicroPython.
-</p>
-<p>
-    Commands are provided to perform operations on the file system of a
-    connected MicroPython device. Supported commands are:
-    <ul>
-    <li>ls: directory listing</li>
-    <li>lls: directory listing with meta data</li>
-    <li>cd: change directory</li>
-    <li>pwd: get the current directory</li>
-    <li>put: copy a file to the connected device</li>
-    <li>get: get a file from the connected device</li>
-    <li>rm: remove a file from the connected device</li>
-    <li>rmrf: remove a file/directory recursively (like 'rm -rf' in bash)
-    <li>mkdir: create a new directory</li>
-    <li>rmdir: remove an empty directory</li>
-    </ul>
-</p>
-<p>
-    There are additional commands related to time and version.
-    <ul>
-    <li>version: get version info about MicroPython</li>
-    <li>getImplementation: get some implementation information</li>
-    <li>syncTime: synchronize the time of the connected device</li>
-    <li>showTime: show the current time of the connected device</li>
-    </ul>
-</p>
-<h3>Signals</h3>
-<dl>
-
-<dt>dataReceived(data)</dt>
-<dd>
-emitted to send data received via the serial
-        connection for further processing
-</dd>
-<dt>executeAsyncFinished()</dt>
-<dd>
-emitted to indicate the end of an
-        asynchronously executed list of commands (e.g. a script)
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-
-<table>
-
-<tr>
-<td><a href="#MicroPythonCommandsInterface.__init__">MicroPythonCommandsInterface</a></td>
-<td>Constructor</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.__rawOff">__rawOff</a></td>
-<td>Private method to switch 'raw' mode off.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.__rawOn">__rawOn</a></td>
-<td>Private method to switch the connected device to 'raw' mode.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.__readSerial">__readSerial</a></td>
-<td>Private slot to read all available serial data and emit it with the "dataReceived" signal for further processing.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.__shortError">__shortError</a></td>
-<td>Private method to create a shortened error message.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.cd">cd</a></td>
-<td>Public method to change the current directory on the connected device.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.connectToDevice">connectToDevice</a></td>
-<td>Public slot to start the manager.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.disconnectFromDevice">disconnectFromDevice</a></td>
-<td>Public slot to stop the thread.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.execute">execute</a></td>
-<td>Public method to send commands to the connected device and return the result.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.executeAsync">executeAsync</a></td>
-<td>Public method to execute a series of commands over a period of time without returning any result (asynchronous execution).</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.fileSystemInfo">fileSystemInfo</a></td>
-<td>Public method to obtain information about the currently mounted file systems.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.get">get</a></td>
-<td>Public method to copy a file from the connected device.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.getBoardInformation">getBoardInformation</a></td>
-<td>Public method to get some information data of the connected board.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.getData">getData</a></td>
-<td>Public method to read data from the connected device.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.getDeviceData">getDeviceData</a></td>
-<td>Public method to get some essential data for the connected board.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.getModules">getModules</a></td>
-<td>Public method to show a list of modules built into the firmware.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.getTime">getTime</a></td>
-<td>Public method to get the current time of the device.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.handlePreferencesChanged">handlePreferencesChanged</a></td>
-<td>Public slot to handle a change of the preferences.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.isConnected">isConnected</a></td>
-<td>Public method to get the connection status.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.lls">lls</a></td>
-<td>Public method to get a long directory listing of the connected device including meta data.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.ls">ls</a></td>
-<td>Public method to get a directory listing of the connected device.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.mkdir">mkdir</a></td>
-<td>Public method to create a new directory.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.probeDevice">probeDevice</a></td>
-<td>Public method to check the device is responding.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.put">put</a></td>
-<td>Public method to copy a local file to the connected device.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.putData">putData</a></td>
-<td>Public method to write the given data to the connected device.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.pwd">pwd</a></td>
-<td>Public method to get the current directory of the connected device.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.remainingTask">remainingTask</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.rm">rm</a></td>
-<td>Public method to remove a file from the connected device.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.rmdir">rmdir</a></td>
-<td>Public method to remove a directory.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.rmrf">rmrf</a></td>
-<td>Public method to remove a file or directory recursively.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.syncTime">syncTime</a></td>
-<td>Public method to set the time of the connected device to the local computer's time.</td>
-</tr>
-<tr>
-<td><a href="#MicroPythonCommandsInterface.write">write</a></td>
-<td>Public method to write data to the connected device.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-
-<table>
-<tr><td>None</td></tr>
-</table>
-
-<a NAME="MicroPythonCommandsInterface.__init__" ID="MicroPythonCommandsInterface.__init__"></a>
-<h4>MicroPythonCommandsInterface (Constructor)</h4>
-<b>MicroPythonCommandsInterface</b>(<i>parent=None</i>)
-
-<p>
-        Constructor
-</p>
-<dl>
-
-<dt><i>parent</i> (QObject)</dt>
-<dd>
-reference to the parent object
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.__rawOff" ID="MicroPythonCommandsInterface.__rawOff"></a>
-<h4>MicroPythonCommandsInterface.__rawOff</h4>
-<b>__rawOff</b>(<i></i>)
-
-<p>
-        Private method to switch 'raw' mode off.
-</p>
-<a NAME="MicroPythonCommandsInterface.__rawOn" ID="MicroPythonCommandsInterface.__rawOn"></a>
-<h4>MicroPythonCommandsInterface.__rawOn</h4>
-<b>__rawOn</b>(<i></i>)
-
-<p>
-        Private method to switch the connected device to 'raw' mode.
-</p>
-<p>
-        Note: switching to raw mode is done with synchronous writes.
-</p>
-<dl>
-<dt>Return:</dt>
-<dd>
-flag indicating success
-@rtype bool
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.__readSerial" ID="MicroPythonCommandsInterface.__readSerial"></a>
-<h4>MicroPythonCommandsInterface.__readSerial</h4>
-<b>__readSerial</b>(<i></i>)
-
-<p>
-        Private slot to read all available serial data and emit it with the
-        "dataReceived" signal for further processing.
-</p>
-<a NAME="MicroPythonCommandsInterface.__shortError" ID="MicroPythonCommandsInterface.__shortError"></a>
-<h4>MicroPythonCommandsInterface.__shortError</h4>
-<b>__shortError</b>(<i>error</i>)
-
-<p>
-        Private method to create a shortened error message.
-</p>
-<dl>
-
-<dt><i>error</i> (bytes)</dt>
-<dd>
-verbose error message
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-shortened error message
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.cd" ID="MicroPythonCommandsInterface.cd"></a>
-<h4>MicroPythonCommandsInterface.cd</h4>
-<b>cd</b>(<i>dirname</i>)
-
-<p>
-        Public method to change the current directory on the connected device.
-</p>
-<dl>
-
-<dt><i>dirname</i> (str)</dt>
-<dd>
-directory to change to
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.connectToDevice" ID="MicroPythonCommandsInterface.connectToDevice"></a>
-<h4>MicroPythonCommandsInterface.connectToDevice</h4>
-<b>connectToDevice</b>(<i>port</i>)
-
-<p>
-        Public slot to start the manager.
-</p>
-<dl>
-
-<dt><i>port</i> (str)</dt>
-<dd>
-name of the port to be used
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-flag indicating success
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.disconnectFromDevice" ID="MicroPythonCommandsInterface.disconnectFromDevice"></a>
-<h4>MicroPythonCommandsInterface.disconnectFromDevice</h4>
-<b>disconnectFromDevice</b>(<i></i>)
-
-<p>
-        Public slot to stop the thread.
-</p>
-<a NAME="MicroPythonCommandsInterface.execute" ID="MicroPythonCommandsInterface.execute"></a>
-<h4>MicroPythonCommandsInterface.execute</h4>
-<b>execute</b>(<i>commands</i>)
-
-<p>
-        Public method to send commands to the connected device and return the
-        result.
-</p>
-<p>
-        If no serial connection is available, empty results will be returned.
-</p>
-<dl>
-
-<dt><i>commands</i> (str)</dt>
-<dd>
-list of commands to be executed
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-tuple containing stdout and stderr output of the device
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-tuple of (bytes, bytes)
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.executeAsync" ID="MicroPythonCommandsInterface.executeAsync"></a>
-<h4>MicroPythonCommandsInterface.executeAsync</h4>
-<b>executeAsync</b>(<i>commandsList</i>)
-
-<p>
-        Public method to execute a series of commands over a period of time
-        without returning any result (asynchronous execution).
-</p>
-<dl>
-
-<dt><i>commandsList</i> (list of bytes)</dt>
-<dd>
-list of commands to be execute on the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.fileSystemInfo" ID="MicroPythonCommandsInterface.fileSystemInfo"></a>
-<h4>MicroPythonCommandsInterface.fileSystemInfo</h4>
-<b>fileSystemInfo</b>(<i></i>)
-
-<p>
-        Public method to obtain information about the currently mounted file
-        systems.
-</p>
-<dl>
-<dt>Return:</dt>
-<dd>
-tuple of tuples containing the file system name, the total
-            size, the used size and the free size
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-tuple of tuples of (str, int, int, int)
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.get" ID="MicroPythonCommandsInterface.get"></a>
-<h4>MicroPythonCommandsInterface.get</h4>
-<b>get</b>(<i>deviceFileName, hostFileName=None</i>)
-
-<p>
-        Public method to copy a file from the connected device.
-</p>
-<dl>
-
-<dt><i>deviceFileName</i> (str)</dt>
-<dd>
-name of the file to copy
-</dd>
-<dt><i>hostFileName</i> (str)</dt>
-<dd>
-name of the file to copy to
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-flag indicating success
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.getBoardInformation" ID="MicroPythonCommandsInterface.getBoardInformation"></a>
-<h4>MicroPythonCommandsInterface.getBoardInformation</h4>
-<b>getBoardInformation</b>(<i></i>)
-
-<p>
-        Public method to get some information data of the connected board.
-</p>
-<dl>
-<dt>Return:</dt>
-<dd>
-dictionary containing the determined data
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-dict
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.getData" ID="MicroPythonCommandsInterface.getData"></a>
-<h4>MicroPythonCommandsInterface.getData</h4>
-<b>getData</b>(<i>deviceFileName</i>)
-
-<p>
-        Public method to read data from the connected device.
-</p>
-<dl>
-
-<dt><i>deviceFileName</i> (str)</dt>
-<dd>
-name of the file to read from
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-data read from the device
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-bytes
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.getDeviceData" ID="MicroPythonCommandsInterface.getDeviceData"></a>
-<h4>MicroPythonCommandsInterface.getDeviceData</h4>
-<b>getDeviceData</b>(<i></i>)
-
-<p>
-        Public method to get some essential data for the connected board.
-</p>
-<dl>
-<dt>Return:</dt>
-<dd>
-dictionary containing the determined data
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-dict
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.getModules" ID="MicroPythonCommandsInterface.getModules"></a>
-<h4>MicroPythonCommandsInterface.getModules</h4>
-<b>getModules</b>(<i></i>)
-
-<p>
-        Public method to show a list of modules built into the firmware.
-</p>
-<dl>
-<dt>Return:</dt>
-<dd>
-list of builtin modules
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.getTime" ID="MicroPythonCommandsInterface.getTime"></a>
-<h4>MicroPythonCommandsInterface.getTime</h4>
-<b>getTime</b>(<i></i>)
-
-<p>
-        Public method to get the current time of the device.
-</p>
-<dl>
-<dt>Return:</dt>
-<dd>
-time of the device
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.handlePreferencesChanged" ID="MicroPythonCommandsInterface.handlePreferencesChanged"></a>
-<h4>MicroPythonCommandsInterface.handlePreferencesChanged</h4>
-<b>handlePreferencesChanged</b>(<i></i>)
-
-<p>
-        Public slot to handle a change of the preferences.
-</p>
-<a NAME="MicroPythonCommandsInterface.isConnected" ID="MicroPythonCommandsInterface.isConnected"></a>
-<h4>MicroPythonCommandsInterface.isConnected</h4>
-<b>isConnected</b>(<i></i>)
-
-<p>
-        Public method to get the connection status.
-</p>
-<dl>
-<dt>Return:</dt>
-<dd>
-flag indicating the connection status
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.lls" ID="MicroPythonCommandsInterface.lls"></a>
-<h4>MicroPythonCommandsInterface.lls</h4>
-<b>lls</b>(<i>dirname="", fullstat=False, showHidden=False</i>)
-
-<p>
-        Public method to get a long directory listing of the connected device
-        including meta data.
-</p>
-<dl>
-
-<dt><i>dirname</i> (str)</dt>
-<dd>
-name of the directory to be listed
-</dd>
-<dt><i>fullstat</i> (bool)</dt>
-<dd>
-flag indicating to return the full stat() tuple
-</dd>
-<dt><i>showHidden</i> (bool)</dt>
-<dd>
-flag indicating to show hidden files as well
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-list containing the directory listing with tuple entries of
-            the name and and a tuple of mode, size and time (if fullstat is
-            false) or the complete stat() tuple. 'None' is returned in case the
-            directory doesn't exist.
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-tuple of (str, tuple)
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.ls" ID="MicroPythonCommandsInterface.ls"></a>
-<h4>MicroPythonCommandsInterface.ls</h4>
-<b>ls</b>(<i>dirname=""</i>)
-
-<p>
-        Public method to get a directory listing of the connected device.
-</p>
-<dl>
-
-<dt><i>dirname</i> (str)</dt>
-<dd>
-name of the directory to be listed
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-tuple containg the directory listing
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-tuple of str
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.mkdir" ID="MicroPythonCommandsInterface.mkdir"></a>
-<h4>MicroPythonCommandsInterface.mkdir</h4>
-<b>mkdir</b>(<i>dirname</i>)
-
-<p>
-        Public method to create a new directory.
-</p>
-<dl>
-
-<dt><i>dirname</i> (str)</dt>
-<dd>
-name of the directory to create
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.probeDevice" ID="MicroPythonCommandsInterface.probeDevice"></a>
-<h4>MicroPythonCommandsInterface.probeDevice</h4>
-<b>probeDevice</b>(<i></i>)
-
-<p>
-        Public method to check the device is responding.
-</p>
-<p>
-        If the device has not been flashed with a MicroPython formware, the
-        probe will fail.
-</p>
-<dl>
-<dt>Return:</dt>
-<dd>
-flag indicating a communicating MicroPython device
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.put" ID="MicroPythonCommandsInterface.put"></a>
-<h4>MicroPythonCommandsInterface.put</h4>
-<b>put</b>(<i>hostFileName, deviceFileName=None</i>)
-
-<p>
-        Public method to copy a local file to the connected device.
-</p>
-<dl>
-
-<dt><i>hostFileName</i> (str)</dt>
-<dd>
-name of the file to be copied
-</dd>
-<dt><i>deviceFileName</i> (str)</dt>
-<dd>
-name of the file to copy to
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-flag indicating success
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.putData" ID="MicroPythonCommandsInterface.putData"></a>
-<h4>MicroPythonCommandsInterface.putData</h4>
-<b>putData</b>(<i>deviceFileName, content</i>)
-
-<p>
-        Public method to write the given data to the connected device.
-</p>
-<dl>
-
-<dt><i>deviceFileName</i> (str)</dt>
-<dd>
-name of the file to write to
-</dd>
-<dt><i>content</i> (bytes)</dt>
-<dd>
-data to write
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-flag indicating success
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.pwd" ID="MicroPythonCommandsInterface.pwd"></a>
-<h4>MicroPythonCommandsInterface.pwd</h4>
-<b>pwd</b>(<i></i>)
-
-<p>
-        Public method to get the current directory of the connected device.
-</p>
-<dl>
-<dt>Return:</dt>
-<dd>
-current directory
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.remainingTask" ID="MicroPythonCommandsInterface.remainingTask"></a>
-<h4>MicroPythonCommandsInterface.remainingTask</h4>
-<b>remainingTask</b>(<i></i>)
-
-<a NAME="MicroPythonCommandsInterface.rm" ID="MicroPythonCommandsInterface.rm"></a>
-<h4>MicroPythonCommandsInterface.rm</h4>
-<b>rm</b>(<i>filename</i>)
-
-<p>
-        Public method to remove a file from the connected device.
-</p>
-<dl>
-
-<dt><i>filename</i> (str)</dt>
-<dd>
-name of the file to be removed
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.rmdir" ID="MicroPythonCommandsInterface.rmdir"></a>
-<h4>MicroPythonCommandsInterface.rmdir</h4>
-<b>rmdir</b>(<i>dirname</i>)
-
-<p>
-        Public method to remove a directory.
-</p>
-<dl>
-
-<dt><i>dirname</i> (str)</dt>
-<dd>
-name of the directory to be removed
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.rmrf" ID="MicroPythonCommandsInterface.rmrf"></a>
-<h4>MicroPythonCommandsInterface.rmrf</h4>
-<b>rmrf</b>(<i>name, recursive=False, force=False</i>)
-
-<p>
-        Public method to remove a file or directory recursively.
-</p>
-<dl>
-
-<dt><i>name</i> (str)</dt>
-<dd>
-of the file or directory to remove
-</dd>
-<dt><i>recursive</i> (bool)</dt>
-<dd>
-flag indicating a recursive deletion
-</dd>
-<dt><i>force</i> (bool)</dt>
-<dd>
-flag indicating to ignore errors
-</dd>
-</dl>
-<dl>
-<dt>Return:</dt>
-<dd>
-flag indicating success
-</dd>
-</dl>
-<dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.syncTime" ID="MicroPythonCommandsInterface.syncTime"></a>
-<h4>MicroPythonCommandsInterface.syncTime</h4>
-<b>syncTime</b>(<i>deviceType, hasCPy=False</i>)
-
-<p>
-        Public method to set the time of the connected device to the local
-        computer's time.
-</p>
-<dl>
-
-<dt><i>deviceType</i> (str)</dt>
-<dd>
-type of board to sync time to
-</dd>
-<dt><i>hasCPy</i> (bool)</dt>
-<dd>
-flag indicating that the device has CircuitPython loadede
-            (defaults to False)
-</dd>
-</dl>
-<dl>
-
-<dt>Raises <b>OSError</b>:</dt>
-<dd>
-raised to indicate an issue with the device
-</dd>
-</dl>
-<a NAME="MicroPythonCommandsInterface.write" ID="MicroPythonCommandsInterface.write"></a>
-<h4>MicroPythonCommandsInterface.write</h4>
-<b>write</b>(<i>data</i>)
-
-<p>
-        Public method to write data to the connected device.
-</p>
-<dl>
-
-<dt><i>data</i> (bytes or bytearray)</dt>
-<dd>
-data to be written
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/eric7/Documentation/Source/eric7.MicroPython.MicroPythonDeviceInterface.html	Tue Feb 14 18:10:30 2023 +0100
@@ -0,0 +1,346 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric7.MicroPython.MicroPythonDeviceInterface</title>
+<meta charset="UTF-8">
+<link rel="stylesheet" href="styles.css">
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>eric7.MicroPython.MicroPythonDeviceInterface</h1>
+
+<p>
+Module implementing some file system commands for MicroPython.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+
+<tr>
+<td><a href="#MicroPythonDeviceInterface">MicroPythonDeviceInterface</a></td>
+<td>Class implementing some file system commands for MicroPython.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr />
+<hr />
+<a NAME="MicroPythonDeviceInterface" ID="MicroPythonDeviceInterface"></a>
+<h2>MicroPythonDeviceInterface</h2>
+
+<p>
+    Class implementing some file system commands for MicroPython.
+</p>
+<p>
+    Commands are provided to perform operations on the file system of a
+    connected MicroPython device. Supported commands are:
+    <ul>
+    <li>ls: directory listing</li>
+    <li>lls: directory listing with meta data</li>
+    <li>cd: change directory</li>
+    <li>pwd: get the current directory</li>
+    <li>put: copy a file to the connected device</li>
+    <li>putData: write data to a file of the connected device</li>
+    <li>get: get a file from the connected device</li>
+    <li>getData: read data of a file of the connected device</li>
+    <li>rm: remove a file from the connected device</li>
+    <li>rmrf: remove a file/directory recursively (like 'rm -rf' in bash)
+    <li>mkdir: create a new directory</li>
+    <li>rmdir: remove an empty directory</li>
+    <li>fileSystemInfo: get information about the file system
+    </ul>
+</p>
+<p>
+    There are additional non file systemcommands.
+    <ul>
+    <li>getBoardData: get information about the connected board</li>
+    <li>getDeviceData: get version info about MicroPython and some implementation
+        information</li>
+    <li>getModules: get a list of built-in modules</li>
+    <li>getTime: get the current time</li>
+    <li>syncTime: synchronize the time of the connected device</li>
+    <li>showTime: show the current time of the connected device</li>
+    </ul>
+</p>
+<h3>Signals</h3>
+<dl>
+
+<dt>dataReceived(data)</dt>
+<dd>
+emitted to send data received via the serial
+        connection for further processing
+</dd>
+<dt>executeAsyncFinished()</dt>
+<dd>
+emitted to indicate the end of an
+        asynchronously executed list of commands (e.g. a script)
+</dd>
+</dl>
+<h3>Derived from</h3>
+QObject
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#MicroPythonDeviceInterface.__init__">MicroPythonDeviceInterface</a></td>
+<td>Constructor</td>
+</tr>
+<tr>
+<td><a href="#MicroPythonDeviceInterface.__rawOff">__rawOff</a></td>
+<td>Private method to switch 'raw' mode off.</td>
+</tr>
+<tr>
+<td><a href="#MicroPythonDeviceInterface.__rawOn">__rawOn</a></td>
+<td>Private method to switch the connected device to 'raw' mode.</td>
+</tr>
+<tr>
+<td><a href="#MicroPythonDeviceInterface.__readSerial">__readSerial</a></td>
+<td>Private slot to read all available serial data and emit it with the "dataReceived" signal for further processing.</td>
+</tr>
+<tr>
+<td><a href="#MicroPythonDeviceInterface.connectToDevice">connectToDevice</a></td>
+<td>Public slot to start the manager.</td>
+</tr>
+<tr>
+<td><a href="#MicroPythonDeviceInterface.disconnectFromDevice">disconnectFromDevice</a></td>
+<td>Public slot to stop the thread.</td>
+</tr>
+<tr>
+<td><a href="#MicroPythonDeviceInterface.execute">execute</a></td>
+<td>Public method to send commands to the connected device and return the result.</td>
+</tr>
+<tr>
+<td><a href="#MicroPythonDeviceInterface.executeAsync">executeAsync</a></td>
+<td>Public method to execute a series of commands over a period of time without returning any result (asynchronous execution).</td>
+</tr>
+<tr>
+<td><a href="#MicroPythonDeviceInterface.handlePreferencesChanged">handlePreferencesChanged</a></td>
+<td>Public slot to handle a change of the preferences.</td>
+</tr>
+<tr>
+<td><a href="#MicroPythonDeviceInterface.isConnected">isConnected</a></td>
+<td>Public method to get the connection status.</td>
+</tr>
+<tr>
+<td><a href="#MicroPythonDeviceInterface.probeDevice">probeDevice</a></td>
+<td>Public method to check the device is responding.</td>
+</tr>
+<tr>
+<td><a href="#MicroPythonDeviceInterface.write">write</a></td>
+<td>Public method to write data to the connected device.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="MicroPythonDeviceInterface.__init__" ID="MicroPythonDeviceInterface.__init__"></a>
+<h4>MicroPythonDeviceInterface (Constructor)</h4>
+<b>MicroPythonDeviceInterface</b>(<i>parent=None</i>)
+
+<p>
+        Constructor
+</p>
+<dl>
+
+<dt><i>parent</i> (QObject)</dt>
+<dd>
+reference to the parent object
+</dd>
+</dl>
+<a NAME="MicroPythonDeviceInterface.__rawOff" ID="MicroPythonDeviceInterface.__rawOff"></a>
+<h4>MicroPythonDeviceInterface.__rawOff</h4>
+<b>__rawOff</b>(<i></i>)
+
+<p>
+        Private method to switch 'raw' mode off.
+</p>
+<a NAME="MicroPythonDeviceInterface.__rawOn" ID="MicroPythonDeviceInterface.__rawOn"></a>
+<h4>MicroPythonDeviceInterface.__rawOn</h4>
+<b>__rawOn</b>(<i></i>)
+
+<p>
+        Private method to switch the connected device to 'raw' mode.
+</p>
+<p>
+        Note: switching to raw mode is done with synchronous writes.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+flag indicating success
+@rtype bool
+</dd>
+</dl>
+<a NAME="MicroPythonDeviceInterface.__readSerial" ID="MicroPythonDeviceInterface.__readSerial"></a>
+<h4>MicroPythonDeviceInterface.__readSerial</h4>
+<b>__readSerial</b>(<i></i>)
+
+<p>
+        Private slot to read all available serial data and emit it with the
+        "dataReceived" signal for further processing.
+</p>
+<a NAME="MicroPythonDeviceInterface.connectToDevice" ID="MicroPythonDeviceInterface.connectToDevice"></a>
+<h4>MicroPythonDeviceInterface.connectToDevice</h4>
+<b>connectToDevice</b>(<i>port</i>)
+
+<p>
+        Public slot to start the manager.
+</p>
+<dl>
+
+<dt><i>port</i> (str)</dt>
+<dd>
+name of the port to be used
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+flag indicating success
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<a NAME="MicroPythonDeviceInterface.disconnectFromDevice" ID="MicroPythonDeviceInterface.disconnectFromDevice"></a>
+<h4>MicroPythonDeviceInterface.disconnectFromDevice</h4>
+<b>disconnectFromDevice</b>(<i></i>)
+
+<p>
+        Public slot to stop the thread.
+</p>
+<a NAME="MicroPythonDeviceInterface.execute" ID="MicroPythonDeviceInterface.execute"></a>
+<h4>MicroPythonDeviceInterface.execute</h4>
+<b>execute</b>(<i>commands</i>)
+
+<p>
+        Public method to send commands to the connected device and return the
+        result.
+</p>
+<p>
+        If no serial connection is available, empty results will be returned.
+</p>
+<dl>
+
+<dt><i>commands</i> (str or list of str)</dt>
+<dd>
+list of commands to be executed
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+tuple containing stdout and stderr output of the device
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+tuple of (bytes, bytes)
+</dd>
+</dl>
+<a NAME="MicroPythonDeviceInterface.executeAsync" ID="MicroPythonDeviceInterface.executeAsync"></a>
+<h4>MicroPythonDeviceInterface.executeAsync</h4>
+<b>executeAsync</b>(<i>commandsList</i>)
+
+<p>
+        Public method to execute a series of commands over a period of time
+        without returning any result (asynchronous execution).
+</p>
+<dl>
+
+<dt><i>commandsList</i> (list of bytes)</dt>
+<dd>
+list of commands to be execute on the device
+</dd>
+</dl>
+<a NAME="MicroPythonDeviceInterface.handlePreferencesChanged" ID="MicroPythonDeviceInterface.handlePreferencesChanged"></a>
+<h4>MicroPythonDeviceInterface.handlePreferencesChanged</h4>
+<b>handlePreferencesChanged</b>(<i></i>)
+
+<p>
+        Public slot to handle a change of the preferences.
+</p>
+<a NAME="MicroPythonDeviceInterface.isConnected" ID="MicroPythonDeviceInterface.isConnected"></a>
+<h4>MicroPythonDeviceInterface.isConnected</h4>
+<b>isConnected</b>(<i></i>)
+
+<p>
+        Public method to get the connection status.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+flag indicating the connection status
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<a NAME="MicroPythonDeviceInterface.probeDevice" ID="MicroPythonDeviceInterface.probeDevice"></a>
+<h4>MicroPythonDeviceInterface.probeDevice</h4>
+<b>probeDevice</b>(<i></i>)
+
+<p>
+        Public method to check the device is responding.
+</p>
+<p>
+        If the device has not been flashed with a MicroPython formware, the
+        probe will fail.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+flag indicating a communicating MicroPython device
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<a NAME="MicroPythonDeviceInterface.write" ID="MicroPythonDeviceInterface.write"></a>
+<h4>MicroPythonDeviceInterface.write</h4>
+<b>write</b>(<i>data</i>)
+
+<p>
+        Public method to write data to the connected device.
+</p>
+<dl>
+
+<dt><i>data</i> (bytes or bytearray)</dt>
+<dd>
+data to be written
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/src/eric7/Documentation/Source/eric7.MicroPython.MicroPythonFileManager.html	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.MicroPython.MicroPythonFileManager.html	Tue Feb 14 18:10:30 2023 +0100
@@ -187,16 +187,16 @@
 
 <a NAME="MicroPythonFileManager.__init__" ID="MicroPythonFileManager.__init__"></a>
 <h4>MicroPythonFileManager (Constructor)</h4>
-<b>MicroPythonFileManager</b>(<i>commandsInterface, parent=None</i>)
+<b>MicroPythonFileManager</b>(<i>device, parent=None</i>)
 
 <p>
         Constructor
 </p>
 <dl>
 
-<dt><i>commandsInterface</i> (MicroPythonCommandsInterface)</dt>
+<dt><i>device</i> (BaseDevice)</dt>
 <dd>
-reference to the commands interface object
+MicroPython device object
 </dd>
 <dt><i>parent</i> (QObject)</dt>
 <dd>
@@ -389,7 +389,7 @@
 <dd>
 name of the file to write to
 </dd>
-<dt><i>content</i> (bytes)</dt>
+<dt><i>data</i> (bytes)</dt>
 <dd>
 data to write
 </dd>
--- a/src/eric7/Documentation/Source/eric7.MicroPython.MicroPythonFileManagerWidget.html	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.MicroPython.MicroPythonFileManagerWidget.html	Tue Feb 14 18:10:30 2023 +0100
@@ -247,21 +247,16 @@
 
 <a NAME="MicroPythonFileManagerWidget.__init__" ID="MicroPythonFileManagerWidget.__init__"></a>
 <h4>MicroPythonFileManagerWidget (Constructor)</h4>
-<b>MicroPythonFileManagerWidget</b>(<i>commandsInterface, deviceWithLocalAccess, parent=None</i>)
+<b>MicroPythonFileManagerWidget</b>(<i>device, parent=None</i>)
 
 <p>
         Constructor
 </p>
 <dl>
 
-<dt><i>commandsInterface</i> (MicroPythonCommandsInterface)</dt>
+<dt><i>device</i> (BaseDevice)</dt>
 <dd>
-reference to the commands interface object
-</dd>
-<dt><i>deviceWithLocalAccess</i> (bool)</dt>
-<dd>
-flag indicating the device supports file
-            access via a local directory
+MicroPython device object
 </dd>
 <dt><i>parent</i> (QWidget)</dt>
 <dd>
@@ -766,6 +761,13 @@
 <p>
         Private slot to save the text of the current editor to a file on the device.
 </p>
+<dl>
+
+<dt><i>saveAs</i> (bool)</dt>
+<dd>
+flag indicating to save the file with a new name
+</dd>
+</dl>
 <a NAME="MicroPythonFileManagerWidget.on_syncButton_clicked" ID="MicroPythonFileManagerWidget.on_syncButton_clicked"></a>
 <h4>MicroPythonFileManagerWidget.on_syncButton_clicked</h4>
 <b>on_syncButton_clicked</b>(<i></i>)
--- a/src/eric7/Documentation/Source/eric7.MicroPython.MicroPythonWidget.html	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.MicroPython.MicroPythonWidget.html	Tue Feb 14 18:10:30 2023 +0100
@@ -212,8 +212,8 @@
 <td>Private slot to set the time of the connected device to the local computer's time.</td>
 </tr>
 <tr>
-<td><a href="#MicroPythonWidget.commandsInterface">commandsInterface</a></td>
-<td>Public method to get a reference to the commands interface object.</td>
+<td><a href="#MicroPythonWidget.deviceInterface">deviceInterface</a></td>
+<td>Public method to get a reference to the device interface object.</td>
 </tr>
 <tr>
 <td><a href="#MicroPythonWidget.eventFilter">eventFilter</a></td>
@@ -743,12 +743,12 @@
 flag indicating to not show a message
 </dd>
 </dl>
-<a NAME="MicroPythonWidget.commandsInterface" ID="MicroPythonWidget.commandsInterface"></a>
-<h4>MicroPythonWidget.commandsInterface</h4>
-<b>commandsInterface</b>(<i></i>)
+<a NAME="MicroPythonWidget.deviceInterface" ID="MicroPythonWidget.deviceInterface"></a>
+<h4>MicroPythonWidget.deviceInterface</h4>
+<b>deviceInterface</b>(<i></i>)
 
 <p>
-        Public method to get a reference to the commands interface object.
+        Public method to get a reference to the device interface object.
 </p>
 <dl>
 <dt>Return:</dt>
@@ -759,7 +759,7 @@
 <dl>
 <dt>Return Type:</dt>
 <dd>
-MicroPythonCommandsInterface
+MicroPythonDeviceInterface
 </dd>
 </dl>
 <a NAME="MicroPythonWidget.eventFilter" ID="MicroPythonWidget.eventFilter"></a>
--- a/src/eric7/Documentation/Source/index-eric7.MicroPython.html	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/Documentation/Source/index-eric7.MicroPython.html	Tue Feb 14 18:10:30 2023 +0100
@@ -40,7 +40,7 @@
 <td>Module implementing a dialog to manage the list of ignored serial devices.</td>
 </tr>
 <tr>
-<td><a href="eric7.MicroPython.MicroPythonCommandsInterface.html">MicroPythonCommandsInterface</a></td>
+<td><a href="eric7.MicroPython.MicroPythonDeviceInterface.html">MicroPythonDeviceInterface</a></td>
 <td>Module implementing some file system commands for MicroPython.</td>
 </tr>
 <tr>
--- a/src/eric7/MicroPython/ConnectionSelectionDialog.py	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/MicroPython/ConnectionSelectionDialog.py	Tue Feb 14 18:10:30 2023 +0100
@@ -52,9 +52,7 @@
             self.portNameComboBox.setItemData(index, (vid, pid), self.VidPidRole)
 
         self.deviceTypeComboBox.addItem("", "")
-        for board, description in sorted(
-            getSupportedDevices(), key=lambda x: x[1]
-        ):
+        for board, description in sorted(getSupportedDevices(), key=lambda x: x[1]):
             self.deviceTypeComboBox.addItem(description, board)
 
         if self.portNameComboBox.currentText():
--- a/src/eric7/MicroPython/Devices/CircuitPythonDevices.py	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/MicroPython/Devices/CircuitPythonDevices.py	Tue Feb 14 18:10:30 2023 +0100
@@ -19,13 +19,13 @@
 from eric7.EricWidgets.EricApplication import ericApp
 from eric7.SystemUtilities import FileSystemUtilities
 
+from ..MicroPythonWidget import HAS_QTCHART
+from . import FirmwareGithubUrls
 from .CircuitPythonUpdater.CircuitPythonUpdaterInterface import (
     CircuitPythonUpdaterInterface,
     isCircupAvailable,
 )
-from . import FirmwareGithubUrls
 from .DeviceBase import BaseDevice
-from ..MicroPythonWidget import HAS_QTCHART
 
 
 class CircuitPythonDevice(BaseDevice):
--- a/src/eric7/MicroPython/Devices/DeviceBase.py	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/MicroPython/Devices/DeviceBase.py	Tue Feb 14 18:10:30 2023 +0100
@@ -8,9 +8,11 @@
 class.
 """
 
+import ast
 import contextlib
 import copy
 import os
+import time
 
 from PyQt6.QtCore import QObject, pyqtSlot
 from PyQt6.QtWidgets import QInputDialog
@@ -39,6 +41,7 @@
         super().__init__(parent)
 
         self._deviceType = deviceType
+        self._interface = microPythonWidget.deviceInterface()
         self.microPython = microPythonWidget
         self._deviceData = {}  # dictionary with essential device data
 
@@ -56,7 +59,7 @@
 
         if connected:
             with contextlib.suppress(OSError):
-                self._deviceData = self.microPython.commandsInterface().getDeviceData()
+                self._deviceData = self.__getDeviceData()
 
     def getDeviceType(self):
         """
@@ -97,6 +100,18 @@
             )
             return False
 
+    def hasCircuitPython(self):
+        """
+        Public method to check, if the connected device is flashed with CircuitPython.
+
+        @return flag indicating CircuitPython
+        @rtype bool
+        """
+        return (
+            self.checkDeviceData()
+            and self._deviceData["mpy_name"].lower() == "circuitpython"
+        )
+
     def setButtons(self):
         """
         Public method to enable the supported action buttons.
@@ -267,7 +282,7 @@
         commands.append(b"\x04")
         rawOff = [b"\x02", b"\x02"]
         commandSequence = rawOn + newLine + commands + rawOff
-        self.microPython.commandsInterface().executeAsync(commandSequence)
+        self._interface.executeAsync(commandSequence)
 
     @pyqtSlot()
     def handleDataFlood(self):
@@ -360,3 +375,716 @@
         @rtype list of tuple of (str, str)
         """
         return []
+
+    ##################################################################
+    ## Methods below implement the file system commands
+    ##################################################################
+
+    def _shortError(self, error):
+        """
+        Protected method to create a shortened error message.
+
+        @param error verbose error message
+        @type bytes
+        @return shortened error message
+        @rtype str
+        """
+        if error:
+            decodedError = error.decode("utf-8")
+            try:
+                return decodedError.split["\r\n"][-2]
+            except Exception:
+                return decodedError
+
+        return self.tr("Detected an error without indications.")
+
+    def ls(self, dirname=""):
+        """
+        Public method to get a directory listing of the connected device.
+
+        @param dirname name of the directory to be listed
+        @type str
+        @return tuple containg the directory listing
+        @rtype tuple of str
+        @exception OSError raised to indicate an issue with the device
+        """
+        command = """
+import os as __os_
+print(__os_.listdir('{0}'))
+del __os_
+""".format(
+            dirname
+        )
+        out, err = self._interface.execute(command)
+        if err:
+            raise OSError(self._shortError(err))
+        return ast.literal_eval(out.decode("utf-8"))
+
+    def lls(self, dirname="", fullstat=False, showHidden=False):
+        """
+        Public method to get a long directory listing of the connected device
+        including meta data.
+
+        @param dirname name of the directory to be listed
+        @type str
+        @param fullstat flag indicating to return the full stat() tuple
+        @type bool
+        @param showHidden flag indicating to show hidden files as well
+        @type bool
+        @return list containing the directory listing with tuple entries of
+            the name and and a tuple of mode, size and time (if fullstat is
+            false) or the complete stat() tuple. 'None' is returned in case the
+            directory doesn't exist.
+        @rtype tuple of (str, tuple)
+        @exception OSError raised to indicate an issue with the device
+        """
+        command = """
+import os as __os_
+
+def is_visible(filename, showHidden):
+    return showHidden or (filename[0] != '.' and filename[-1] != '~')
+
+def stat(filename):
+    try:
+        rstat = __os_.lstat(filename)
+    except:
+        rstat = __os_.stat(filename)
+    return tuple(rstat)
+
+def listdir_stat(dirname, showHidden):
+    try:
+        files = __os_.listdir(dirname)
+    except OSError:
+        return []
+    if dirname in ('', '/'):
+        return list((f, stat(f)) for f in files if is_visible(f, showHidden))
+    return list(
+        (f, stat(dirname + '/' + f)) for f in files if is_visible(f, showHidden)
+    )
+
+print(listdir_stat('{0}', {1}))
+del __os_, stat, listdir_stat, is_visible
+""".format(
+            dirname, showHidden
+        )
+        out, err = self._interface.execute(command)
+        if err:
+            raise OSError(self._shortError(err))
+        fileslist = ast.literal_eval(out.decode("utf-8"))
+        if fileslist is None:
+            return None
+        else:
+            if fullstat:
+                return fileslist
+            else:
+                return [(f, (s[0], s[6], s[8])) for f, s in fileslist]
+
+    def cd(self, dirname):
+        """
+        Public method to change the current directory on the connected device.
+
+        @param dirname directory to change to
+        @type str
+        @exception OSError raised to indicate an issue with the device
+        """
+        if dirname:
+            command = """
+import os as __os_
+__os_.chdir('{0}')
+del __os_
+""".format(
+                dirname
+            )
+            out, err = self._interface.execute(command)
+            if err:
+                raise OSError(self._shortError(err))
+
+    def pwd(self):
+        """
+        Public method to get the current directory of the connected device.
+
+        @return current directory
+        @rtype str
+        @exception OSError raised to indicate an issue with the device
+        """
+        command = """
+import os as __os_
+print(__os_.getcwd())
+del __os_
+"""
+        out, err = self._interface.execute(command)
+        if err:
+            raise OSError(self._shortError(err))
+        return out.decode("utf-8").strip()
+
+    def rm(self, filename):
+        """
+        Public method to remove a file from the connected device.
+
+        @param filename name of the file to be removed
+        @type str
+        @exception OSError raised to indicate an issue with the device
+        """
+        if filename:
+            command = """
+import os as __os_
+__os_.remove('{0}')
+del __os_
+""".format(
+                filename
+            )
+            out, err = self._interface.execute(command)
+            if err:
+                raise OSError(self._shortError(err))
+
+    def rmrf(self, name, recursive=False, force=False):
+        """
+        Public method to remove a file or directory recursively.
+
+        @param name of the file or directory to remove
+        @type str
+        @param recursive flag indicating a recursive deletion
+        @type bool
+        @param force flag indicating to ignore errors
+        @type bool
+        @return flag indicating success
+        @rtype bool
+        @exception OSError raised to indicate an issue with the device
+        """
+        if name:
+            command = """
+import os as __os_
+
+def remove_file(name, recursive=False, force=False):
+    try:
+        mode = __os_.stat(name)[0]
+        if mode & 0x4000 != 0:
+            if recursive:
+                for file in __os_.listdir(name):
+                    success = remove_file(name + '/' + file, recursive, force)
+                    if not success and not force:
+                        return False
+                __os_.rmdir(name)
+            else:
+                if not force:
+                    return False
+        else:
+            __os_.remove(name)
+    except:
+        if not force:
+            return False
+    return True
+
+print(remove_file('{0}', {1}, {2}))
+del __os_, remove_file
+""".format(
+                name, recursive, force
+            )
+            out, err = self._interface.execute(command)
+            if err:
+                raise OSError(self._shortError(err))
+            return ast.literal_eval(out.decode("utf-8"))
+
+        return False
+
+    def mkdir(self, dirname):
+        """
+        Public method to create a new directory.
+
+        @param dirname name of the directory to create
+        @type str
+        @exception OSError raised to indicate an issue with the device
+        """
+        if dirname:
+            command = """
+import os as __os_
+__os_.mkdir('{0}')
+del __os_
+""".format(
+                dirname
+            )
+            out, err = self._interface.execute(command)
+            if err:
+                raise OSError(self._shortError(err))
+
+    def rmdir(self, dirname):
+        """
+        Public method to remove a directory.
+
+        @param dirname name of the directory to be removed
+        @type str
+        @exception OSError raised to indicate an issue with the device
+        """
+        if dirname:
+            command = """
+import os as __os_
+__os_.rmdir('{0}')
+del __os_
+""".format(
+                dirname
+            )
+            out, err = self._interface.execute(command)
+            if err:
+                raise OSError(self._shortError(err))
+
+    def put(self, hostFileName, deviceFileName=None):
+        """
+        Public method to copy a local file to the connected device.
+
+        @param hostFileName name of the file to be copied
+        @type str
+        @param deviceFileName name of the file to copy to
+        @type str
+        @return flag indicating success
+        @rtype bool
+        @exception OSError raised to indicate an issue with the device
+        """
+        if not os.path.isfile(hostFileName):
+            raise OSError("No such file: {0}".format(hostFileName))
+
+        if not deviceFileName:
+            deviceFileName = os.path.basename(hostFileName)
+
+        with open(hostFileName, "rb") as hostFile:
+            content = hostFile.read()
+
+        return self.putData(deviceFileName, content)
+
+    def putData(self, deviceFileName, content):
+        """
+        Public method to write the given data to the connected device.
+
+        @param deviceFileName name of the file to write to
+        @type str
+        @param content data to write
+        @type bytes
+        @return flag indicating success
+        @rtype bool
+        @exception OSError raised to indicate an issue with the device
+        """
+        if not deviceFileName:
+            raise OSError("Missing device file name")
+
+        # convert eol '\r'
+        content = content.replace(b"\r\n", b"\r")
+        content = content.replace(b"\n", b"\r")
+
+        commands = [
+            "fd = open('{0}', 'wb')".format(deviceFileName),
+            "f = fd.write",
+        ]
+        while content:
+            chunk = content[:64]
+            commands.append("f(" + repr(chunk) + ")")
+            content = content[64:]
+        commands.extend(
+            [
+                "fd.close()",
+                "del f, fd",
+            ]
+        )
+        command = "\n".join(commands)
+
+        out, err = self._interface.execute(command)
+        if err:
+            raise OSError(self._shortError(err))
+        return True
+
+    def get(self, deviceFileName, hostFileName=None):
+        """
+        Public method to copy a file from the connected device.
+
+        @param deviceFileName name of the file to copy
+        @type str
+        @param hostFileName name of the file to copy to
+        @type str
+        @return flag indicating success
+        @rtype bool
+        @exception OSError raised to indicate an issue with the device
+        """
+        if not deviceFileName:
+            raise OSError("Missing device file name")
+
+        if not hostFileName:
+            hostFileName = deviceFileName
+
+        out = self.getData(deviceFileName)
+        with open(hostFileName, "wb") as hostFile:
+            hostFile.write(out)
+
+        return True
+
+    def getData(self, deviceFileName):
+        """
+        Public method to read data from the connected device.
+
+        @param deviceFileName name of the file to read from
+        @type str
+        @return data read from the device
+        @rtype bytes
+        @exception OSError raised to indicate an issue with the device
+        """
+        if not deviceFileName:
+            raise OSError("Missing device file name")
+
+        command = """
+def send_data():
+    try:
+        from microbit import uart as u
+    except ImportError:
+        try:
+            from sys import stdout as u
+        except ImportError:
+            try:
+                from machine import UART
+                u = UART(0, 115200)
+            except Exception:
+                raise Exception('Could not find UART module in device.')
+    f = open('{0}', 'rb')
+    r = f.read
+    result = True
+    while result:
+        result = r(32)
+        if result:
+            u.write(result)
+    f.close()
+
+send_data()
+del send_data
+""".format(
+            deviceFileName
+        )
+        out, err = self._interface.execute(command)
+        if err:
+            raise OSError(self._shortError(err))
+
+        # write the received bytes to the local file
+        # convert eol to "\n"
+        out = out.replace(b"\r\n", b"\n")
+        out = out.replace(b"\r", b"\n")
+
+        return out
+
+    def fileSystemInfo(self):
+        """
+        Public method to obtain information about the currently mounted file
+        systems.
+
+        @return tuple of tuples containing the file system name, the total
+            size, the used size and the free size
+        @rtype tuple of tuples of (str, int, int, int)
+        @exception OSError raised to indicate an issue with the device
+        """
+        command = """
+import os as __os_
+
+def fsinfo():
+    infolist = []
+    info = __os_.statvfs('/')
+    if info[0] == 0:
+        fsnames = __os_.listdir('/')
+        for fs in fsnames:
+            fs = '/' + fs
+            infolist.append((fs, __os_.statvfs(fs)))
+    else:
+        infolist.append(('/', info))
+    return infolist
+
+print(fsinfo())
+del __os_, fsinfo
+"""
+        out, err = self._interface.execute(command)
+        if err:
+            raise OSError(self._shortError(err))
+        infolist = ast.literal_eval(out.decode("utf-8"))
+        if infolist is None:
+            return None
+        else:
+            filesystemInfos = []
+            for fs, info in infolist:
+                totalSize = info[2] * info[1]
+                freeSize = info[4] * info[1]
+                usedSize = totalSize - freeSize
+                filesystemInfos.append((fs, totalSize, usedSize, freeSize))
+
+        return tuple(filesystemInfos)
+
+    ##################################################################
+    ## board information related methods below
+    ##################################################################
+
+    def __getDeviceData(self):
+        """
+        Private method to get some essential data for the connected board.
+
+        @return dictionary containing the determined data
+        @rtype dict
+        @exception OSError raised to indicate an issue with the device
+        """
+        command = """
+res = {}
+
+import os as __os_
+uname = __os_.uname()
+res['sysname'] = uname.sysname
+res['nodename'] = uname.nodename
+res['release'] = uname.release
+res['version'] = uname.version
+res['machine'] = uname.machine
+
+import sys as __sys_
+res['py_platform'] = __sys_.platform
+res['py_version'] = __sys_.version
+
+try:
+    res['mpy_name'] = __sys_.implementation.name
+except AttributeError:
+    res['mpy_name'] = 'unknown'
+
+try:
+    res['mpy_version'] = '.'.join((str(i) for i in __sys_.implementation.version))
+except AttributeError:
+    res['mpy_version'] = 'unknown'
+
+try:
+    import pimoroni as __pimoroni_
+    res['mpy_variant'] = 'Pimoroni'
+    del __pimoroni_
+except ImportError:
+    res['mpy_variant'] = ''
+
+print(res)
+del res, uname, __os_, __sys_
+"""
+        out, err = self._interface.execute(command)
+        if err:
+            raise OSError(self._shortError(err))
+        return ast.literal_eval(out.decode("utf-8"))
+
+    def getBoardInformation(self):
+        """
+        Public method to get some information data of the connected board.
+
+        @return dictionary containing the determined data
+        @rtype dict
+        @exception OSError raised to indicate an issue with the device
+        """
+        command = """
+res = {}
+
+import gc as __gc_
+__gc_.enable()
+__gc_.collect()
+mem_alloc = __gc_.mem_alloc()
+mem_free = __gc_.mem_free()
+mem_total = mem_alloc + mem_free
+res['mem_total_kb'] = mem_total / 1024.0
+res['mem_used_kb'] = mem_alloc / 1024.0
+res['mem_used_pc'] = mem_alloc / mem_total * 100.0
+res['mem_free_kb'] = mem_free / 1024.0
+res['mem_free_pc'] = mem_free / mem_total * 100.0
+del __gc_, mem_alloc, mem_free, mem_total
+
+import os as __os_
+uname = __os_.uname()
+res['sysname'] = uname.sysname
+res['nodename'] = uname.nodename
+res['release'] = uname.release
+res['version'] = uname.version
+res['machine'] = uname.machine
+
+import sys as __sys_
+res['py_platform'] = __sys_.platform
+res['py_version'] = __sys_.version
+
+try:
+    res['mpy_name'] = __sys_.implementation.name
+except AttributeError:
+    res['mpy_name'] = 'unknown'
+try:
+    res['mpy_version'] = '.'.join((str(i) for i in __sys_.implementation.version))
+except AttributeError:
+    res['mpy_version'] = 'unknown'
+try:
+    import pimoroni as __pimoroni_
+    res['mpy_variant'] = 'Pimoroni'
+    del __pimoroni_
+except ImportError:
+    res['mpy_variant'] = ''
+
+try:
+    stat_ = __os_.statvfs('/flash')
+    res['flash_info_available'] = True
+    res['flash_total_kb'] = stat_[2] * stat_[0] / 1024.0
+    res['flash_free_kb'] = stat_[3] * stat_[0] / 1024.0
+    res['flash_used_kb'] = res['flash_total_kb'] - res['flash_free_kb']
+    res['flash_free_pc'] = res['flash_free_kb'] / res['flash_total_kb'] * 100.0
+    res['flash_used_pc'] = res['flash_used_kb'] / res['flash_total_kb'] * 100.0
+    del stat_
+except AttributeError:
+    res['flash_info_available'] = False
+
+try:
+    import machine as __mc_
+    if isinstance(__mc_.freq(), tuple):
+        res['mc_frequency_mhz'] = __mc_.freq()[0] / 1000000.0
+    else:
+       res['mc_frequency_mhz'] = __mc_.freq() / 1000000.0
+    res['mc_id'] = ':'.join(['{0:X}'.format(x) for x in __mc_.unique_id()])
+    del __mc_
+except ImportError:
+    try:
+        import microcontroller as __mc_
+        res['mc_frequency_mhz'] = __mc_.cpu.frequency / 1000000.0
+        res['mc_temp_c'] = __mc_.cpu.temperature
+        res['mc_id'] = ':'.join(['{0:X}'.format(x) for x in __mc_.cpu.uid])
+        del __mc_
+    except ImportError:
+        res['mc_frequency'] = None
+        res['mc_temp'] = None
+
+try:
+    import ulab as __ulab_
+    res['ulab'] = __ulab_.__version__
+    del __ulab_
+except ImportError:
+    res['ulab'] = None
+
+print(res)
+del res, __os_, __sys_
+"""
+        out, err = self._interface.execute(command)
+        if err:
+            raise OSError(self._shortError(err))
+        return ast.literal_eval(out.decode("utf-8"))
+
+    def getModules(self):
+        """
+        Public method to show a list of modules built into the firmware.
+
+        @return list of builtin modules
+        @rtype list of str
+        @exception OSError raised to indicate an issue with the device
+        """
+        commands = ["help('modules')"]
+        out, err = self._interface.execute(commands)
+        if err:
+            raise OSError(self._shortError(err))
+
+        modules = []
+        for line in out.decode("utf-8").splitlines()[:-1]:
+            modules.extend(line.split())
+        return modules
+
+    ##################################################################
+    ## time related methods below
+    ##################################################################
+
+    def getTime(self):
+        """
+        Public method to get the current time of the device.
+
+        @return time of the device
+        @rtype str
+        @exception OSError raised to indicate an issue with the device
+        """
+        command = """
+try:
+    import rtc as __rtc_
+    print(
+        '{0:04d}-{1:02d}-{2:02d} {3:02d}:{4:02d}:{5:02d}'
+        .format(*__rtc_.RTC().datetime[:6])
+    )
+    del __rtc_
+except:
+    import time as __time_
+    try:
+        print(__time_.strftime('%Y-%m-%d %H:%M:%S', __time_.localtime()))
+    except AttributeError:
+        tm = __time_.localtime()
+        print(
+            '{0:04d}-{1:02d}-{2:02d} {3:02d}:{4:02d}:{5:02d}'
+            .format(tm[0], tm[1], tm[2], tm[3], tm[4], tm[5])
+        )
+        del tm
+    del __time_
+"""
+        out, err = self._interface.execute(command)
+        if err:
+            if b"NotImplementedError" in err:
+                return "&lt;unsupported&gt; &lt;unsupported&gt;"
+            raise OSError(self._shortError(err))
+        return out.decode("utf-8").strip()
+
+    def _getSetTimeCode(self):
+        """
+        Protected method to get the device code to set the time.
+
+        Note: This method must be implemented in the various device specific
+        subclasses.
+
+        @return code to be executed on the connected device to set the time
+        @rtype str
+        """
+        # rtc_time[0] - year    4 digit
+        # rtc_time[1] - month   1..12
+        # rtc_time[2] - day     1..31
+        # rtc_time[3] - weekday 1..7 1=Monday
+        # rtc_time[4] - hour    0..23
+        # rtc_time[5] - minute  0..59
+        # rtc_time[6] - second  0..59
+        # rtc_time[7] - yearday 1..366
+        # rtc_time[8] - isdst   0, 1, or -1
+        if self.hasCircuitPython():
+            # CircuitPython is handled here in order to not duplicate the code in all
+            # specific boards able to be flashed with CircuitPython or MicroPython
+            return """
+def set_time(rtc_time):
+    import rtc
+    import time
+    clock = rtc.RTC()
+    clock_time = rtc_time[:3] + rtc_time[4:7] + (rtc_time[3], rtc_time[7], rtc_time[8])
+    clock.datetime = time.struct_time(clock_time)
+"""
+        else:
+            return ""
+
+    def syncTime(self, deviceType, hasCPy=False):
+        """
+        Public method to set the time of the connected device to the local
+        computer's time.
+
+        @param deviceType type of board to sync time to
+        @type str
+        @param hasCPy flag indicating that the device has CircuitPython loadede
+            (defaults to False)
+        @type bool
+        @exception OSError raised to indicate an issue with the device
+        """
+        setTimeCode = self._getSetTimeCode()
+        if setTimeCode:
+            now = time.localtime(time.time())
+            command = """{0}
+set_time({1})
+del set_time
+""".format(
+                setTimeCode,
+                (
+                    now.tm_year,
+                    now.tm_mon,
+                    now.tm_mday,
+                    now.tm_wday + 1,
+                    now.tm_hour,
+                    now.tm_min,
+                    now.tm_sec,
+                    now.tm_yday,
+                    now.tm_isdst,
+                ),
+            )
+            out, err = self._interface.execute(command)
+            if err:
+                raise OSError(self._shortError(err))
+
+
+#
+# eflag: noqa = M613
--- a/src/eric7/MicroPython/Devices/EspDevices.py	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/MicroPython/Devices/EspDevices.py	Tue Feb 14 18:10:30 2023 +0100
@@ -18,9 +18,9 @@
 from eric7.EricWidgets.EricProcessDialog import EricProcessDialog
 from eric7.SystemUtilities import PythonUtilities
 
+from ..MicroPythonWidget import HAS_QTCHART
 from . import FirmwareGithubUrls
 from .DeviceBase import BaseDevice
-from ..MicroPythonWidget import HAS_QTCHART
 
 
 class EspDevice(BaseDevice):
@@ -306,7 +306,7 @@
         Private slot to backup the currently flashed firmware.
         """
         from .EspDialogs.EspBackupRestoreFirmwareDialog import (
-            EspBackupRestoreFirmwareDialog
+            EspBackupRestoreFirmwareDialog,
         )
 
         dlg = EspBackupRestoreFirmwareDialog(backupMode=True)
@@ -342,7 +342,7 @@
         Private slot to restore a previously saved firmware.
         """
         from .EspDialogs.EspBackupRestoreFirmwareDialog import (
-            EspBackupRestoreFirmwareDialog
+            EspBackupRestoreFirmwareDialog,
         )
 
         dlg = EspBackupRestoreFirmwareDialog(backupMode=False)
@@ -525,7 +525,7 @@
         Private slot to reset the connected device.
         """
         if self.microPython.isConnected():
-            self.microPython.commandsInterface().execute(
+            self.microPython.deviceInterface().execute(
                 [
                     "import machine",
                     "machine.reset()",
@@ -576,6 +576,52 @@
         """
         return Preferences.getMicroPython("MicroPythonFirmwareUrl")
 
+    ##################################################################
+    ## time related methods below
+    ##################################################################
+
+    def _getSetTimeCode(self):
+        """
+        Protected method to get the device code to set the time.
+
+        Note: This method must be implemented in the various device specific
+        subclasses.
+
+        @return code to be executed on the connected device to set the time
+        @rtype str
+        """
+        # rtc_time[0] - year    4 digit
+        # rtc_time[1] - month   1..12
+        # rtc_time[2] - day     1..31
+        # rtc_time[3] - weekday 1..7 1=Monday
+        # rtc_time[4] - hour    0..23
+        # rtc_time[5] - minute  0..59
+        # rtc_time[6] - second  0..59
+        # rtc_time[7] - yearday 1..366
+        # rtc_time[8] - isdst   0, 1, or -1
+
+        # The machine.RTC.init() (ESP32) and machine.rtc.datetime() (ESP8266) functions
+        # take the arguments in the order:
+        # (year, month, day, weekday, hour, minute, second, subseconds)
+        # __IGNORE_WARNING_M891__
+        # https://docs.micropython.org/en/latest/library/machine.RTC.html#machine-rtc
+        #
+        # LoBo variant of MPy deviates.
+        return """
+def set_time(rtc_time):
+    import machine
+    rtc = machine.RTC()
+    try:
+        rtc.datetime(rtc_time[:7] + (0,))
+    except Exception:
+        import os
+        if 'LoBo' in os.uname()[0]:
+            clock_time = rtc_time[:3] + rtc_time[4:7] + (rtc_time[3], rtc_time[7])
+        else:
+            clock_time = rtc_time[:7] + (0,)
+        rtc.init(clock_time)
+"""
+
 
 def createDevice(microPythonWidget, deviceType, vid, pid, boardName, serialNumber):
     """
--- a/src/eric7/MicroPython/Devices/MicrobitDevices.py	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/MicroPython/Devices/MicrobitDevices.py	Tue Feb 14 18:10:30 2023 +0100
@@ -8,6 +8,7 @@
 Calliope mini boards.
 """
 
+import ast
 import contextlib
 import os
 import shutil
@@ -21,9 +22,9 @@
 from eric7.EricWidgets.EricApplication import ericApp
 from eric7.SystemUtilities import FileSystemUtilities
 
+from ..MicroPythonWidget import HAS_QTCHART
 from . import FirmwareGithubUrls
 from .DeviceBase import BaseDevice
-from ..MicroPythonWidget import HAS_QTCHART
 
 
 class MicrobitDevice(BaseDevice):
@@ -530,7 +531,7 @@
         for line in script.splitlines():
             commands.append("f(" + repr(line + "\n") + ")")
         commands.append("fd.close()")
-        out, err = self.microPython.commandsInterface().execute(commands)
+        out, err = self.microPython.deviceInterface().execute(commands)
         if err:
             EricMessageBox.critical(
                 self.microPython,
@@ -551,7 +552,7 @@
         """
         if self.getDeviceType() == "bbc_microbit":
             # BBC micro:bit
-            self.microPython.commandsInterface().execute(
+            self.microPython.deviceInterface().execute(
                 [
                     "import microbit",
                     "microbit.reset()",
@@ -559,7 +560,7 @@
             )
         else:
             # Calliope mini
-            self.microPython.commandsInterface().execute(
+            self.microPython.deviceInterface().execute(
                 [
                     "import calliope_mini",
                     "calliope_mini.reset()",
@@ -632,6 +633,124 @@
                 ),
             ]
 
+    ##################################################################
+    ## Methods below implement the file system commands
+    ##################################################################
+
+    def ls(self, dirname=""):
+        """
+        Public method to get a directory listing of the connected device.
+
+        @param dirname name of the directory to be listed
+        @type str
+        @return tuple containg the directory listing
+        @rtype tuple of str
+        @exception OSError raised to indicate an issue with the device
+        """
+        # BBC micro:bit does not support directories
+        commands = [
+            "import os as __os_",
+            "print(__os_.listdir())",
+            "del __os_",
+        ]
+        out, err = self._interface.execute(commands)
+        if err:
+            raise OSError(self._shortError(err))
+        return ast.literal_eval(out.decode("utf-8"))
+
+    def lls(self, dirname="", fullstat=False, showHidden=False):
+        """
+        Public method to get a long directory listing of the connected device
+        including meta data.
+
+        @param dirname name of the directory to be listed
+        @type str
+        @param fullstat flag indicating to return the full stat() tuple
+        @type bool
+        @param showHidden flag indicating to show hidden files as well
+        @type bool
+        @return list containing the directory listing with tuple entries of
+            the name and and a tuple of mode, size and time (if fullstat is
+            false) or the complete stat() tuple. 'None' is returned in case the
+            directory doesn't exist.
+        @rtype tuple of (str, tuple)
+        @exception OSError raised to indicate an issue with the device
+        """
+        # BBC micro:bit does not support directories
+        commands = [
+            "import os as __os_",
+            "\n".join(
+                [
+                    "def is_visible(filename, showHidden):",
+                    "    return showHidden or "
+                    "(filename[0] != '.' and filename[-1] != '~')",
+                ]
+            ),
+            "\n".join(
+                [
+                    "def stat(filename):",
+                    "    size = __os_.size(filename)",
+                    "    return (0, 0, 0, 0, 0, 0, size, 0, 0, 0)",
+                ]
+            ),
+            "\n".join(
+                [
+                    "def listdir_stat(showHidden):",
+                    "    files = __os_.listdir()",
+                    "    return list((f, stat(f)) for f in files if"
+                    " is_visible(f,showHidden))",
+                ]
+            ),
+            "print(listdir_stat({0}))".format(showHidden),
+            "del __os_, stat, listdir_stat, is_visible",
+        ]
+        out, err = self._interface.execute(commands)
+        if err:
+            raise OSError(self._shortError(err))
+        fileslist = ast.literal_eval(out.decode("utf-8"))
+        if fileslist is None:
+            return None
+        else:
+            if fullstat:
+                return fileslist
+            else:
+                return [(f, (s[0], s[6], s[8])) for f, s in fileslist]
+
+    def pwd(self):
+        """
+        Public method to get the current directory of the connected device.
+
+        @return current directory
+        @rtype str
+        """
+        # BBC micro:bit does not support directories
+        return ""
+
+    ##################################################################
+    ## time related methods below
+    ##################################################################
+
+    def _getSetTimeCode(self):
+        """
+        Protected method to get the device code to set the time.
+
+        Note: This method must be implemented in the various device specific
+        subclasses.
+
+        @return code to be executed on the connected device to set the time
+        @rtype str
+        """
+        # rtc_time[0] - year    4 digit
+        # rtc_time[1] - month   1..12
+        # rtc_time[2] - day     1..31
+        # rtc_time[3] - weekday 1..7 1=Monday
+        # rtc_time[4] - hour    0..23
+        # rtc_time[5] - minute  0..59
+        # rtc_time[6] - second  0..59
+        # rtc_time[7] - yearday 1..366
+        # rtc_time[8] - isdst   0, 1, or -1
+        return ""
+
 
 def createDevice(microPythonWidget, deviceType, vid, pid, boardName, serialNumber):
     """
--- a/src/eric7/MicroPython/Devices/PyBoardDevices.py	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/MicroPython/Devices/PyBoardDevices.py	Tue Feb 14 18:10:30 2023 +0100
@@ -19,9 +19,9 @@
 from eric7.EricWidgets.EricProcessDialog import EricProcessDialog
 from eric7.SystemUtilities import FileSystemUtilities
 
+from ..MicroPythonWidget import HAS_QTCHART
 from . import FirmwareGithubUrls
 from .DeviceBase import BaseDevice
-from ..MicroPythonWidget import HAS_QTCHART
 
 
 class PyBoardDevice(BaseDevice):
@@ -489,7 +489,7 @@
         Private slot to activate the bootloader and disconnect.
         """
         if self.microPython.isConnected():
-            self.microPython.commandsInterface().execute(
+            self.microPython.deviceInterface().execute(
                 [
                     "import pyb",
                     "pyb.bootloader()",
@@ -498,6 +498,41 @@
             # simulate pressing the disconnect button
             self.microPython.on_connectButton_clicked()
 
+    ##################################################################
+    ## time related methods below
+    ##################################################################
+
+    def _getSetTimeCode(self):
+        """
+        Protected method to get the device code to set the time.
+
+        Note: This method must be implemented in the various device specific
+        subclasses.
+
+        @return code to be executed on the connected device to set the time
+        @rtype str
+        """
+        # rtc_time[0] - year    4 digit
+        # rtc_time[1] - month   1..12
+        # rtc_time[2] - day     1..31
+        # rtc_time[3] - weekday 1..7 1=Monday
+        # rtc_time[4] - hour    0..23
+        # rtc_time[5] - minute  0..59
+        # rtc_time[6] - second  0..59
+        # rtc_time[7] - yearday 1..366
+        # rtc_time[8] - isdst   0, 1, or -1
+
+        # The pyb.RTC.datetime() function takes the arguments in the
+        # order: (year, month, day, weekday, hour, minute, second,
+        # subseconds)
+        # http://docs.micropython.org/en/latest/library/pyb.RTC.html#pyb.RTC.datetime
+        return """
+def set_time(rtc_time):
+    import pyb
+    rtc = pyb.RTC()
+    rtc.datetime(rtc_time[:7] + (0,))
+"""
+
 
 def createDevice(microPythonWidget, deviceType, vid, pid, boardName, serialNumber):
     """
--- a/src/eric7/MicroPython/Devices/RP2040Devices.py	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/MicroPython/Devices/RP2040Devices.py	Tue Feb 14 18:10:30 2023 +0100
@@ -16,9 +16,9 @@
 from eric7.EricWidgets import EricMessageBox
 from eric7.EricWidgets.EricApplication import ericApp
 
+from ..MicroPythonWidget import HAS_QTCHART
 from . import FirmwareGithubUrls
 from .DeviceBase import BaseDevice
-from ..MicroPythonWidget import HAS_QTCHART
 
 
 class RP2040Device(BaseDevice):
@@ -177,7 +177,7 @@
         Private method to switch the board into 'bootloader' mode.
         """
         if self.microPython.isConnected():
-            self.microPython.commandsInterface().execute(
+            self.microPython.deviceInterface().execute(
                 [
                     "import machine",
                     "machine.bootloader()",
@@ -296,6 +296,41 @@
             ),
         ]
 
+    ##################################################################
+    ## time related methods below
+    ##################################################################
+
+    def _getSetTimeCode(self):
+        """
+        Protected method to get the device code to set the time.
+
+        Note: This method must be implemented in the various device specific
+        subclasses.
+
+        @return code to be executed on the connected device to set the time
+        @rtype str
+        """
+        # rtc_time[0] - year    4 digit
+        # rtc_time[1] - month   1..12
+        # rtc_time[2] - day     1..31
+        # rtc_time[3] - weekday 1..7 1=Monday
+        # rtc_time[4] - hour    0..23
+        # rtc_time[5] - minute  0..59
+        # rtc_time[6] - second  0..59
+        # rtc_time[7] - yearday 1..366
+        # rtc_time[8] - isdst   0, 1, or -1
+
+        # The machine.rtc.datetime() function takes the arguments in the order:
+        # (year, month, day, weekday, hour, minute, second, subseconds)
+        # __IGNORE_WARNING_M891__
+        # https://docs.micropython.org/en/latest/library/machine.RTC.html#machine-rtc
+        return """
+def set_time(rtc_time):
+    import machine
+    rtc = machine.RTC()
+    rtc.datetime(rtc_time[:7] + (0,))
+"""
+
 
 def createDevice(microPythonWidget, deviceType, vid, pid, boardName, serialNumber):
     """
--- a/src/eric7/MicroPython/Devices/TeensyDevices.py	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/MicroPython/Devices/TeensyDevices.py	Tue Feb 14 18:10:30 2023 +0100
@@ -15,9 +15,9 @@
 from eric7.EricWidgets import EricMessageBox
 from eric7.EricWidgets.EricApplication import ericApp
 
+from ..MicroPythonWidget import HAS_QTCHART
 from . import FirmwareGithubUrls
 from .DeviceBase import BaseDevice
-from ..MicroPythonWidget import HAS_QTCHART
 
 
 class TeensyDevice(BaseDevice):
@@ -266,6 +266,41 @@
                 ),
             )
 
+    ##################################################################
+    ## time related methods below
+    ##################################################################
+
+    def _getSetTimeCode(self):
+        """
+        Protected method to get the device code to set the time.
+
+        Note: This method must be implemented in the various device specific
+        subclasses.
+
+        @return code to be executed on the connected device to set the time
+        @rtype str
+        """
+        # rtc_time[0] - year    4 digit
+        # rtc_time[1] - month   1..12
+        # rtc_time[2] - day     1..31
+        # rtc_time[3] - weekday 1..7 1=Monday
+        # rtc_time[4] - hour    0..23
+        # rtc_time[5] - minute  0..59
+        # rtc_time[6] - second  0..59
+        # rtc_time[7] - yearday 1..366
+        # rtc_time[8] - isdst   0, 1, or -1
+
+        # The machine.RTC.init() function takes the arguments in the
+        # order: (year, month, day, weekday, hour, minute, second,
+        # subseconds)
+        # https://docs.micropython.org/en/latest/library/machine.RTC.html#machine-rtc
+        return """
+def set_time(rtc_time):
+    import machine
+    rtc = machine.RTC()
+    rtc.init(rtc_time[:7] + (0,))
+"""
+
 
 def createDevice(microPythonWidget, deviceType, vid, pid, boardName, serialNumber):
     """
--- a/src/eric7/MicroPython/Devices/__init__.py	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/MicroPython/Devices/__init__.py	Tue Feb 14 18:10:30 2023 +0100
@@ -476,7 +476,6 @@
     @return instantiated device interface
     @rtype BaseDevice
     """
-
     with contextlib.suppress(KeyError):
         mod = importlib.import_module(
             SupportedBoards[deviceType]["module"], __package__
--- a/src/eric7/MicroPython/MicroPythonCommandsInterface.py	Tue Feb 14 11:09:49 2023 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1163 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2019 - 2023 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing some file system commands for MicroPython.
-"""
-
-import ast
-import os
-import time
-
-from PyQt6.QtCore import (
-    QCoreApplication,
-    QEventLoop,
-    QObject,
-    QThread,
-    QTimer,
-    pyqtSignal,
-    pyqtSlot,
-)
-
-from eric7 import Preferences
-
-from .MicroPythonSerialPort import MicroPythonSerialPort
-
-
-class MicroPythonCommandsInterface(QObject):
-    """
-    Class implementing some file system commands for MicroPython.
-
-    Commands are provided to perform operations on the file system of a
-    connected MicroPython device. Supported commands are:
-    <ul>
-    <li>ls: directory listing</li>
-    <li>lls: directory listing with meta data</li>
-    <li>cd: change directory</li>
-    <li>pwd: get the current directory</li>
-    <li>put: copy a file to the connected device</li>
-    <li>get: get a file from the connected device</li>
-    <li>rm: remove a file from the connected device</li>
-    <li>rmrf: remove a file/directory recursively (like 'rm -rf' in bash)
-    <li>mkdir: create a new directory</li>
-    <li>rmdir: remove an empty directory</li>
-    </ul>
-
-    There are additional commands related to time and version.
-    <ul>
-    <li>version: get version info about MicroPython</li>
-    <li>getImplementation: get some implementation information</li>
-    <li>syncTime: synchronize the time of the connected device</li>
-    <li>showTime: show the current time of the connected device</li>
-    </ul>
-
-    @signal executeAsyncFinished() emitted to indicate the end of an
-        asynchronously executed list of commands (e.g. a script)
-    @signal dataReceived(data) emitted to send data received via the serial
-        connection for further processing
-    """
-
-    executeAsyncFinished = pyqtSignal()
-    dataReceived = pyqtSignal(bytes)
-
-    def __init__(self, parent=None):
-        """
-        Constructor
-
-        @param parent reference to the parent object
-        @type QObject
-        """
-        super().__init__(parent)
-
-        self.__repl = parent
-
-        self.__blockReadyRead = False
-
-        self.__serial = MicroPythonSerialPort(
-            timeout=Preferences.getMicroPython("SerialTimeout"), parent=self
-        )
-        self.__serial.readyRead.connect(self.__readSerial)
-
-    @pyqtSlot()
-    def __readSerial(self):
-        """
-        Private slot to read all available serial data and emit it with the
-        "dataReceived" signal for further processing.
-        """
-        if not self.__blockReadyRead:
-            data = bytes(self.__serial.readAll())
-            self.dataReceived.emit(data)
-
-    @pyqtSlot()
-    def connectToDevice(self, port):
-        """
-        Public slot to start the manager.
-
-        @param port name of the port to be used
-        @type str
-        @return flag indicating success
-        @rtype bool
-        """
-        return self.__serial.openSerialLink(port)
-
-    @pyqtSlot()
-    def disconnectFromDevice(self):
-        """
-        Public slot to stop the thread.
-        """
-        self.__serial.closeSerialLink()
-
-    def isConnected(self):
-        """
-        Public method to get the connection status.
-
-        @return flag indicating the connection status
-        @rtype bool
-        """
-        return self.__serial.isConnected()
-
-    @pyqtSlot()
-    def handlePreferencesChanged(self):
-        """
-        Public slot to handle a change of the preferences.
-        """
-        self.__serial.setTimeout(Preferences.getMicroPython("SerialTimeout"))
-
-    def write(self, data):
-        """
-        Public method to write data to the connected device.
-
-        @param data data to be written
-        @type bytes or bytearray
-        """
-        self.__serial.isConnected() and self.__serial.write(data)
-
-    def __rawOn(self):
-        """
-        Private method to switch the connected device to 'raw' mode.
-
-        Note: switching to raw mode is done with synchronous writes.
-
-        @return flag indicating success
-        @@rtype bool
-        """
-        if not self.__serial:
-            return False
-
-        rawReplMessage = b"raw REPL; CTRL-B to exit\r\n>"
-
-        self.__serial.write(b"\x02")  # end raw mode if required
-        written = self.__serial.waitForBytesWritten(500)
-        # time out after 500ms if device is not responding
-        if not written:
-            return False
-        for _i in range(3):
-            # CTRL-C three times to break out of loops
-            self.__serial.write(b"\r\x03")
-            written = self.__serial.waitForBytesWritten(500)
-            # time out after 500ms if device is not responding
-            if not written:
-                return False
-            QThread.msleep(10)
-        self.__serial.readAll()  # read all data and discard it
-        self.__serial.write(b"\r\x01")  # send CTRL-A to enter raw mode
-        self.__serial.readUntil(rawReplMessage)
-        if self.__serial.hasTimedOut():
-            # it timed out; try it again and than fail
-            self.__serial.write(b"\r\x01")  # send CTRL-A again
-            self.__serial.readUntil(rawReplMessage)
-            if self.__serial.hasTimedOut():
-                return False
-
-        QCoreApplication.processEvents(
-            QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents
-        )
-        self.__serial.readAll()  # read all data and discard it
-        return True
-
-    def __rawOff(self):
-        """
-        Private method to switch 'raw' mode off.
-        """
-        if self.__serial:
-            self.__serial.write(b"\x02")  # send CTRL-B to cancel raw mode
-            self.__serial.readUntil(b">>> ")  # read until Python prompt
-            self.__serial.readAll()  # read all data and discard it
-
-    def probeDevice(self):
-        """
-        Public method to check the device is responding.
-
-        If the device has not been flashed with a MicroPython formware, the
-        probe will fail.
-
-        @return flag indicating a communicating MicroPython device
-        @rtype bool
-        """
-        if not self.__serial:
-            return False
-
-        if not self.__serial.isConnected():
-            return False
-
-        # switch on raw mode
-        self.__blockReadyRead = True
-        ok = self.__rawOn()
-        if not ok:
-            self.__blockReadyRead = False
-            return False
-
-        # switch off raw mode
-        QThread.msleep(10)
-        self.__rawOff()
-        self.__blockReadyRead = False
-
-        return True
-
-    def execute(self, commands):
-        """
-        Public method to send commands to the connected device and return the
-        result.
-
-        If no serial connection is available, empty results will be returned.
-
-        @param commands list of commands to be executed
-        @type str
-        @return tuple containing stdout and stderr output of the device
-        @rtype tuple of (bytes, bytes)
-        """
-        if not self.__serial:
-            return b"", b""
-
-        if not self.__serial.isConnected():
-            return b"", b"Device not connected or not switched on."
-
-        result = bytearray()
-        err = b""
-
-        # switch on raw mode
-        self.__blockReadyRead = True
-        ok = self.__rawOn()
-        if not ok:
-            self.__blockReadyRead = False
-            return (b"", b"Could not switch to raw mode. Is the device switched on?")
-
-        # send commands
-        QThread.msleep(10)
-        for command in commands:
-            if command:
-                commandBytes = command.encode("utf-8")
-                self.__serial.write(commandBytes + b"\x04")
-                QCoreApplication.processEvents(
-                    QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents
-                )
-                ok = self.__serial.readUntil(b"OK")
-                if ok != b"OK":
-                    return (
-                        b"",
-                        "Expected 'OK', got '{0}', followed by '{1}'".format(
-                            ok, self.__serial.readAll()
-                        ).encode("utf-8"),
-                    )
-
-                # read until prompt
-                response = self.__serial.readUntil(b"\x04>")
-                if self.__serial.hasTimedOut():
-                    self.__blockReadyRead = False
-                    return b"", b"Timeout while processing commands."
-                if b"\x04" in response[:-2]:
-                    # split stdout, stderr
-                    out, err = response[:-2].split(b"\x04")
-                    result += out
-                else:
-                    err = b"invalid response received: " + response
-                if err:
-                    result = b""
-                    break
-
-        # switch off raw mode
-        QThread.msleep(10)
-        self.__rawOff()
-        self.__blockReadyRead = False
-
-        return bytes(result), err
-
-    def executeAsync(self, commandsList):
-        """
-        Public method to execute a series of commands over a period of time
-        without returning any result (asynchronous execution).
-
-        @param commandsList list of commands to be execute on the device
-        @type list of bytes
-        """
-
-        if commandsList:
-            command = commandsList.pop(0)
-            self.__serial.write(command)
-            QTimer.singleShot(2, lambda: self.executeAsync(commandsList))
-        else:
-            self.executeAsyncFinished.emit()
-
-    def __shortError(self, error):
-        """
-        Private method to create a shortened error message.
-
-        @param error verbose error message
-        @type bytes
-        @return shortened error message
-        @rtype str
-        """
-        if error:
-            decodedError = error.decode("utf-8")
-            try:
-                return decodedError.split["\r\n"][-2]
-            except Exception:
-                return decodedError
-        return self.tr("Detected an error without indications.")
-
-    # TODO: move these methods to the devices.
-    ##################################################################
-    ## Methods below implement the file system commands
-    ##################################################################
-
-    def ls(self, dirname=""):
-        """
-        Public method to get a directory listing of the connected device.
-
-        @param dirname name of the directory to be listed
-        @type str
-        @return tuple containg the directory listing
-        @rtype tuple of str
-        @exception OSError raised to indicate an issue with the device
-        """
-        commands = (
-            # BBC micro:bit does not support directories
-            [
-                "import os as __os_",
-                "print(__os_.listdir())",
-                "del __os_",
-            ]
-            if self.__repl.isMicrobit()
-            else [
-                "import os as __os_",
-                "print(__os_.listdir('{0}'))".format(dirname),
-                "del __os_",
-            ]
-        )
-        out, err = self.execute(commands)
-        if err:
-            raise OSError(self.__shortError(err))
-        return ast.literal_eval(out.decode("utf-8"))
-
-    def lls(self, dirname="", fullstat=False, showHidden=False):
-        """
-        Public method to get a long directory listing of the connected device
-        including meta data.
-
-        @param dirname name of the directory to be listed
-        @type str
-        @param fullstat flag indicating to return the full stat() tuple
-        @type bool
-        @param showHidden flag indicating to show hidden files as well
-        @type bool
-        @return list containing the directory listing with tuple entries of
-            the name and and a tuple of mode, size and time (if fullstat is
-            false) or the complete stat() tuple. 'None' is returned in case the
-            directory doesn't exist.
-        @rtype tuple of (str, tuple)
-        @exception OSError raised to indicate an issue with the device
-        """
-        commands = (
-            # BBC micro:bit does not support directories
-            [
-                "import os as __os_",
-                "\n".join(
-                    [
-                        "def is_visible(filename, showHidden):",
-                        "    return showHidden or "
-                        "(filename[0] != '.' and filename[-1] != '~')",
-                    ]
-                ),
-                "\n".join(
-                    [
-                        "def stat(filename):",
-                        "    size = __os_.size(filename)",
-                        "    return (0, 0, 0, 0, 0, 0, size, 0, 0, 0)",
-                    ]
-                ),
-                "\n".join(
-                    [
-                        "def listdir_stat(showHidden):",
-                        "    files = __os_.listdir()",
-                        "    return list((f, stat(f)) for f in files if"
-                        " is_visible(f,showHidden))",
-                    ]
-                ),
-                "print(listdir_stat({0}))".format(showHidden),
-                "del __os_, stat, listdir_stat, is_visible",
-            ]
-            if self.__repl.isMicrobit()
-            else [
-                "import os as __os_",
-                "\n".join(
-                    [
-                        "def is_visible(filename, showHidden):",
-                        "    return showHidden or "
-                        "(filename[0] != '.' and filename[-1] != '~')",
-                    ]
-                ),
-                "\n".join(
-                    [
-                        "def stat(filename):",
-                        "    try:",
-                        "        rstat = __os_.lstat(filename)",
-                        "    except:",
-                        "        rstat = __os_.stat(filename)",
-                        "    return tuple(rstat)",
-                    ]
-                ),
-                "\n".join(
-                    [
-                        "def listdir_stat(dirname, showHidden):",
-                        "    try:",
-                        "        files = __os_.listdir(dirname)",
-                        "    except OSError:",
-                        "        return []",
-                        "    if dirname in ('', '/'):",
-                        "        return list((f, stat(f)) for f in files if"
-                        " is_visible(f, showHidden))",
-                        "    return list((f, stat(dirname + '/' + f))"
-                        " for f in files if is_visible(f, showHidden))",
-                    ]
-                ),
-                "print(listdir_stat('{0}', {1}))".format(dirname, showHidden),
-                "del __os_, stat, listdir_stat, is_visible",
-            ]
-        )
-        out, err = self.execute(commands)
-        if err:
-            raise OSError(self.__shortError(err))
-        fileslist = ast.literal_eval(out.decode("utf-8"))
-        if fileslist is None:
-            return None
-        else:
-            if fullstat:
-                return fileslist
-            else:
-                return [(f, (s[0], s[6], s[8])) for f, s in fileslist]
-
-    def cd(self, dirname):
-        """
-        Public method to change the current directory on the connected device.
-
-        @param dirname directory to change to
-        @type str
-        @exception OSError raised to indicate an issue with the device
-        """
-        if dirname:
-            commands = [
-                "import os as __os_",
-                "__os_.chdir('{0}')".format(dirname),
-                "del __os_",
-            ]
-            out, err = self.execute(commands)
-            if err:
-                raise OSError(self.__shortError(err))
-
-    def pwd(self):
-        """
-        Public method to get the current directory of the connected device.
-
-        @return current directory
-        @rtype str
-        @exception OSError raised to indicate an issue with the device
-        """
-        if self.__repl.isMicrobit():
-            # BBC micro:bit does not support directories
-            return ""
-
-        commands = [
-            "import os as __os_",
-            "print(__os_.getcwd())",
-            "del __os_",
-        ]
-        out, err = self.execute(commands)
-        if err:
-            raise OSError(self.__shortError(err))
-        return out.decode("utf-8").strip()
-
-    def rm(self, filename):
-        """
-        Public method to remove a file from the connected device.
-
-        @param filename name of the file to be removed
-        @type str
-        @exception OSError raised to indicate an issue with the device
-        """
-        if filename:
-            commands = [
-                "import os as __os_",
-                "__os_.remove('{0}')".format(filename),
-                "del __os_",
-            ]
-            out, err = self.execute(commands)
-            if err:
-                raise OSError(self.__shortError(err))
-
-    def rmrf(self, name, recursive=False, force=False):
-        """
-        Public method to remove a file or directory recursively.
-
-        @param name of the file or directory to remove
-        @type str
-        @param recursive flag indicating a recursive deletion
-        @type bool
-        @param force flag indicating to ignore errors
-        @type bool
-        @return flag indicating success
-        @rtype bool
-        @exception OSError raised to indicate an issue with the device
-        """
-        if name:
-            commands = [
-                "import os as __os_",
-                "\n".join(
-                    [
-                        "def remove_file(name, recursive=False, force=False):",
-                        "    try:",
-                        "        mode = __os_.stat(name)[0]",
-                        "        if mode & 0x4000 != 0:",
-                        "            if recursive:",
-                        "                for file in __os_.listdir(name):",
-                        "                    success = remove_file("
-                        "name + '/' + file, recursive, force)",
-                        "                    if not success and not force:",
-                        "                        return False",
-                        "                __os_.rmdir(name)",
-                        "            else:",
-                        "                if not force:",
-                        "                    return False",
-                        "        else:",
-                        "            __os_.remove(name)",
-                        "    except:",
-                        "        if not force:",
-                        "            return False",
-                        "    return True",
-                    ]
-                ),
-                "print(remove_file('{0}', {1}, {2}))".format(name, recursive, force),
-                "del __os_, remove_file",
-            ]
-            out, err = self.execute(commands)
-            if err:
-                raise OSError(self.__shortError(err))
-            return ast.literal_eval(out.decode("utf-8"))
-
-        return False
-
-    def mkdir(self, dirname):
-        """
-        Public method to create a new directory.
-
-        @param dirname name of the directory to create
-        @type str
-        @exception OSError raised to indicate an issue with the device
-        """
-        if dirname:
-            commands = [
-                "import os as __os_",
-                "__os_.mkdir('{0}')".format(dirname),
-                "del __os_",
-            ]
-            out, err = self.execute(commands)
-            if err:
-                raise OSError(self.__shortError(err))
-
-    def rmdir(self, dirname):
-        """
-        Public method to remove a directory.
-
-        @param dirname name of the directory to be removed
-        @type str
-        @exception OSError raised to indicate an issue with the device
-        """
-        if dirname:
-            commands = [
-                "import os as __os_",
-                "__os_.rmdir('{0}')".format(dirname),
-                "del __os_",
-            ]
-            out, err = self.execute(commands)
-            if err:
-                raise OSError(self.__shortError(err))
-
-    def put(self, hostFileName, deviceFileName=None):
-        """
-        Public method to copy a local file to the connected device.
-
-        @param hostFileName name of the file to be copied
-        @type str
-        @param deviceFileName name of the file to copy to
-        @type str
-        @return flag indicating success
-        @rtype bool
-        @exception OSError raised to indicate an issue with the device
-        """
-        if not os.path.isfile(hostFileName):
-            raise OSError("No such file: {0}".format(hostFileName))
-
-        if not deviceFileName:
-            deviceFileName = os.path.basename(hostFileName)
-
-        with open(hostFileName, "rb") as hostFile:
-            content = hostFile.read()
-
-        return self.putData(deviceFileName, content)
-
-    def putData(self, deviceFileName, content):
-        """
-        Public method to write the given data to the connected device.
-
-        @param deviceFileName name of the file to write to
-        @type str
-        @param content data to write
-        @type bytes
-        @return flag indicating success
-        @rtype bool
-        @exception OSError raised to indicate an issue with the device
-        """
-        if not deviceFileName:
-            raise OSError("Missing device file name")
-
-        # convert eol '\r'
-        content = content.replace(b"\r\n", b"\r")
-        content = content.replace(b"\n", b"\r")
-
-        commands = [
-            "fd = open('{0}', 'wb')".format(deviceFileName),
-            "f = fd.write",
-        ]
-        while content:
-            chunk = content[:64]
-            commands.append("f(" + repr(chunk) + ")")
-            content = content[64:]
-        commands.extend(
-            [
-                "fd.close()",
-                "del f, fd",
-            ]
-        )
-
-        out, err = self.execute(commands)
-        if err:
-            raise OSError(self.__shortError(err))
-        return True
-
-    def get(self, deviceFileName, hostFileName=None):
-        """
-        Public method to copy a file from the connected device.
-
-        @param deviceFileName name of the file to copy
-        @type str
-        @param hostFileName name of the file to copy to
-        @type str
-        @return flag indicating success
-        @rtype bool
-        @exception OSError raised to indicate an issue with the device
-        """
-        if not deviceFileName:
-            raise OSError("Missing device file name")
-
-        if not hostFileName:
-            hostFileName = deviceFileName
-
-        out = self.getData(deviceFileName)
-        with open(hostFileName, "wb") as hostFile:
-            hostFile.write(out)
-
-        return True
-
-    def getData(self, deviceFileName):
-        """
-        Public method to read data from the connected device.
-
-        @param deviceFileName name of the file to read from
-        @type str
-        @return data read from the device
-        @rtype bytes
-        @exception OSError raised to indicate an issue with the device
-        """
-        if not deviceFileName:
-            raise OSError("Missing device file name")
-
-        commands = [
-            "\n".join(
-                [
-                    "def send_data():",
-                    "    try:",
-                    "        from microbit import uart as u",
-                    "    except ImportError:",
-                    "        try:",
-                    "            from sys import stdout as u",
-                    "        except ImportError:",
-                    "            try:",
-                    "                from machine import UART",
-                    "                u = UART(0, {0})".format(115200),
-                    "            except Exception:",
-                    "                raise Exception('Could not find UART module"
-                    " in device.')",
-                    "    f = open('{0}', 'rb')".format(deviceFileName),
-                    "    r = f.read",
-                    "    result = True",
-                    "    while result:",
-                    "        result = r(32)",
-                    "        if result:",
-                    "            u.write(result)",
-                    "    f.close()",
-                ]
-            ),
-            "send_data()",
-        ]
-        out, err = self.execute(commands)
-        if err:
-            raise OSError(self.__shortError(err))
-
-        # write the received bytes to the local file
-        # convert eol to "\n"
-        out = out.replace(b"\r\n", b"\n")
-        out = out.replace(b"\r", b"\n")
-
-        return out
-
-    def fileSystemInfo(self):
-        """
-        Public method to obtain information about the currently mounted file
-        systems.
-
-        @return tuple of tuples containing the file system name, the total
-            size, the used size and the free size
-        @rtype tuple of tuples of (str, int, int, int)
-        @exception OSError raised to indicate an issue with the device
-        """
-        commands = [
-            "import os as __os_",
-            "\n".join(
-                [
-                    "def fsinfo():",
-                    "    infolist = []",
-                    "    info = __os_.statvfs('/')",
-                    "    if info[0] == 0:",
-                    # assume it is just mount points
-                    "        fsnames = __os_.listdir('/')",
-                    "        for fs in fsnames:",
-                    "            fs = '/' + fs",
-                    "            infolist.append((fs, __os_.statvfs(fs)))",
-                    "    else:",
-                    "        infolist.append(('/', info))",
-                    "    return infolist",
-                ]
-            ),
-            "print(fsinfo())",
-            "del __os_, fsinfo",
-        ]
-        out, err = self.execute(commands)
-        if err:
-            raise OSError(self.__shortError(err))
-        infolist = ast.literal_eval(out.decode("utf-8"))
-        if infolist is None:
-            return None
-        else:
-            filesystemInfos = []
-            for fs, info in infolist:
-                totalSize = info[2] * info[1]
-                freeSize = info[4] * info[1]
-                usedSize = totalSize - freeSize
-                filesystemInfos.append((fs, totalSize, usedSize, freeSize))
-
-        return tuple(filesystemInfos)
-
-    ##################################################################
-    ## non-filesystem related methods below
-    ##################################################################
-
-    def getDeviceData(self):
-        """
-        Public method to get some essential data for the connected board.
-
-        @return dictionary containing the determined data
-        @rtype dict
-        @exception OSError raised to indicate an issue with the device
-        """
-        commands = [
-            "res = {}",  # __IGNORE_WARNING_M613__
-            "import os as __os_",
-            "uname = __os_.uname()",
-            "res['sysname'] = uname.sysname",
-            "res['nodename'] = uname.nodename",
-            "res['release'] = uname.release",
-            "res['version'] = uname.version",
-            "res['machine'] = uname.machine",
-            "import sys as __sys_",
-            "res['py_platform'] = __sys_.platform",
-            "res['py_version'] = __sys_.version",
-            "\n".join(
-                [
-                    "try:",
-                    "    res['mpy_name'] = __sys_.implementation.name",
-                    "except AttributeError:",
-                    "    res['mpy_name'] = 'unknown'",
-                ]
-            ),
-            "\n".join(
-                [
-                    "try:",
-                    "    res['mpy_version'] = '.'.join((str(i) for i in"
-                    " __sys_.implementation.version))",
-                    "except AttributeError:",
-                    "    res['mpy_version'] = 'unknown'",
-                ]
-            ),
-            "\n".join(
-                [
-                    "try:",
-                    "    import pimoroni as __pimoroni_",
-                    "    res['mpy_variant'] = 'Pimoroni'",
-                    "    del __pimoroni_",
-                    "except ImportError:",
-                    "    res['mpy_variant'] = ''",
-                ]
-            ),
-            "print(res)",
-            "del res, __os_, __sys_",
-        ]
-        out, err = self.execute(commands)
-        if err:
-            raise OSError(self.__shortError(err))
-        return ast.literal_eval(out.decode("utf-8"))
-
-    def getBoardInformation(self):
-        """
-        Public method to get some information data of the connected board.
-
-        @return dictionary containing the determined data
-        @rtype dict
-        @exception OSError raised to indicate an issue with the device
-        """
-        commands = [
-            "res = {}",  # __IGNORE_WARNING_M613__
-            "import gc as __gc_",
-            "__gc_.enable()",
-            "__gc_.collect()",
-            "mem_alloc = __gc_.mem_alloc()",
-            "mem_free = __gc_.mem_free()",
-            "mem_total = mem_alloc + mem_free",
-            "res['mem_total_kb'] = mem_total / 1024.0",
-            "res['mem_used_kb'] = mem_alloc / 1024.0",
-            "res['mem_used_pc'] = mem_alloc / mem_total * 100.0",
-            "res['mem_free_kb'] = mem_free / 1024.0",
-            "res['mem_free_pc'] = mem_free / mem_total * 100.0",
-            "del __gc_, mem_alloc, mem_free, mem_total",
-            "import os as __os_",
-            "uname = __os_.uname()",
-            "res['sysname'] = uname.sysname",
-            "res['nodename'] = uname.nodename",
-            "res['release'] = uname.release",
-            "res['version'] = uname.version",
-            "res['machine'] = uname.machine",
-            "import sys as __sys_",
-            "res['py_platform'] = __sys_.platform",
-            "res['py_version'] = __sys_.version",
-            "\n".join(
-                [
-                    "try:",
-                    "    res['mpy_name'] = __sys_.implementation.name",
-                    "except AttributeError:",
-                    "    res['mpy_name'] = 'unknown'",
-                ]
-            ),
-            "\n".join(
-                [
-                    "try:",
-                    "    res['mpy_version'] = '.'.join((str(i) for i in"
-                    " __sys_.implementation.version))",
-                    "except AttributeError:",
-                    "    res['mpy_version'] = 'unknown'",
-                ]
-            ),
-            "\n".join(
-                [
-                    "try:",
-                    "    import pimoroni as __pimoroni_",
-                    "    res['mpy_variant'] = 'Pimoroni'",
-                    "    del __pimoroni_",
-                    "except ImportError:",
-                    "    res['mpy_variant'] = ''",
-                ]
-            ),
-            "\n".join(
-                [
-                    "try:",
-                    "    stat_ = __os_.statvfs('/flash')",
-                    "    res['flash_info_available'] = True",
-                    "    res['flash_total_kb'] = stat_[2] * stat_[0] / 1024.0",
-                    "    res['flash_free_kb'] = stat_[3] * stat_[0] / 1024.0",
-                    "    res['flash_used_kb'] = res['flash_total_kb'] -"
-                    " res['flash_free_kb']",
-                    "    res['flash_free_pc'] = res['flash_free_kb'] /"
-                    " res['flash_total_kb'] * 100.0",
-                    "    res['flash_used_pc'] = res['flash_used_kb'] /"
-                    " res['flash_total_kb'] * 100.0",
-                    "    del stat_",
-                    "except AttributeError:",
-                    "    res['flash_info_available'] = False",
-                ]
-            ),
-            "\n".join(
-                [
-                    "try:",
-                    "    import machine as __mc_",
-                    "    if isinstance(__mc_.freq(), tuple):",
-                    "        res['mc_frequency_mhz'] = __mc_.freq()[0] / 1000000.0",
-                    "    else:",
-                    "       res['mc_frequency_mhz'] = __mc_.freq() / 1000000.0",
-                    "    res['mc_id'] = ':'.join(['{0:X}'.format(x)"
-                    " for x in __mc_.unique_id()])",
-                    "    del __mc_",
-                    "except ImportError:",
-                    "\n".join(
-                        [
-                            "    try:",
-                            "        import microcontroller as __mc_",
-                            "        res['mc_frequency_mhz'] = __mc_.cpu.frequency"
-                            " / 1000000.0",
-                            "        res['mc_temp_c'] = __mc_.cpu.temperature",
-                            "        res['mc_id'] = ':'.join(['{0:X}'.format(x)"
-                            " for x in __mc_.cpu.uid])",
-                            "        del __mc_",
-                            "    except ImportError:",
-                            "        res['mc_frequency'] = None",
-                            "        res['mc_temp'] = None",
-                        ]
-                    ),
-                ]
-            ),
-            "\n".join(
-                [
-                    "try:",
-                    "    import ulab as __ulab_",
-                    "    res['ulab'] = __ulab_.__version__",
-                    "    del __ulab_",
-                    "except ImportError:",
-                    "    res['ulab'] = None",
-                ]
-            ),
-            "print(res)",
-            "del res, __os_, __sys_",
-        ]
-        out, err = self.execute(commands)
-        if err:
-            raise OSError(self.__shortError(err))
-        return ast.literal_eval(out.decode("utf-8"))
-
-    def syncTime(self, deviceType, hasCPy=False):
-        """
-        Public method to set the time of the connected device to the local
-        computer's time.
-
-        @param deviceType type of board to sync time to
-        @type str
-        @param hasCPy flag indicating that the device has CircuitPython loadede
-            (defaults to False)
-        @type bool
-        @exception OSError raised to indicate an issue with the device
-        """
-        # rtc_time[0] - year    4 digit
-        # rtc_time[1] - month   1..12
-        # rtc_time[2] - day     1..31
-        # rtc_time[3] - weekday 1..7 1=Monday
-        # rtc_time[4] - hour    0..23
-        # rtc_time[5] - minute  0..59
-        # rtc_time[6] - second  0..59
-        # rtc_time[7] - yearday 1..366
-        # rtc_time[8] - isdst   0, 1, or -1
-        if deviceType == "circuitpython" or hasCPy:
-            set_time = "\n".join(
-                [
-                    "def set_time(rtc_time):",
-                    "    import rtc",
-                    "    import time",
-                    "    clock = rtc.RTC()",
-                    "    clock_time = rtc_time[:3] + rtc_time[4:7] + (rtc_time[3],"
-                    " rtc_time[7], rtc_time[8])",
-                    "    clock.datetime = time.struct_time(clock_time)",
-                ]
-            )
-        elif deviceType == "pyboard":
-            # Pyboard (pyboard doesn't have machine.RTC()).
-            # The pyb.RTC.datetime function takes the arguments in the
-            # order: (year, month, day, weekday, hour, minute, second,
-            # subseconds)
-            # http://docs.micropython.org/en/latest/library/pyb.RTC.html
-            # #pyb.RTC.datetime
-            set_time = "\n".join(
-                [
-                    "def set_time(rtc_time):",
-                    "    import pyb",
-                    "    rtc = pyb.RTC()",
-                    "    rtc.datetime(rtc_time[:7] + (0,))",
-                ]
-            )
-        elif deviceType == "teensy":
-            # The pyb.RTC.datetime function takes the arguments in the
-            # order: (year, month, day, weekday, hour, minute, second,
-            # subseconds)
-            # https://docs.micropython.org/en/latest/library/machine.RTC.html
-            # #machine-rtc
-            set_time = "\n".join(
-                [
-                    "def set_time(rtc_time):",
-                    "    import machine",
-                    "    rtc = machine.RTC()",
-                    "    rtc.init(rtc_time[:7] + (0,))",
-                ]
-            )
-        elif deviceType == "esp":
-            # The machine.RTC documentation was incorrect and doesn't agree
-            # with the code, so no link is presented here. The order of the
-            # arguments is the same as the pyboard except for LoBo MPy.
-            set_time = "\n".join(
-                [
-                    "def set_time(rtc_time):",
-                    "    import machine",
-                    "    rtc = machine.RTC()",
-                    "    try:",  # ESP8266 may use rtc.datetime()
-                    "        rtc.datetime(rtc_time[:7] + (0,))",
-                    "    except Exception:",  # ESP32 uses rtc.init()
-                    "        import os",
-                    "        if 'LoBo' in os.uname()[0]:",  # LoBo MPy
-                    "            clock_time = rtc_time[:3] +"
-                    " rtc_time[4:7] + (rtc_time[3], rtc_time[7])",
-                    "        else:",
-                    "            clock_time = rtc_time[:7] + (0,)",
-                    "        rtc.init(clock_time)",
-                ]
-            )
-        elif deviceType in ("bbc_microbit", "calliope"):
-            # BBC micro:bit and Calliope mini with MicroPython don't support
-            # time commands.
-            return
-        elif deviceType == "rp2040":
-            # Raspberry Pi Pico (RP2040) - machine.RTC doesn't exist
-            set_time = "\n".join(
-                [
-                    "def set_time(rtc_time):",
-                    "    setup_0 = rtc_time[0] << 12 | rtc_time[1] << 8 |"
-                    " rtc_time[2]",
-                    "    setup_1 = (rtc_time[3] % 7) << 24 | rtc_time[4] << 16 |"
-                    " rtc_time[5] << 8 | rtc_time[6]",
-                    "    machine.mem32[0x4005c004] = setup_0",
-                    "    machine.mem32[0x4005c008] = setup_1",
-                    "    machine.mem32[0x4005c00c] |= 0x10",
-                ]
-            )
-        elif deviceType == "pycom":
-            # PyCom's machine.RTC takes its arguments in a slightly
-            # different order than the official machine.RTC.
-            # (year, month, day, hour, minute, second[, microsecond[,
-            # tzinfo]])
-            # https://docs.pycom.io/firmwareapi/pycom/machine/rtc/
-            # #rtc-init-datetime-none-source-rtc-internal-rc
-            set_time = "\n".join(
-                [
-                    "def set_time(rtc_time):",
-                    "    import pycom",
-                    "    rtc_time2 = rtc_time[:3] + rtc_time[4:7]",
-                    "    import machine",
-                    "    rtc = machine.RTC()",
-                    "    rtc.init(rtc_time2)",
-                ]
-            )
-        else:
-            # no set_time() support for generic boards
-            return
-
-        now = time.localtime(time.time())
-        commands = [
-            set_time,
-            "set_time({0})".format(
-                (
-                    now.tm_year,
-                    now.tm_mon,
-                    now.tm_mday,
-                    now.tm_wday + 1,
-                    now.tm_hour,
-                    now.tm_min,
-                    now.tm_sec,
-                    now.tm_yday,
-                    now.tm_isdst,
-                )
-            ),
-            "del set_time",
-        ]
-        out, err = self.execute(commands)
-        if err:
-            raise OSError(self.__shortError(err))
-
-    def getTime(self):
-        """
-        Public method to get the current time of the device.
-
-        @return time of the device
-        @rtype str
-        @exception OSError raised to indicate an issue with the device
-        """
-        commands = [
-            "\n".join(
-                [
-                    "try:",
-                    "    import rtc as __rtc_",
-                    "    print('{0:04d}-{1:02d}-{2:02d} {3:02d}:{4:02d}:{5:02d}'"
-                    ".format(*__rtc_.RTC().datetime[:6]))",
-                    "    del __rtc_",
-                    "except:",
-                    "    import time as __time_",
-                    "    try:",
-                    "        print(__time_.strftime('%Y-%m-%d %H:%M:%S',"
-                    # __IGNORE_WARNING_M601__
-                    " __time_.localtime()))",
-                    "    except AttributeError:",
-                    "        tm = __time_.localtime()",
-                    "        print('{0:04d}-{1:02d}-{2:02d}"
-                    " {3:02d}:{4:02d}:{5:02d}'"
-                    ".format(tm[0], tm[1], tm[2], tm[3], tm[4], tm[5]))",
-                    "        del tm",
-                    "    del __time_",
-                ]
-            ),
-        ]
-        out, err = self.execute(commands)
-        if err:
-            if b"NotImplementedError" in err:
-                return "&lt;unsupported&gt; &lt;unsupported&gt;"
-            raise OSError(self.__shortError(err))
-        return out.decode("utf-8").strip()
-
-    def getModules(self):
-        """
-        Public method to show a list of modules built into the firmware.
-
-        @return list of builtin modules
-        @rtype list of str
-        @exception OSError raised to indicate an issue with the device
-        """
-        commands = ["help('modules')"]
-        out, err = self.execute(commands)
-        if err:
-            raise OSError(self.__shortError(err))
-
-        modules = []
-        for line in out.decode("utf-8").splitlines()[:-1]:
-            modules.extend(line.split())
-        return modules
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/eric7/MicroPython/MicroPythonDeviceInterface.py	Tue Feb 14 18:10:30 2023 +0100
@@ -0,0 +1,305 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2019 - 2023 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing some file system commands for MicroPython.
+"""
+
+from PyQt6.QtCore import (
+    QCoreApplication,
+    QEventLoop,
+    QObject,
+    QThread,
+    QTimer,
+    pyqtSignal,
+    pyqtSlot,
+)
+
+from eric7 import Preferences
+
+from .MicroPythonSerialPort import MicroPythonSerialPort
+
+
+class MicroPythonDeviceInterface(QObject):
+    """
+    Class implementing some file system commands for MicroPython.
+
+    Commands are provided to perform operations on the file system of a
+    connected MicroPython device. Supported commands are:
+    <ul>
+    <li>ls: directory listing</li>
+    <li>lls: directory listing with meta data</li>
+    <li>cd: change directory</li>
+    <li>pwd: get the current directory</li>
+    <li>put: copy a file to the connected device</li>
+    <li>putData: write data to a file of the connected device</li>
+    <li>get: get a file from the connected device</li>
+    <li>getData: read data of a file of the connected device</li>
+    <li>rm: remove a file from the connected device</li>
+    <li>rmrf: remove a file/directory recursively (like 'rm -rf' in bash)
+    <li>mkdir: create a new directory</li>
+    <li>rmdir: remove an empty directory</li>
+    <li>fileSystemInfo: get information about the file system
+    </ul>
+
+    There are additional non file systemcommands.
+    <ul>
+    <li>getBoardData: get information about the connected board</li>
+    <li>getDeviceData: get version info about MicroPython and some implementation
+        information</li>
+    <li>getModules: get a list of built-in modules</li>
+    <li>getTime: get the current time</li>
+    <li>syncTime: synchronize the time of the connected device</li>
+    <li>showTime: show the current time of the connected device</li>
+    </ul>
+
+    @signal executeAsyncFinished() emitted to indicate the end of an
+        asynchronously executed list of commands (e.g. a script)
+    @signal dataReceived(data) emitted to send data received via the serial
+        connection for further processing
+    """
+
+    executeAsyncFinished = pyqtSignal()
+    dataReceived = pyqtSignal(bytes)
+
+    def __init__(self, parent=None):
+        """
+        Constructor
+
+        @param parent reference to the parent object
+        @type QObject
+        """
+        super().__init__(parent)
+
+        self.__repl = parent
+
+        self.__blockReadyRead = False
+
+        self.__serial = MicroPythonSerialPort(
+            timeout=Preferences.getMicroPython("SerialTimeout"), parent=self
+        )
+        self.__serial.readyRead.connect(self.__readSerial)
+
+    @pyqtSlot()
+    def __readSerial(self):
+        """
+        Private slot to read all available serial data and emit it with the
+        "dataReceived" signal for further processing.
+        """
+        if not self.__blockReadyRead:
+            data = bytes(self.__serial.readAll())
+            self.dataReceived.emit(data)
+
+    @pyqtSlot()
+    def connectToDevice(self, port):
+        """
+        Public slot to start the manager.
+
+        @param port name of the port to be used
+        @type str
+        @return flag indicating success
+        @rtype bool
+        """
+        return self.__serial.openSerialLink(port)
+
+    @pyqtSlot()
+    def disconnectFromDevice(self):
+        """
+        Public slot to stop the thread.
+        """
+        self.__serial.closeSerialLink()
+
+    def isConnected(self):
+        """
+        Public method to get the connection status.
+
+        @return flag indicating the connection status
+        @rtype bool
+        """
+        return self.__serial.isConnected()
+
+    @pyqtSlot()
+    def handlePreferencesChanged(self):
+        """
+        Public slot to handle a change of the preferences.
+        """
+        self.__serial.setTimeout(Preferences.getMicroPython("SerialTimeout"))
+
+    def write(self, data):
+        """
+        Public method to write data to the connected device.
+
+        @param data data to be written
+        @type bytes or bytearray
+        """
+        self.__serial.isConnected() and self.__serial.write(data)
+
+    def __rawOn(self):
+        """
+        Private method to switch the connected device to 'raw' mode.
+
+        Note: switching to raw mode is done with synchronous writes.
+
+        @return flag indicating success
+        @@rtype bool
+        """
+        if not self.__serial:
+            return False
+
+        rawReplMessage = b"raw REPL; CTRL-B to exit\r\n>"
+
+        self.__serial.write(b"\x02")  # end raw mode if required
+        written = self.__serial.waitForBytesWritten(500)
+        # time out after 500ms if device is not responding
+        if not written:
+            return False
+        for _i in range(3):
+            # CTRL-C three times to break out of loops
+            self.__serial.write(b"\r\x03")
+            written = self.__serial.waitForBytesWritten(500)
+            # time out after 500ms if device is not responding
+            if not written:
+                return False
+            QThread.msleep(10)
+        self.__serial.readAll()  # read all data and discard it
+        self.__serial.write(b"\r\x01")  # send CTRL-A to enter raw mode
+        self.__serial.readUntil(rawReplMessage)
+        if self.__serial.hasTimedOut():
+            # it timed out; try it again and than fail
+            self.__serial.write(b"\r\x01")  # send CTRL-A again
+            self.__serial.readUntil(rawReplMessage)
+            if self.__serial.hasTimedOut():
+                return False
+
+        QCoreApplication.processEvents(
+            QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents
+        )
+        self.__serial.readAll()  # read all data and discard it
+        return True
+
+    def __rawOff(self):
+        """
+        Private method to switch 'raw' mode off.
+        """
+        if self.__serial:
+            self.__serial.write(b"\x02")  # send CTRL-B to cancel raw mode
+            self.__serial.readUntil(b">>> ")  # read until Python prompt
+            self.__serial.readAll()  # read all data and discard it
+
+    def probeDevice(self):
+        """
+        Public method to check the device is responding.
+
+        If the device has not been flashed with a MicroPython formware, the
+        probe will fail.
+
+        @return flag indicating a communicating MicroPython device
+        @rtype bool
+        """
+        if not self.__serial:
+            return False
+
+        if not self.__serial.isConnected():
+            return False
+
+        # switch on raw mode
+        self.__blockReadyRead = True
+        ok = self.__rawOn()
+        if not ok:
+            self.__blockReadyRead = False
+            return False
+
+        # switch off raw mode
+        QThread.msleep(10)
+        self.__rawOff()
+        self.__blockReadyRead = False
+
+        return True
+
+    def execute(self, commands):
+        """
+        Public method to send commands to the connected device and return the
+        result.
+
+        If no serial connection is available, empty results will be returned.
+
+        @param commands list of commands to be executed
+        @type str or list of str
+        @return tuple containing stdout and stderr output of the device
+        @rtype tuple of (bytes, bytes)
+        """
+        if not self.__serial:
+            return b"", b""
+
+        if not self.__serial.isConnected():
+            return b"", b"Device not connected or not switched on."
+
+        result = bytearray()
+        err = b""
+
+        if isinstance(commands, str):
+            commands = [commands]
+
+        # switch on raw mode
+        self.__blockReadyRead = True
+        ok = self.__rawOn()
+        if not ok:
+            self.__blockReadyRead = False
+            return (b"", b"Could not switch to raw mode. Is the device switched on?")
+
+        # send commands
+        QThread.msleep(10)
+        for command in commands:
+            if command:
+                commandBytes = command.encode("utf-8")
+                self.__serial.write(commandBytes + b"\x04")
+                QCoreApplication.processEvents(
+                    QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents
+                )
+                ok = self.__serial.readUntil(b"OK")
+                if ok != b"OK":
+                    return (
+                        b"",
+                        "Expected 'OK', got '{0}', followed by '{1}'".format(
+                            ok, self.__serial.readAll()
+                        ).encode("utf-8"),
+                    )
+
+                # read until prompt
+                response = self.__serial.readUntil(b"\x04>")
+                if self.__serial.hasTimedOut():
+                    self.__blockReadyRead = False
+                    return b"", b"Timeout while processing commands."
+                if b"\x04" in response[:-2]:
+                    # split stdout, stderr
+                    out, err = response[:-2].split(b"\x04")
+                    result += out
+                else:
+                    err = b"invalid response received: " + response
+                if err:
+                    result = b""
+                    break
+
+        # switch off raw mode
+        QThread.msleep(10)
+        self.__rawOff()
+        self.__blockReadyRead = False
+
+        return bytes(result), err
+
+    def executeAsync(self, commandsList):
+        """
+        Public method to execute a series of commands over a period of time
+        without returning any result (asynchronous execution).
+
+        @param commandsList list of commands to be execute on the device
+        @type list of bytes
+        """
+        if commandsList:
+            command = commandsList.pop(0)
+            self.__serial.write(command)
+            QTimer.singleShot(2, lambda: self.executeAsync(commandsList))
+        else:
+            self.executeAsyncFinished.emit()
--- a/src/eric7/MicroPython/MicroPythonFileManager.py	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/MicroPython/MicroPythonFileManager.py	Tue Feb 14 18:10:30 2023 +0100
@@ -68,18 +68,18 @@
 
     error = pyqtSignal(str, str)
 
-    def __init__(self, commandsInterface, parent=None):
+    def __init__(self, device, parent=None):
         """
         Constructor
 
-        @param commandsInterface reference to the commands interface object
-        @type MicroPythonCommandsInterface
+        @param device MicroPython device object
+        @type BaseDevice
         @param parent reference to the parent object
         @type QObject
         """
         super().__init__(parent)
 
-        self.__commandsInterface = commandsInterface
+        self.__device = device
 
     @pyqtSlot(str)
     def lls(self, dirname, showHidden=False):
@@ -92,7 +92,7 @@
         @type bool
         """
         try:
-            filesList = self.__commandsInterface.lls(dirname, showHidden=showHidden)
+            filesList = self.__device.lls(dirname, showHidden=showHidden)
             result = [
                 (
                     decoratedName(name, mode),
@@ -112,7 +112,7 @@
         Public slot to get the current directory of the device.
         """
         try:
-            pwd = self.__commandsInterface.pwd()
+            pwd = self.__device.pwd()
             self.currentDir.emit(pwd)
         except Exception as exc:
             self.error.emit("pwd", str(exc))
@@ -126,7 +126,7 @@
         @type str
         """
         try:
-            self.__commandsInterface.cd(dirname)
+            self.__device.cd(dirname)
             self.currentDirChanged.emit(dirname)
         except Exception as exc:
             self.error.emit("cd", str(exc))
@@ -146,7 +146,7 @@
             # only a local directory was given
             hostFileName = os.path.join(hostFileName, os.path.basename(deviceFileName))
         try:
-            self.__commandsInterface.get(deviceFileName, hostFileName)
+            self.__device.get(deviceFileName, hostFileName)
             self.getFileDone.emit(deviceFileName, hostFileName)
         except Exception as exc:
             self.error.emit("get", str(exc))
@@ -161,7 +161,7 @@
         @rtype bytes
         """
         try:
-            data = self.__commandsInterface.getData(deviceFileName)
+            data = self.__device.getData(deviceFileName)
             return data
         except Exception as exc:
             self.error.emit("getData", str(exc))
@@ -179,7 +179,7 @@
         @type str
         """
         try:
-            self.__commandsInterface.put(hostFileName, deviceFileName)
+            self.__device.put(hostFileName, deviceFileName)
             self.putFileDone.emit(hostFileName, deviceFileName)
         except Exception as exc:
             self.error.emit("put", str(exc))
@@ -190,11 +190,11 @@
 
         @param deviceFileName name of the file to write to
         @type str
-        @param content data to write
+        @param data data to write
         @type bytes
         """
         try:
-            self.__commandsInterface.putData(deviceFileName, data)
+            self.__device.putData(deviceFileName, data)
             self.putDataDone.emit(deviceFileName)
         except Exception as exc:
             self.error.emit("putData", str(exc))
@@ -208,7 +208,7 @@
         @type str
         """
         try:
-            self.__commandsInterface.rm(deviceFileName)
+            self.__device.rm(deviceFileName)
             self.deleteFileDone.emit(deviceFileName)
         except Exception as exc:
             self.error.emit("delete", str(exc))
@@ -275,15 +275,13 @@
                     destinationDict[name] = nstat
         else:
             try:
-                destinationFiles = self.__commandsInterface.lls(
-                    deviceDirectory, fullstat=True
-                )
+                destinationFiles = self.__device.lls(deviceDirectory, fullstat=True)
             except Exception as exc:
                 return [str(exc)]
             if destinationFiles is None:
                 # the destination directory does not exist
                 try:
-                    self.__commandsInterface.mkdir(deviceDirectory)
+                    self.__device.mkdir(deviceDirectory)
                 except Exception as exc:
                     return [str(exc)]
             else:
@@ -387,7 +385,7 @@
                 )
                 if os.path.isfile(sourceFilename):
                     try:
-                        self.__commandsInterface.put(sourceFilename, destFilename)
+                        self.__device.put(sourceFilename, destFilename)
                     except Exception as exc:
                         # just note issues but ignore them otherwise
                         errors.append(str(exc))
@@ -416,9 +414,7 @@
                         )
                     )
                     try:
-                        self.__commandsInterface.rmrf(
-                            destFilename, recursive=True, force=True
-                        )
+                        self.__device.rmrf(destFilename, recursive=True, force=True)
                     except Exception as exc:
                         # just note issues but ignore them otherwise
                         errors.append(str(exc))
@@ -470,9 +466,7 @@
                                 )
                             )
                             try:
-                                self.__commandsInterface.put(
-                                    sourceFilename, destFilename
-                                )
+                                self.__device.put(sourceFilename, destFilename)
                             except Exception as exc:
                                 errors.append(str(exc))
 
@@ -514,7 +508,7 @@
         @type str
         """
         try:
-            self.__commandsInterface.mkdir(dirname)
+            self.__device.mkdir(dirname)
             self.createDirectoryDone.emit()
         except Exception as exc:
             self.error.emit("mkdir", str(exc))
@@ -532,9 +526,9 @@
         """
         try:
             if recursive:
-                self.__commandsInterface.rmrf(dirname, recursive=True, force=True)
+                self.__device.rmrf(dirname, recursive=True, force=True)
             else:
-                self.__commandsInterface.rmdir(dirname)
+                self.__device.rmdir(dirname)
             self.removeDirectoryDone.emit()
         except Exception as exc:
             self.error.emit("rmdir", str(exc))
@@ -545,7 +539,7 @@
         systems.
         """
         try:
-            fsinfo = self.__commandsInterface.fileSystemInfo()
+            fsinfo = self.__device.fileSystemInfo()
             self.fsinfoDone.emit(fsinfo)
         except Exception as exc:
             self.error.emit("fileSystemInfo", str(exc))
--- a/src/eric7/MicroPython/MicroPythonFileManagerWidget.py	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/MicroPython/MicroPythonFileManagerWidget.py	Tue Feb 14 18:10:30 2023 +0100
@@ -44,15 +44,12 @@
     Class implementing a file manager for MicroPython devices.
     """
 
-    def __init__(self, commandsInterface, deviceWithLocalAccess, parent=None):
+    def __init__(self, device, parent=None):
         """
         Constructor
 
-        @param commandsInterface reference to the commands interface object
-        @type MicroPythonCommandsInterface
-        @param deviceWithLocalAccess flag indicating the device supports file
-            access via a local directory
-        @type bool
+        @param device MicroPython device object
+        @type BaseDevice
         @param parent reference to the parent widget
         @type QWidget
         """
@@ -60,7 +57,7 @@
         self.setupUi(self)
 
         self.__repl = parent
-        self.__deviceWithLocalAccess = deviceWithLocalAccess
+        self.__deviceWithLocalAccess = device.supportsLocalFileAccess()
 
         self.syncButton.setIcon(EricPixmapCache.getIcon("2rightarrow"))
         self.putButton.setIcon(EricPixmapCache.getIcon("1rightarrow"))
@@ -96,7 +93,7 @@
         )
 
         self.__progressInfoDialog = None
-        self.__fileManager = MicroPythonFileManager(commandsInterface, self)
+        self.__fileManager = MicroPythonFileManager(device, self)
 
         self.__fileManager.longListFiles.connect(self.__handleLongListFiles)
         self.__fileManager.currentDir.connect(self.__handleCurrentDir)
@@ -382,7 +379,7 @@
                 name = (
                     cwd + item.text(0)
                     if cwd.endswith("/")
-                    else"{0}/{1}".format(cwd, item.text(0))
+                    else "{0}/{1}".format(cwd, item.text(0))
                 )
             else:
                 name = item.text(0)
@@ -391,7 +388,7 @@
                 self.__fileManager.cd(name[:-1])
             else:
                 data = self.__fileManager.getData(name)
-                text = data.decode(encoding = "utf-8")
+                text = data.decode(encoding="utf-8")
                 ericApp().getObject("ViewManager").newEditorWithText(
                     text, "Python3", "device:{0}".format(name)
                 )
@@ -688,13 +685,13 @@
                     name = (
                         cwd + filename
                         if cwd.endswith("/")
-                        else"{0}/{1}".format(cwd, filename)
+                        else "{0}/{1}".format(cwd, filename)
                     )
                 else:
                     name = filename
                 if not name.endswith("/"):
                     data = self.__fileManager.getData(name)
-                    text = data.decode(encoding = "utf-8")
+                    text = data.decode(encoding="utf-8")
                     ericApp().getObject("ViewManager").newEditorWithText(
                         text, "Python3", "device:{0}".format(name)
                     )
@@ -703,6 +700,9 @@
     def on_saveButton_clicked(self, saveAs=False):
         """
         Private slot to save the text of the current editor to a file on the device.
+
+        @param saveAs flag indicating to save the file with a new name
+        @type bool
         """
         aw = ericApp().getObject("ViewManager").activeWindow()
         if not aw:
@@ -739,9 +739,7 @@
             action, resultFilename = confirmOverwrite(
                 filename,
                 self.tr("Save File As"),
-                self.tr(
-                    "The given file exists already (Enter file name only)."
-                ),
+                self.tr("The given file exists already (Enter file name only)."),
                 False,
                 self,
             )
@@ -758,9 +756,7 @@
             deviceCwd = self.deviceCwd.text()
             if deviceCwd:
                 filename = (
-                    deviceCwd + "/" + filename
-                    if deviceCwd != "/"
-                    else "/" + filename
+                    deviceCwd + "/" + filename if deviceCwd != "/" else "/" + filename
                 )
             self.__fileManager.putData(filename, text.encode("utf-8"))
 
--- a/src/eric7/MicroPython/MicroPythonWidget.py	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/MicroPython/MicroPythonWidget.py	Tue Feb 14 18:10:30 2023 +0100
@@ -7,6 +7,7 @@
 Module implementing the MicroPython REPL widget.
 """
 
+import contextlib
 import functools
 import os
 import re
@@ -49,7 +50,7 @@
     HAS_QTCHART = False
 
 try:
-    from .MicroPythonCommandsInterface import MicroPythonCommandsInterface
+    from .MicroPythonDeviceInterface import MicroPythonDeviceInterface
 
     HAS_QTSERIALPORT = True
 except ImportError:
@@ -272,7 +273,7 @@
         self.__lastDeviceType = None
 
         if HAS_QTSERIALPORT:
-            self.__interface = MicroPythonCommandsInterface(self)
+            self.__interface = MicroPythonDeviceInterface(self)
         else:
             self.__interface = None
         self.__device = None
@@ -461,12 +462,12 @@
         if self.__chartWidget is not None:
             self.__chartWidget.preferencesChanged()
 
-    def commandsInterface(self):
+    def deviceInterface(self):
         """
-        Public method to get a reference to the commands interface object.
+        Public method to get a reference to the device interface object.
 
         @return reference to the commands interface object
-        @rtype MicroPythonCommandsInterface
+        @rtype MicroPythonDeviceInterface
         """
         return self.__interface
 
@@ -498,9 +499,7 @@
         if deviceType == self.ManualMarker:
             self.connectButton.setEnabled(bool(self.__unknownPorts))
         else:
-            self.deviceIconLabel.setPixmap(
-                Devices.getDeviceIcon(deviceType, False)
-            )
+            self.deviceIconLabel.setPixmap(Devices.getDeviceIcon(deviceType, False))
 
             boardName = self.deviceTypeComboBox.itemData(index, self.DeviceBoardRole)
             vid = self.deviceTypeComboBox.itemData(index, self.DeviceVidRole)
@@ -690,7 +689,8 @@
             self.__device.setRepl(True)
             self.replEdit.setFocus(Qt.FocusReason.OtherFocusReason)
         else:
-            self.__interface.dataReceived.disconnect(self.__processData)
+            with contextlib.suppress(TypeError):
+                self.__interface.dataReceived.disconnect(self.__processData)
             if not self.chartButton.isChecked() and not self.filesButton.isChecked():
                 self.__disconnectFromDevice()
             self.__device.setRepl(False)
@@ -1145,9 +1145,7 @@
                     self.deviceIconLabel.setPixmap(
                         Devices.getDeviceIcon(deviceType, False)
                     )
-                    self.__device = Devices.getDevice(
-                        deviceType, self, vid, pid
-                    )
+                    self.__device = Devices.getDevice(deviceType, self, vid, pid)
 
                     self.__lastPort = port
                     self.__lastDeviceType = deviceType
@@ -1370,7 +1368,7 @@
                     self.__connectToDevice()
                 if self.__connected:
                     self.__fileManagerWidget = MicroPythonFileManagerWidget(
-                        self.__interface, self.__device.supportsLocalFileAccess(), self
+                        self.__device, self
                     )
 
                     self.__ui.addSideWidget(
@@ -1387,6 +1385,7 @@
         else:
             if self.__fileManagerWidget is not None:
                 self.__fileManagerWidget.stop()
+                self.__fileManagerWidget.deleteLater()
 
             if not self.replButton.isChecked() and not self.chartButton.isChecked():
                 self.__disconnectFromDevice()
@@ -1394,7 +1393,6 @@
             self.__device.setFileManager(False)
             self.__ui.removeSideWidget(self.__fileManagerWidget)
 
-            self.__fileManagerWidget.deleteLater()
             self.__fileManagerWidget = None
 
         self.filesButton.setChecked(checked)
@@ -1563,7 +1561,7 @@
         from .BoardDataDialog import BoardDataDialog
 
         try:
-            boardInfo = self.__interface.getBoardInformation()
+            boardInfo = self.__device.getBoardInformation()
 
             dlg = BoardDataDialog(boardInfo)
             dlg.exec()
@@ -1585,7 +1583,7 @@
                 and self.__device.getDeviceData()["mpy_name"] == "circuitpython"
             )
             try:
-                self.__interface.syncTime(self.__device.getDeviceType(), hasCPy=hasCPy)
+                self.__device.syncTime(self.__device.getDeviceType(), hasCPy=hasCPy)
 
                 if not quiet:
                     with EricOverridenCursor():
@@ -1611,7 +1609,7 @@
         """
         if self.__device and self.__device.hasTimeCommands():
             try:
-                dateTimeString = self.__interface.getTime()
+                dateTimeString = self.__device.getTime()
                 try:
                     date, time = dateTimeString.strip().split(None, 1)
                     return self.tr(
@@ -1670,7 +1668,7 @@
         localtime = time.strftime("%H:%M:%S", localdatetime)
 
         try:
-            deviceDateTimeString = self.__interface.getTime()
+            deviceDateTimeString = self.__device.getTime()
             try:
                 devicedate, devicetime = deviceDateTimeString.strip().split(None, 1)
                 EricMessageBox.information(
@@ -1962,7 +1960,7 @@
 
         if self.__connected:
             try:
-                moduleNames = self.__interface.getModules()
+                moduleNames = self.__device.getModules()
                 dlg = ShowModulesDialog(
                     moduleNames,
                     info=self.tr("Plus any modules on the filesystem."),
--- a/src/eric7/i18n/eric7_cs.ts	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/i18n/eric7_cs.ts	Tue Feb 14 18:10:30 2023 +0100
@@ -1790,50 +1790,55 @@
   <context>
     <name>BaseDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="92" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="95" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="93" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="96" />
       <source>&lt;p&gt;The device data is not available. Try to connect to the device again. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="125" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="140" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="135" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="150" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="154" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="169" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="173" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="188" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="192" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="207" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="237" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="252" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="238" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="253" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="399" />
+      <source>Detected an error without indications.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>BlackConfigurationDialog</name>
@@ -3824,121 +3829,121 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="89" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="87" />
       <source>CircuitPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="213" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="214" />
       <source>Python files for CircuitPython can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="244" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="250" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="248" />
       <source>CircuitPython Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="253" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="251" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="262" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="260" />
       <source>CircuitPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="344" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="275" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="266" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="342" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="273" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="264" />
       <source>Flash CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="269" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="267" />
       <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="442" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="304" />
-      <source>Install Library Files</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="440" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="302" />
+      <source>Install Library Files</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="306" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="314" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="312" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="343" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 do not support the UF2 bootloader. Please use the 'Teensy Loader' application to flash CircuitPython. Make sure you downloaded the CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="365" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="363" />
       <source>Start 'Teensy Loader'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="366" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="364" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="395" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="393" />
       <source>unknown</source>
       <translation type="unfinished">neznámý</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="414" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="412" />
       <source>&lt;h4&gt;CircuitPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="422" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="420" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="426" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="424" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="446" />
       <source>The device volume "&lt;b&gt;{0}&lt;/b&gt;" is not available. Ensure it is mounted properly and try again.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="474" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="506" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="504" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="510" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="508" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -19961,66 +19966,6 @@
   <context>
     <name>EspBackupRestoreFirmwareDialog</name>
     <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware Size:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the firmware size</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to auto detect. size.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.py" line="107" />
       <source>Firmware Files (*.img);;All Files (*)</source>
       <translation type="unfinished" />
@@ -20035,143 +19980,203 @@
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware Size:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the firmware size</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to auto detect. size.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="72" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="73" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="128" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="129" />
       <source>ESP32 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="405" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="131" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="132" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="222" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="136" />
+      <source>Erase Flash</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="259" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="139" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="296" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="143" />
+      <source>Flash Additional Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="332" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="147" />
+      <source>Backup Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="150" />
+      <source>Restore Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="154" />
+      <source>Show Chip ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="157" />
+      <source>Show Flash ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="160" />
+      <source>Show MAC Address</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="164" />
+      <source>Reset Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="167" />
+      <source>Install 'esptool.py'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="209" />
+      <source>Shall the flash of the selected device really be erased?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="221" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="207" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="135" />
-      <source>Erase Flash</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="138" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="142" />
-      <source>Flash Additional Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="146" />
-      <source>Backup Firmware</source>
+      <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="384" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="149" />
-      <source>Restore Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="153" />
-      <source>Show Chip ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="156" />
-      <source>Show Flash ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="159" />
-      <source>Show MAC Address</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="163" />
-      <source>Reset Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="166" />
-      <source>Install 'esptool.py'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
-      <source>Shall the flash of the selected device really be erased?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="220" />
-      <source>'esptool erase_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="383" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="294" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="257" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
       <source>'esptool read_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="407" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="434" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="435" />
       <source>unknown</source>
       <translation type="unfinished">neznámý</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="446" />
       <source>&lt;h4&gt;{0} Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="453" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="454" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="458" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -20179,80 +20184,80 @@
   <context>
     <name>EspFirmwareSelectionDialog</name>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Address:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Enter the flash addres in the hexadecimal form</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware is CircuitPython</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.py" line="68" />
       <source>Firmware Files (*.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Address:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the flash addres in the hexadecimal form</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware is CircuitPython</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -22002,12 +22007,12 @@
   <context>
     <name>GenericMicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="196" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="194" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="197" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="195" />
       <source>Python files for this generic board can be edited in place, if the device volume is locally available. A volume named '{0}' was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
@@ -49054,14 +49059,6 @@
     </message>
   </context>
   <context>
-    <name>MicroPythonCommandsInterface</name>
-    <message>
-      <location filename="../MicroPython/MicroPythonCommandsInterface.py" line="322" />
-      <source>Detected an error without indications.</source>
-      <translation type="unfinished" />
-    </message>
-  </context>
-  <context>
     <name>MicroPythonDevice</name>
     <message>
       <location filename="../MicroPython/Devices/__init__.py" line="260" />
@@ -49098,35 +49095,35 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="386" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="306" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="384" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="304" />
       <source>{1}Adding &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="450" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="355" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="446" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="353" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a directory and destination &lt;b&gt;{1}&lt;/b&gt; is a file. Ignoring it.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="459" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="364" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="455" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="362" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a file and destination &lt;b&gt;{1}&lt;/b&gt; is a directory. Ignoring it.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="373" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="371" />
       <source>Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="414" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="412" />
       <source>{1}Removing &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="468" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="464" />
       <source>{1}Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
@@ -49230,171 +49227,171 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="977" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="806" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="980" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="809" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="145" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="124" />
+      <source>Change Directory</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1000" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="845" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="833" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
-      <source>Change Directory</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="997" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="842" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="830" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="151" />
+      <source>Create Directory</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1055" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="883" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="872" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
-      <source>Create Directory</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1052" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="880" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="869" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="158" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="133" />
       <source>Delete Directory Tree</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1079" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="918" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="907" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1082" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="921" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="910" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="159" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="134" />
+      <source>Delete File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="162" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="137" />
-      <source>Delete File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="165" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="140" />
       <source>Show Hidden Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1024" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1027" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="152" />
       <source>Delete Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="172" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="169" />
       <source>Show Filesystem Info</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="219" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="216" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="220" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="217" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="486" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="483" />
       <source>Put File As</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="724" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="551" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="484" />
+      <source>Enter a new name for the file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="497" />
+      <source>Copy File to Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="742" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="498" />
+      <source>The given file exists already (Enter file name only).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="550" />
+      <source>Get File As</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="564" />
+      <source>Copy File from Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="565" />
+      <source>The given file exists already.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="741" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="554" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="487" />
-      <source>Enter a new name for the file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="500" />
-      <source>Copy File to Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="735" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="501" />
-      <source>The given file exists already (Enter file name only).</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="553" />
-      <source>Get File As</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="567" />
-      <source>Copy File from Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="568" />
-      <source>The given file exists already.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="734" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="722" />
       <source>Save File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="807" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="810" />
       <source>Select Directory</source>
       <translation type="unfinished">Výběr adresáře</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="998" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="831" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1001" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="834" />
       <source>Enter directory name:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="843" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="846" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1053" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="870" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1056" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="873" />
       <source>Do you really want to delete this directory tree?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="881" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="884" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1080" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="908" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1083" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="911" />
       <source>Do you really want to delete this file?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="919" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="922" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="978" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="981" />
       <source>Enter the directory path on the device:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1025" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1028" />
       <source>Do you really want to delete this directory?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1113" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1116" />
       <source>&lt;h3&gt;Filesystem Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1115" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1118" />
       <source>&lt;h4&gt;{0}&lt;/h4&lt;table&gt;&lt;tr&gt;&lt;td&gt;Total Size: &lt;/td&gt;&lt;td align='right'&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Used Size: &lt;/td&gt;&lt;td align='right'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Free Size: &lt;/td&gt;&lt;td align='right'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1128" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1131" />
       <source>Filesystem Information</source>
       <translation type="unfinished" />
     </message>
@@ -49739,17 +49736,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="231" />
       <source>MicroPython Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="288" />
       <source>&lt;h3&gt;The QtSerialPort package is not available.&lt;br/&gt;MicroPython support is deactivated.&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="329" />
       <source>%n supported device(s) detected.</source>
       <translation type="unfinished">
         <numerusform />
@@ -49758,18 +49755,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="343" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="363" />
       <source>No supported devices detected.</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="367" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation type="unfinished">
@@ -49779,70 +49776,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="374" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="437" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="408" />
       <source>Unknown MicroPython Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="409" />
       <source>&lt;p&gt;Detected these unknown serial devices&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please report them together with the board name and a short description to &lt;a href="mailto:{1}"&gt; the eric bug reporting address&lt;/a&gt; if it is a MicroPython board.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="421" />
       <source>{0} (0x{1:04x}/0x{2:04x})</source>
       <comment>description, VId, PId</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="438" />
       <source>Would you like to add them to the list of manually configured devices?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="564" />
       <source>Clear</source>
       <translation type="unfinished">Vyčistit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="569" />
       <source>Copy</source>
       <translation type="unfinished">Kopírovat</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="575" />
       <source>Paste</source>
       <translation type="unfinished">Vložit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="582" />
       <source>Select All</source>
       <translation type="unfinished">Vybrat vše</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="608" />
       <source>Press to disconnect the current device</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="613" />
       <source>Press to connect the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="640" />
       <source>No device attached</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="641" />
       <source>Please ensure the device is plugged into your computer and selected.
 
 It must have a version of MicroPython (or CircuitPython) flashed onto it before anything will work.
@@ -49851,328 +49848,318 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="670" />
       <source>Start REPL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="671" />
       <source>&lt;p&gt;The REPL cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1180" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1169" />
       <source>Serial Device Connect</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1170" />
       <source>&lt;p&gt;The device at serial port &lt;b&gt;{0}&lt;/b&gt; does not respond. It may not have a MicroPython firmware flashed.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1186" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1181" />
       <source>&lt;p&gt;Cannot connect to device at serial port &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1237" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1228" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1219" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1239" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1221" />
       <source>Run Script</source>
       <translation type="unfinished">Spustit skript</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1222" />
       <source>There is no editor open. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1231" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1240" />
       <source>&lt;p&gt;Cannot run script.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
-      <source>Open Python File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
-      <source>Python3 Files (*.py);;All Files (*)</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1276" />
+      <source>Start Chart</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1277" />
+      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1292" />
+      <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
-      <source>Start Chart</source>
+      <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1310" />
-      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
-      <source>µPy Chart</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
-      <source>Unsaved Chart Data</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1343" />
       <source>The chart contains unsaved data.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1358" />
       <source>Start File Manager</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1359" />
       <source>&lt;p&gt;The File Manager cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1378" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1414" />
       <source>Downloads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1429" />
       <source>Show Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1432" />
       <source>Show Implementation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1440" />
       <source>Synchronize Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1443" />
       <source>Show Device Time</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <source>Show Local Time</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <source>Show Time</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1452" />
+      <source>Show Builtin Modules</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1458" />
+      <source>Compile Python File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1840" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1831" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <source>Compile Current Editor</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1471" />
+      <source>Download Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
-      <source>Show Local Time</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
-      <source>Show Time</source>
+      <source>Show Documentation</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1482" />
+      <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1485" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1849" />
+      <source>Manage Unknown Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1488" />
+      <source>Ignored Serial Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1491" />
-      <source>Compile Python File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1873" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1864" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1495" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1504" />
-      <source>Download Firmware</source>
+      <source>Configure</source>
+      <translation type="unfinished">Konfigurovat</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1500" />
+      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1511" />
-      <source>Show Documentation</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
-      <source>Flash UF2 Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
-      <source>Manage Unknown Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
-      <source>Ignored Serial Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
-      <source>Configure</source>
-      <translation type="unfinished">Konfigurovat</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
-      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1507" />
+      <source>Device Version Information</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1512" />
+      <source>No version information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1531" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1527" />
+      <source>unknown</source>
+      <translation type="unfinished">neznámý</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1536" />
+      <source> ({0})</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1552" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1543" />
+      <source>Device Implementation Information</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1544" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1540" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1545" />
-      <source>No version information available.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1564" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1560" />
-      <source>unknown</source>
-      <translation type="unfinished">neznámý</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1569" />
-      <source> ({0})</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1585" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1576" />
-      <source>Device Implementation Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1577" />
       <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}{2}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1553" />
       <source>No device implementation information available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1593" />
       <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1615" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1623" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1639" />
       <source>Device Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
       <source>Local Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
       <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1693" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
       <source>Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1694" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1718" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1761" />
       <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1787" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished">Python soubory (*.py);;Všechny soubory (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
       <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1806" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50183,16 +50170,6 @@
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to open a file of the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to save the current editor to the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
       <source>Press to run the current script on the selected device</source>
       <translation type="unfinished" />
     </message>
@@ -50215,194 +50192,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="86" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="87" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="89" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="188" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="190" />
       <source>BBC micro:bit/Calliope Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="401" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="389" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="372" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="191" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="403" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="391" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="374" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="193" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="195" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="197" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="198" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="200" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="202" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="491" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="204" />
       <source>Save Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="205" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="207" />
       <source>Save the current script to the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="210" />
       <source>Save Script as 'main.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="211" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="213" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="217" />
       <source>Reset {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="355" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="346" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="332" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="315" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="302" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="282" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="357" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="334" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="317" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="304" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="284" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="285" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed and plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;See the &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="303" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="305" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MICROBIT is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="316" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="318" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed an plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="333" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="335" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MINI is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="350" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="356" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="358" />
       <source>There are multiple devices ready for flashing. Please make sure, that only one device is prepared.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="373" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="375" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="390" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="392" />
       <source>&lt;p&gt;The BBC micro:bit generation cannot be determined. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="402" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="404" />
       <source>&lt;p&gt;The firmware URL for the device type &lt;b&gt;{0}&lt;/b&gt; is not known. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="429" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="431" />
       <source>unknown</source>
       <translation type="unfinished">neznámý</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="447" />
       <source>Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="450" />
       <source>&lt;h4&gt;{0} Version Information&lt;br/&gt;(BBC micro:bit v{1})&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="459" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="461" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="463" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="523" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="487" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="525" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
       <source>Save Script as '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="498" />
       <source>The current editor does not contain a Python script. Write it anyway?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="507" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="509" />
       <source>The script is empty. Aborting.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="518" />
       <source>Enter a file name on the device:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="539" />
       <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" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="597" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="599" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="629" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="616" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="601" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="631" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="618" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="603" />
       <source>DAPLink Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="608" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="610" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="612" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="614" />
       <source>CircuitPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="625" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="627" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -62393,131 +62370,131 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="82" />
       <source>PyBoard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="199" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="197" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="200" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="198" />
       <source>Python files for PyBoard can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="232" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="230" />
       <source>PyBoard Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="438" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="235" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="436" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="233" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="239" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="237" />
       <source>Activate Bootloader</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="242" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="240" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="421" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="244" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="249" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="247" />
       <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="306" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="309" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="307" />
       <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="329" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="327" />
       <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="339" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="337" />
       <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="343" />
       <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="346" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="359" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="357" />
       <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="365" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="420" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="418" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="410" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="439" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="437" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="466" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="464" />
       <source>unknown</source>
       <translation type="unfinished">neznámý</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="472" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="470" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="480" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="478" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="484" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="482" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67643,78 +67620,78 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="70" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="71" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="126" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="127" />
       <source>RP2040 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="198" />
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="129" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="133" />
-      <source>Activate Bootloader</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="136" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/RP2040Devices.py" line="199" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="130" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="134" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="137" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="200" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="231" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="232" />
       <source>unknown</source>
       <translation type="unfinished">neznámý</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="238" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="247" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="255" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="256" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="259" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="260" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="282" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="283" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="286" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="287" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="289" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="290" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="293" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="294" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -81653,74 +81630,74 @@
   <context>
     <name>TeensyDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="69" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="70" />
       <source>Teensy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="143" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="144" />
       <source>Teensy Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="184" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="146" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="150" />
-      <source>MicroPython Flash Instructions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="240" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="153" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="156" />
-      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="185" />
-      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="212" />
-      <source>unknown</source>
-      <translation type="unfinished">neznámý</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="218" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="226" />
-      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="230" />
-      <source>MicroPython Version</source>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="147" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="151" />
+      <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="241" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="154" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="157" />
+      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="186" />
+      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="213" />
+      <source>unknown</source>
+      <translation type="unfinished">neznámý</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="219" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="227" />
+      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="231" />
+      <source>MicroPython Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="242" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 are flashed using the 'Teensy Loader' application. Make sure you downloaded the MicroPython or CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="260" />
-      <source>Start 'Teensy Loader'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="261" />
+      <source>Start 'Teensy Loader'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="262" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
Binary file src/eric7/i18n/eric7_de.qm has changed
--- a/src/eric7/i18n/eric7_de.ts	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/i18n/eric7_de.ts	Tue Feb 14 18:10:30 2023 +0100
@@ -1733,50 +1733,55 @@
   <context>
     <name>BaseDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="92" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="95" />
       <source>Show MicroPython Versions</source>
       <translation>Zeige MicroPython Versionen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="93" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="96" />
       <source>&lt;p&gt;The device data is not available. Try to connect to the device again. Aborting...&lt;/p&gt;</source>
       <translation>&lt;p&gt;Die Gerätedaten sind nicht verfügbar. Versuche, das Gerät neu zu verbinden. Abbruch...&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="125" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="140" />
       <source>Unsupported Device</source>
       <translation>Nicht unterstütztes Gerät</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="135" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="150" />
       <source>REPL is not supported by this device.</source>
       <translation>REPL wird von diesem Gerät nicht unterstützt.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="154" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="169" />
       <source>Plotter is not supported by this device.</source>
       <translation>Der Plotter wird von diesem Gerät nicht unterstützt.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="173" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="188" />
       <source>Running scripts is not supported by this device.</source>
       <translation>Die Ausführung von Skripten wird von diesem Gerät nicht unterstützt.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="192" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="207" />
       <source>File Manager is not supported by this device.</source>
       <translation>Der Dateimanager wird von diesem Gerät nicht unterstützt.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="237" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="252" />
       <source>Select Device Directory</source>
       <translation>Auswahl des Geräteverzeichnis</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="238" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="253" />
       <source>Select the directory for the connected device:</source>
       <translation>Wähle das Verzeichnis für das verbundene Gerät:</translation>
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="399" />
+      <source>Detected an error without indications.</source>
+      <translation>Es wurde ein Fehler ohne nähere Angaben entdeckt.</translation>
+    </message>
   </context>
   <context>
     <name>BlackConfigurationDialog</name>
@@ -3765,121 +3770,121 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="89" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="87" />
       <source>CircuitPython</source>
       <translation>CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="213" />
       <source>Workspace Directory</source>
       <translation>Arbeitsverzeichnis</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="214" />
       <source>Python files for CircuitPython can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation>Python Dateien für CircuitPython können an Ort und Stelle bearbeitet werden, wenn das Geräteverzeichnis lokal verfügbar ist. Ein solches Verzeichnis konnte nicht gefunden werden. Direkte Bearbeitung ist nicht verfügbar.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="244" />
       <source>Library Management</source>
       <translation>Bibliotheksverwaltung</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="250" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="248" />
       <source>CircuitPython Functions</source>
       <translation>CircuitPython Funktionen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="253" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="251" />
       <source>Show CircuitPython Versions</source>
       <translation>Zeige CircuitPython Versionen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="262" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="260" />
       <source>CircuitPython Flash Instructions</source>
       <translation>CircuitPython Flashanweisungen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="344" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="275" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="266" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="342" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="273" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="264" />
       <source>Flash CircuitPython Firmware</source>
       <translation>CircuitPython Firmware flashen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="269" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="267" />
       <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
       <translation>Startet die 'Teensy Loader' Anwendung zum Flashen des Teensy Boards.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="442" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="304" />
-      <source>Install Library Files</source>
-      <translation>Bibliotheksdateien installieren</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="440" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="302" />
+      <source>Install Library Files</source>
+      <translation>Bibliotheksdateien installieren</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="306" />
       <source>Install Library Package</source>
       <translation>Bibliothekspaket installieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="314" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="312" />
       <source>Install 'circup' Package</source>
       <translation>'circup' Paket installieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="343" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 do not support the UF2 bootloader. Please use the 'Teensy Loader' application to flash CircuitPython. Make sure you downloaded the CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Teensy 4.0 und Teensy 4.1 unterstützen den UF2 Bootloader nicht. Bitte verwende die 'Teensy Loader' Anwendung, um CircuitPython zu flashen. Stelle sicher, dass die CircuitPython .hex Datei geladen ist.&lt;/p&gt;&lt;p&gt;Siehe &lt;a href="{0}"&gt;die PJRC Teensy Webseite&lt;/a&gt; für Details.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="365" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="363" />
       <source>Start 'Teensy Loader'</source>
       <translation>'Teensy Loader' starten</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="366" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="364" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Die 'Teensy Loader' Anwendung &lt;b&gt;teensy&lt;/b&gt; konnte nicht gestartet werden. Stelle sicher, dass sie sich im Suchpfad befindet oder starte sie manuell.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="395" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="393" />
       <source>unknown</source>
       <translation>unbekannt</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="414" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="412" />
       <source>&lt;h4&gt;CircuitPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h4&gt;CircuitPython Versionsinformationen&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installiert:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Verfügbar:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="422" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="420" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;Update verfügbar!&lt;/b&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="426" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="424" />
       <source>CircuitPython Version</source>
       <translation>CircuitPython Version</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="446" />
       <source>The device volume "&lt;b&gt;{0}&lt;/b&gt;" is not available. Ensure it is mounted properly and try again.</source>
       <translation>Das Geräteverzeichnis "&lt;b&gt;{0}&lt;/b&gt;" ist nicht bereit. Stelle sicher, dass es gemounted ist und versuche es erneut.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="474" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation>Übersetzte Python Dateien (*.mpy);;Python Dateien (*.py);;Alle Dateien (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="506" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="504" />
       <source>CircuitPython Firmware</source>
       <translation>CircuitPython Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="510" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="508" />
       <source>CircuitPython Libraries</source>
       <translation>CircuitPython Bibliotheken</translation>
     </message>
@@ -19885,66 +19890,6 @@
   <context>
     <name>EspBackupRestoreFirmwareDialog</name>
     <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation>ESP Chiptyp:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation>Wähle den ESP Chiptyp</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware Size:</source>
-      <translation>Firmwaregröße:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the firmware size</source>
-      <translation>Wähle die Firmwaregröße aus</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to auto detect. size.</source>
-      <translation>Leer lassen, um die Größe automatisch zu detektieren.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation>Baudrate:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation>Wähle die zum Flashen zu verwendende Baudrate (Standard: 115.200 BpS)</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation>Flash Modus:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation>Wähle den Flashmodus aus</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation>Leer lassen, um den Standardmodus zu verwenden.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation>Firmware:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation>Gib den Pfad der Firmwaredatei ein</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.py" line="107" />
       <source>Firmware Files (*.img);;All Files (*)</source>
       <translation>Firmwaredateien (*.img);;Alle Dateien (*)</translation>
@@ -19959,143 +19904,203 @@
       <source>Restore Firmware</source>
       <translation>Firmware zurückspielen</translation>
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation>ESP Chiptyp:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation>Wähle den ESP Chiptyp</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware Size:</source>
+      <translation>Firmwaregröße:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the firmware size</source>
+      <translation>Wähle die Firmwaregröße aus</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to auto detect. size.</source>
+      <translation>Leer lassen, um die Größe automatisch zu detektieren.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation>Baudrate:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation>Wähle die zum Flashen zu verwendende Baudrate (Standard: 115.200 BpS)</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation>Flash Modus:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation>Wähle den Flashmodus aus</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation>Leer lassen, um den Standardmodus zu verwenden.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation>Firmware:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation>Gib den Pfad der Firmwaredatei ein</translation>
+    </message>
   </context>
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="72" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="73" />
       <source>ESP8266, ESP32</source>
       <translation>ESP8266, ESP32</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="128" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="129" />
       <source>ESP32 Functions</source>
       <translation>ESP32 Funktionen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="405" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="131" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="132" />
       <source>Show MicroPython Versions</source>
       <translation>Zeige MicroPython Versionen</translation>
     </message>
     <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="222" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="136" />
+      <source>Erase Flash</source>
+      <translation>Flash löschen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="259" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="139" />
+      <source>Flash MicroPython Firmware</source>
+      <translation>MicroPython Firmware flashen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="296" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="143" />
+      <source>Flash Additional Firmware</source>
+      <translation>Zusätzliche Firmware flashen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="332" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="147" />
+      <source>Backup Firmware</source>
+      <translation>Firmware sichern</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="150" />
+      <source>Restore Firmware</source>
+      <translation>Firmware zurückspielen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="154" />
+      <source>Show Chip ID</source>
+      <translation>Chip ID anzeigen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="157" />
+      <source>Show Flash ID</source>
+      <translation>Flash ID anzeigen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="160" />
+      <source>Show MAC Address</source>
+      <translation>MAC Adresse anzeigen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="164" />
+      <source>Reset Device</source>
+      <translation>Gerät zurücksetzen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="167" />
+      <source>Install 'esptool.py'</source>
+      <translation>'esptool.py' installieren</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="209" />
+      <source>Shall the flash of the selected device really be erased?</source>
+      <translation>Soll der Flashspeicher des ausgewählten Gerätes wirklich gelöscht werden?</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="221" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="207" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="135" />
-      <source>Erase Flash</source>
-      <translation>Flash löschen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="138" />
-      <source>Flash MicroPython Firmware</source>
-      <translation>MicroPython Firmware flashen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="142" />
-      <source>Flash Additional Firmware</source>
-      <translation>Zusätzliche Firmware flashen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="146" />
-      <source>Backup Firmware</source>
-      <translation>Firmware sichern</translation>
+      <source>'esptool erase_flash' Output</source>
+      <translation>Ausgabe von 'esptool erase_flash'</translation>
     </message>
     <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="384" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="149" />
-      <source>Restore Firmware</source>
-      <translation>Firmware zurückspielen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="153" />
-      <source>Show Chip ID</source>
-      <translation>Chip ID anzeigen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="156" />
-      <source>Show Flash ID</source>
-      <translation>Flash ID anzeigen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="159" />
-      <source>Show MAC Address</source>
-      <translation>MAC Adresse anzeigen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="163" />
-      <source>Reset Device</source>
-      <translation>Gerät zurücksetzen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="166" />
-      <source>Install 'esptool.py'</source>
-      <translation>'esptool.py' installieren</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
-      <source>Shall the flash of the selected device really be erased?</source>
-      <translation>Soll der Flashspeicher des ausgewählten Gerätes wirklich gelöscht werden?</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="220" />
-      <source>'esptool erase_flash' Output</source>
-      <translation>Ausgabe von 'esptool erase_flash'</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="383" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="294" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="257" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
       <source>'esptool write_flash' Output</source>
       <translation>Ausgabe von 'esptool write_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
       <source>'esptool read_flash' Output</source>
       <translation>Ausgabe von 'esptool read_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="407" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation>Die Firmware des verbundenen Gerätes kann nicht ermittelt werden oder das Board enthält kein MicroPython oder CircuitPython. Abbruch...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="434" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="435" />
       <source>unknown</source>
       <translation>unbekannt</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="446" />
       <source>&lt;h4&gt;{0} Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h4&gt;{0} Versionsinformationen&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installiert:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Verfügbar:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="453" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="454" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;Update verfügbar!&lt;/b&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="458" />
       <source>{0} Version</source>
       <translation>{0} Version</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
       <source>'esptool chip_id' Output</source>
       <translation>Ausgabe von 'esptool chip_id'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
       <source>'esptool flash_id' Output</source>
       <translation>Ausgabe von 'esptool flash_id'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
       <source>'esptool read_mac' Output</source>
       <translation>Ausgabe von 'esptool read_mac'</translation>
     </message>
@@ -20103,80 +20108,80 @@
   <context>
     <name>EspFirmwareSelectionDialog</name>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash MicroPython Firmware</source>
-      <translation>MicroPython Firmware flashen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation>Baudrate:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation>Leer lassen, um den Standardmodus zu verwenden.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Address:</source>
-      <translation>Adresse:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <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.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation>Wähle den Flashmodus aus</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation>Flash Modus:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation>Firmware:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation>Wähle den ESP Chiptyp</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation>Wähle die zum Flashen zu verwendende Baudrate (Standard: 115.200 BpS)</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation>Gib den Pfad der Firmwaredatei ein</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation>ESP Chiptyp:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
-      <translation>Anwählen, falls es sich bei der zu Ladenden Firmware um CircuitPython handelt (für einige Chips ändert dies die Flashadresse).</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware is CircuitPython</source>
-      <translation>Firmware ist CircuitPython</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.py" line="68" />
       <source>Firmware Files (*.bin);;All Files (*)</source>
       <translation>Firmwaredateien (*.bin);;Alle Dateien (*)</translation>
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash MicroPython Firmware</source>
+      <translation>MicroPython Firmware flashen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation>Baudrate:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation>Leer lassen, um den Standardmodus zu verwenden.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Address:</source>
+      <translation>Adresse:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the flash addres in the hexadecimal form</source>
+      <translation>Gib die Flash Speicheradresse in Hexadezimalform ein</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation>Wähle den Flashmodus aus</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation>Flash Modus:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation>Firmware:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation>Wähle den ESP Chiptyp</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation>Wähle die zum Flashen zu verwendende Baudrate (Standard: 115.200 BpS)</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation>Gib den Pfad der Firmwaredatei ein</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation>ESP Chiptyp:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
+      <translation>Anwählen, falls es sich bei der zu Ladenden Firmware um CircuitPython handelt (für einige Chips ändert dies die Flashadresse).</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware is CircuitPython</source>
+      <translation>Firmware ist CircuitPython</translation>
+    </message>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -21872,12 +21877,12 @@
   <context>
     <name>GenericMicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="196" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="194" />
       <source>Workspace Directory</source>
       <translation>Arbeitsverzeichnis</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="197" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="195" />
       <source>Python files for this generic board can be edited in place, if the device volume is locally available. A volume named '{0}' was not found. In place editing will not be available.</source>
       <translation>Python Dateien für dieses Generische Gerät können an Ort und Stelle bearbeitet werden, wenn das Geräteverzeichnis lokal verfügbar ist. Ein Verzeichnis mit der Bezeichnung '{0}'konnte nicht gefunden werden. Direkte Bearbeitung ist nicht verfügbar.</translation>
     </message>
@@ -48931,14 +48936,6 @@
     </message>
   </context>
   <context>
-    <name>MicroPythonCommandsInterface</name>
-    <message>
-      <location filename="../MicroPython/MicroPythonCommandsInterface.py" line="322" />
-      <source>Detected an error without indications.</source>
-      <translation>Es wurde ein Fehler ohne nähere Angaben entdeckt.</translation>
-    </message>
-  </context>
-  <context>
     <name>MicroPythonDevice</name>
     <message>
       <location filename="../MicroPython/Devices/__init__.py" line="260" />
@@ -48975,35 +48972,35 @@
       <translation>{1}Synchronisierung von &lt;b&gt;{0}&lt;/b&gt; ist abgeschlossen.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="386" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="306" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="384" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="304" />
       <source>{1}Adding &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>{1}Füge &lt;b&gt;{0}&lt;/b&gt; hinzu...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="450" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="355" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="446" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="353" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a directory and destination &lt;b&gt;{1}&lt;/b&gt; is a file. Ignoring it.</source>
       <translation>Die Quelle &lt;b&gt;{0}&lt;/b&gt; ist ein Verzeichnis und das Ziel &lt;b&gt;{1}&lt;/b&gt; ist eine Datei. Ignoriere sie.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="459" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="364" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="455" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="362" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a file and destination &lt;b&gt;{1}&lt;/b&gt; is a directory. Ignoring it.</source>
       <translation>Die Quelle &lt;b&gt;{0}&lt;/b&gt; ist eine Datei und das Ziel &lt;b&gt;{1}&lt;/b&gt; ist ein Verzeichnis. Ignoriere sie.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="373" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="371" />
       <source>Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>Aktualisiere &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="414" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="412" />
       <source>{1}Removing &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>{1}Entferne &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="468" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="464" />
       <source>{1}Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>{1}Aktualisiere &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
@@ -49107,171 +49104,171 @@
       <translation>Drücken, um zum Startverzeichnis des Gerätes zu springen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="977" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="806" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="980" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="809" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="145" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="124" />
       <source>Change Directory</source>
       <translation>Verzeichnis wechseln</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="997" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="842" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="830" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="151" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1000" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="845" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="833" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
       <source>Create Directory</source>
       <translation>Verzeichnis anlegen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1052" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="880" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="869" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="158" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="133" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1055" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="883" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="872" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
       <source>Delete Directory Tree</source>
       <translation>Verzeichnisbaum löschen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1079" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="918" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="907" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1082" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="921" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="910" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="159" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="134" />
+      <source>Delete File</source>
+      <translation>Datei löschen</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="162" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="137" />
-      <source>Delete File</source>
-      <translation>Datei löschen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="165" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="140" />
       <source>Show Hidden Files</source>
       <translation>Versteckte Dateien zeigen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1024" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1027" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="152" />
       <source>Delete Directory</source>
       <translation>Verzeichnis löschen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="172" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="169" />
       <source>Show Filesystem Info</source>
       <translation>Dateisysteminformationen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="219" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="216" />
       <source>Error handling device</source>
       <translation>Fehler bei Gerätekommunikation</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="220" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="217" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Es trat ein Fehler bei der Kommunikation mit dem Gerät auf.&lt;/p&gt;&lt;p&gt;Methode: {0}&lt;/p&gt;&lt;p&gt;Nachricht: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="486" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="483" />
       <source>Put File As</source>
       <translation>Datei Kopieren Als</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="554" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="487" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="724" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="551" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="484" />
       <source>Enter a new name for the file</source>
       <translation>Gib einen neuen Namen für die Datei ein</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="500" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="497" />
       <source>Copy File to Device</source>
       <translation>Datei zum Gerät kopieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="735" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="501" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="742" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="498" />
       <source>The given file exists already (Enter file name only).</source>
       <translation>Die angegebene Datei existiert bereits (Gib nur den Dateinamen ein).</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="553" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="550" />
       <source>Get File As</source>
       <translation>Datei Holen Als</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="567" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="564" />
       <source>Copy File from Device</source>
       <translation>Datei vom Gerät kopieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="568" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="565" />
       <source>The given file exists already.</source>
       <translation>Die angegebene Datei existiert bereits.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="734" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="722" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="741" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
       <source>Save File As</source>
       <translation>Datei speichern als</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="807" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="810" />
       <source>Select Directory</source>
       <translation>Verzeichnis wählen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="998" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="831" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1001" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="834" />
       <source>Enter directory name:</source>
       <translation>Gib den Verzeichnisnamen ein:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="843" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="846" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Das Verzeichnis &lt;b&gt;{0}&lt;/b&gt; konnte nicht angelegt werden.&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1053" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="870" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1056" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="873" />
       <source>Do you really want to delete this directory tree?</source>
       <translation>Soll dieser Verzeichnisbaum wirklich gelöscht werden?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="881" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="884" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Das Verzeichnis &lt;b&gt;{0}&lt;/b&gt; konnte nicht gelöscht werden.&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1080" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="908" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1083" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="911" />
       <source>Do you really want to delete this file?</source>
       <translation>Soll diese Datei wirklich gelöscht werden?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="919" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="922" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Die Datei &lt;b&gt;{0}&lt;/b&gt; konnte nicht gelöscht werden.&lt;/p&gt;&lt;p&gt;Ursache: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="978" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="981" />
       <source>Enter the directory path on the device:</source>
       <translation>Gib den Verzeichnispfad auf dem Gerät ein:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1025" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1028" />
       <source>Do you really want to delete this directory?</source>
       <translation>Soll dieses Verzeichnis wirklich gelöscht werden?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1113" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1116" />
       <source>&lt;h3&gt;Filesystem Information&lt;/h3&gt;</source>
       <translation>&lt;h3&gt;Dateisysteminformationen&lt;/h3&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1115" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1118" />
       <source>&lt;h4&gt;{0}&lt;/h4&lt;table&gt;&lt;tr&gt;&lt;td&gt;Total Size: &lt;/td&gt;&lt;td align='right'&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Used Size: &lt;/td&gt;&lt;td align='right'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Free Size: &lt;/td&gt;&lt;td align='right'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h4&gt;{0}&lt;/h4&lt;table&gt;&lt;tr&gt;&lt;td&gt;Gesamtspeichergröße: &lt;/td&gt;&lt;td align='right'&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Belegter Speicher: &lt;/td&gt;&lt;td align='right'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Freier Speicher: &lt;/td&gt;&lt;td align='right'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1128" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1131" />
       <source>Filesystem Information</source>
       <translation>Dateisysteminformationen</translation>
     </message>
@@ -49616,17 +49613,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="231" />
       <source>MicroPython Menu</source>
       <translation>MicroPython MenÜ</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="288" />
       <source>&lt;h3&gt;The QtSerialPort package is not available.&lt;br/&gt;MicroPython support is deactivated.&lt;/h3&gt;</source>
       <translation>&lt;h3&gt;Das Paket QtSerialPort ist nicht verfügbar.&lt;br/&gt;Die MicroPython Unterstützung wird deaktiviert.&lt;/h3&gt;</translation>
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="329" />
       <source>%n supported device(s) detected.</source>
       <translation>
         <numerusform>%n unterstütztes Gerät gefunden.</numerusform>
@@ -49634,18 +49631,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="343" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation>{0} - {1} ({2})</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="363" />
       <source>No supported devices detected.</source>
       <translation>Keine unterstützten Geräte gefunden.</translation>
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="367" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation>
@@ -49656,70 +49653,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="374" />
       <source>Manual Selection</source>
       <translation>Manuelle Auswahl</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="437" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="408" />
       <source>Unknown MicroPython Device</source>
       <translation>Unbekanntes MicroPython Gerät</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="409" />
       <source>&lt;p&gt;Detected these unknown serial devices&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please report them together with the board name and a short description to &lt;a href="mailto:{1}"&gt; the eric bug reporting address&lt;/a&gt; if it is a MicroPython board.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Diese ubekannten seriellen Geräte wurden erkannt.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Falls es sich um ein MicroPython Board handelt, melden sie es bitte zusammen mit dem Boardnamen und einer Kurzbeschreibung an &lt;a href="mailto:{1}"&gt; die eric Fehlermitteilungsadresse&lt;/a&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="421" />
       <source>{0} (0x{1:04x}/0x{2:04x})</source>
       <comment>description, VId, PId</comment>
       <translation>{0} (0x{1:04x}/0x{2:04x})</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="438" />
       <source>Would you like to add them to the list of manually configured devices?</source>
       <translation>Sollen sie zur Liste der manuell konfigurierten Geräte hinzugefügt werden?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="564" />
       <source>Clear</source>
       <translation>Löschen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="569" />
       <source>Copy</source>
       <translation>Kopieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="575" />
       <source>Paste</source>
       <translation>Einfügen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="582" />
       <source>Select All</source>
       <translation>Alles auswählen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="608" />
       <source>Press to disconnect the current device</source>
       <translation>Drücken, um die Verbindung zum aktuelle Geräte zu trennen</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="613" />
       <source>Press to connect the selected device</source>
       <translation>Drücken, um eine Verbindung mit den ausgewählten Gerät herzustellen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="640" />
       <source>No device attached</source>
       <translation>Kein Gerät angeschlossen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="641" />
       <source>Please ensure the device is plugged into your computer and selected.
 
 It must have a version of MicroPython (or CircuitPython) flashed onto it before anything will work.
@@ -49732,328 +49729,318 @@
 Drücke zum Abschluss den Resetknopf des Gerätes und warte ein paar Sekunden vor einem neuen Versuch.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="670" />
       <source>Start REPL</source>
       <translation>REPL starten</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="671" />
       <source>&lt;p&gt;The REPL cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Die Eingabeaufforderung kann nicht gestartet werden.&lt;/p&gt;&lt;p&gt;Ursache: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1180" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1169" />
       <source>Serial Device Connect</source>
       <translation>Serielle Verbindung</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1170" />
       <source>&lt;p&gt;The device at serial port &lt;b&gt;{0}&lt;/b&gt; does not respond. It may not have a MicroPython firmware flashed.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Das Gerät am seriellen Port &lt;b&gt;{0}&lt;/b&gt; antwortet nicht. Es hat wahrscheinlich keine MicroPython Firmware geflasht.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1186" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1181" />
       <source>&lt;p&gt;Cannot connect to device at serial port &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Kann keine Verbindung zum Gerät an der seriellen Schnittstelle &lt;b&gt;{0}&lt;/b&gt; herstellen.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1237" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1228" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1219" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1239" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1221" />
       <source>Run Script</source>
       <translation>Skript ausführen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1222" />
       <source>There is no editor open. Abort...</source>
       <translation>Es ist kein Editor offen. Abbruch...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1231" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation>Der aktuelle Editortext enthält kein Skript. Abbruch...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1240" />
       <source>&lt;p&gt;Cannot run script.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Das Skript kann nicht ausgeführt werden.&lt;/p&gt;&lt;p&gt;Ursache: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
-      <source>Open Python File</source>
-      <translation>Pythondatei öffnen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
-      <source>Python3 Files (*.py);;All Files (*)</source>
-      <translation>Python3 Dateien (*.py);;Alle Dateien (*)</translation>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1276" />
+      <source>Start Chart</source>
+      <translation>Chart starten</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1277" />
+      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Das Chart kann nicht gestartet werden.&lt;/p&gt;&lt;p&gt;Ursache: {0}&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1292" />
+      <source>µPy Chart</source>
+      <translation>µPy Chart</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
-      <source>Start Chart</source>
-      <translation>Chart starten</translation>
+      <source>Unsaved Chart Data</source>
+      <translation>Nicht gesicherte Chart Daten</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1310" />
-      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
-      <translation>&lt;p&gt;Das Chart kann nicht gestartet werden.&lt;/p&gt;&lt;p&gt;Ursache: {0}&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
-      <source>µPy Chart</source>
-      <translation>µPy Chart</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
-      <source>Unsaved Chart Data</source>
-      <translation>Nicht gesicherte Chart Daten</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1343" />
       <source>The chart contains unsaved data.</source>
       <translation>Das Chart enthält ungesicherte Daten.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1358" />
       <source>Start File Manager</source>
       <translation>Dateimanager starten</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1359" />
       <source>&lt;p&gt;The File Manager cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Der Dateimanager kann nicht gestartet werden.&lt;/p&gt;&lt;p&gt;Ursache: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1378" />
       <source>µPy Files</source>
       <translation>µPy Dateien</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1414" />
       <source>Downloads</source>
       <translation>Downloads</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1429" />
       <source>Show Version</source>
       <translation>Version anzeigen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1432" />
       <source>Show Implementation</source>
       <translation>Implementierung anzeigen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
       <source>Show Board Data</source>
       <translation>Board Daten anzeigen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1440" />
       <source>Synchronize Time</source>
       <translation>Zeit synchronisieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1443" />
       <source>Show Device Time</source>
       <translation>Gerätezeit anzeigen</translation>
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <source>Show Local Time</source>
+      <translation>Lokale Zeit anzeigen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <source>Show Time</source>
+      <translation>Zeit anzeigen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1452" />
+      <source>Show Builtin Modules</source>
+      <translation>Eingebaute Module anzeigen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1458" />
+      <source>Compile Python File</source>
+      <translation>Python Datei übersetzen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1840" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1831" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <source>Compile Current Editor</source>
+      <translation>Aktuellen Editor übersetzen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1471" />
+      <source>Download Firmware</source>
+      <translation>Firmware herunterladen</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
-      <source>Show Local Time</source>
-      <translation>Lokale Zeit anzeigen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
-      <source>Show Time</source>
-      <translation>Zeit anzeigen</translation>
+      <source>Show Documentation</source>
+      <translation>Dokumentation anzeigen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1482" />
+      <source>Flash UF2 Device</source>
+      <translation>UF2 Gerät flashen</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1485" />
-      <source>Show Builtin Modules</source>
-      <translation>Eingebaute Module anzeigen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1849" />
+      <source>Manage Unknown Devices</source>
+      <translation>Unbekannte Geräte verwalten</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1488" />
+      <source>Ignored Serial Devices</source>
+      <translation>Ignorierte Serielle Geräte</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1491" />
-      <source>Compile Python File</source>
-      <translation>Python Datei übersetzen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1873" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1864" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1495" />
-      <source>Compile Current Editor</source>
-      <translation>Aktuellen Editor übersetzen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1504" />
-      <source>Download Firmware</source>
-      <translation>Firmware herunterladen</translation>
+      <source>Configure</source>
+      <translation>Einstellungen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1500" />
+      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
+      <translation>&lt;h3&gt;Versionsinformationen des Gerätes&lt;/h3&gt;</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1511" />
-      <source>Show Documentation</source>
-      <translation>Dokumentation anzeigen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
-      <source>Flash UF2 Device</source>
-      <translation>UF2 Gerät flashen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
-      <source>Manage Unknown Devices</source>
-      <translation>Unbekannte Geräte verwalten</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
-      <source>Ignored Serial Devices</source>
-      <translation>Ignorierte Serielle Geräte</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
-      <source>Configure</source>
-      <translation>Einstellungen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
-      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
-      <translation>&lt;h3&gt;Versionsinformationen des Gerätes&lt;/h3&gt;</translation>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1507" />
+      <source>Device Version Information</source>
+      <translation>Versionsinformationen des Gerätes</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1512" />
+      <source>No version information available.</source>
+      <translation>Keine Versionsinformationen verfügbar.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1531" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1527" />
+      <source>unknown</source>
+      <translation>unbekannt</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1536" />
+      <source> ({0})</source>
+      <translation> ({0})</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1552" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1543" />
+      <source>Device Implementation Information</source>
+      <translation>Informationen zur Implementierung</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1544" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1540" />
-      <source>Device Version Information</source>
-      <translation>Versionsinformationen des Gerätes</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1545" />
-      <source>No version information available.</source>
-      <translation>Keine Versionsinformationen verfügbar.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1564" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1560" />
-      <source>unknown</source>
-      <translation>unbekannt</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1569" />
-      <source> ({0})</source>
-      <translation> ({0})</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1585" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1576" />
-      <source>Device Implementation Information</source>
-      <translation>Informationen zur Implementierung</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1577" />
       <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}{2}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;h3&gt;Informationen zur Implementierung&lt;/h3&gt;&lt;p&gt;Dieses Gerät enthält &lt;b&gt;{0} {1}{2}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1553" />
       <source>No device implementation information available.</source>
       <translation>Keine Informationen zur Implementierung verfügbar.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1593" />
       <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Die Zeit des angeschlossenen Gerätes wurde mit der lokalen Zeit synchronisiert.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1615" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h3&gt;Datum und Zeit des Gerätes&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Datum&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Zeit&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1623" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation>&lt;h3&gt;Datum und Zeit des Gerätes&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1639" />
       <source>Device Date and Time</source>
       <translation>Datum und Zeit des Gerätes</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
       <source>Local Date and Time</source>
       <translation>Lokales Datum und Zeit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
       <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h3&gt;Lokales Datum und Zeit&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Datum&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Zeit&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1693" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
       <source>Date and Time</source>
       <translation>Datum und Zeit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Lokales Datum und Zeit&lt;/th&gt;&lt;th&gt;Datum und Zeit des Gerätes&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Datum&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Zeit&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1694" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Lokales Datum und Zeit&lt;/th&gt;&lt;th&gt;Datum und Zeit des Gerätes&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1718" />
       <source>Error handling device</source>
       <translation>Fehler bei Gerätekommunikation</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Es trat ein Fehler bei der Kommunikation mit dem Gerät auf.&lt;/p&gt;&lt;p&gt;Methode: {0}&lt;/p&gt;&lt;p&gt;Nachricht: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1761" />
       <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation>Der MicroPython Crosscompiler &lt;b&gt;mpy-cross&lt;/b&gt; kann nicht gefunden werden. Stelle sicher, dass er im Suchpfad liegt oder konfiguriere ihn auf der MicroPython Konfigurationsseite.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1787" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation>Python-Dateien (*.py);;Alle Dateien (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
       <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
       <translation>Die Python Datei &lt;b&gt;{0}&lt;/b&gt; existiert nicht. Abbruch...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1806" />
       <source>'mpy-cross' Output</source>
       <translation>'mpy-cross' Ausgabe</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation>Der aktuelle Editortext enthält keine Pythondatei. Abbruch...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
       <source>Add Unknown Devices</source>
       <translation>Unbekannte Geräte hinzufügen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
       <source>Select the devices to be added:</source>
       <translation>Wähle die hinzuzufügenden unbekannten Geräte:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
       <source>Plus any modules on the filesystem.</source>
       <translation>Zusätzlich alle Module im Dateisystem.</translation>
     </message>
@@ -50064,16 +50051,6 @@
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to open a file of the connected device</source>
-      <translation>Drücken, um eine Datei des angeschlossenen Gerätes zu öffnen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to save the current editor to the connected device</source>
-      <translation>Drücken, um den aktuellen Editor auf das angeschlossene Grät zu speichern</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
       <source>Press to run the current script on the selected device</source>
       <translation>Drücken, um das aktuelle Skript auf dem ausgewählten Gerät auszuführen</translation>
     </message>
@@ -50096,194 +50073,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="86" />
       <source>BBC micro:bit</source>
       <translation>BBC micro:bit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="87" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="89" />
       <source>Calliope mini</source>
       <translation>Calliope mini</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="188" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="190" />
       <source>BBC micro:bit/Calliope Functions</source>
       <translation>BBC micro:bit/Calliope Funktionen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="401" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="389" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="372" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="191" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="403" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="391" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="374" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="193" />
       <source>Show MicroPython Versions</source>
       <translation>Zeige MicroPython Versionen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="195" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="197" />
       <source>Flash MicroPython</source>
       <translation>MicroPython flashen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="198" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="200" />
       <source>Flash Firmware</source>
       <translation>Firmware flashen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="202" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="491" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="204" />
       <source>Save Script</source>
       <translation>Skript speichern</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="205" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="207" />
       <source>Save the current script to the selected device</source>
       <translation>Speichert das aktuelle Skript auf das angeschlossene Gerät</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="210" />
       <source>Save Script as 'main.py'</source>
       <translation>Skript als 'main.py' speichern</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="211" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="213" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation>Speichert das aktuelle Skript als 'main.py' auf das angeschlossene Gerät</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="217" />
       <source>Reset {0}</source>
       <translation>{0} zurücksetzen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="355" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="346" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="332" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="315" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="302" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="282" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="357" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="334" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="317" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="304" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="284" />
       <source>Flash MicroPython/Firmware</source>
       <translation>MicroPython/Firmware flashen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="285" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed and plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;See the &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Der BBC micro:bit ist nicht bereit zum Flashen der DAPLink Firmware. Folge diesen Anweisungen.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;ziehe das USB Kabel und alle Batterien heraus&lt;/li&gt;&lt;li&gt;halte den RESET Knopf gedrückt und stecke das USB Kabel wieder ein&lt;/li&gt;&lt;li&gt;ein Laufwerk mit Namen MAINTENANCE sollte verfügbar sein&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Siehe auch die &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit Web Seite&lt;/a&gt;für Details.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="303" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="305" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MICROBIT is available.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Der BBC micro:bit ist nicht bereit zum Flashen der MicroPython Firmware. Stelle sicher, dass ein Laufwerk mit Namen MICROBIT verfügbar ist.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="316" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="318" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed an plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;</source>
       <translation>&lt;p&gt;Der "Calliope mini" ist nicht bereit zum Flashen der DAPLink Firmware. Folge diesen Anweisungen.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;ziehe das USB Kabel und alle Batterien heraus&lt;/li&gt;&lt;li&gt;halte den RESET Knopf gedrückt und stecke das USB Kabel wieder ein&lt;/li&gt;&lt;li&gt;ein Laufwerk mit Namen MAINTENANCE sollte verfügbar sein&lt;/li&gt;&lt;/ul&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="333" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="335" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MINI is available.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Der "Calliope mini" ist nicht bereit zum Flashen der MicroPython Firmware. Stelle sicher, dass ein Laufwerk mit Namen MINI verfügbar ist.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="350" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation>MicroPython/Firmware Dateien (*.hex *.bin);;Alle Dateien (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="356" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="358" />
       <source>There are multiple devices ready for flashing. Please make sure, that only one device is prepared.</source>
       <translation>Es sind mehrere Geräte zum Flashen bereit. Bitte stelle sicher, dass nur eines vorbereitet wird.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="373" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="375" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation>Die Firmware des verbundenen Gerätes kann nicht ermittelt werden oder das Board enthält kein MicroPython oder CircuitPython. Abbruch...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="390" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="392" />
       <source>&lt;p&gt;The BBC micro:bit generation cannot be determined. Aborting...&lt;/p&gt;</source>
       <translation>&lt;p&gt;Die BBC micro:bit Generation kann nicht ermittelt werden. Abbruch...&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="402" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="404" />
       <source>&lt;p&gt;The firmware URL for the device type &lt;b&gt;{0}&lt;/b&gt; is not known. Aborting...&lt;/p&gt;</source>
       <translation>&lt;p&gt;Die URL für die Firmware des Gerätetyps &lt;b&gt;{0}&lt;/b&gt; ist nicht bekannt. Abbruch...&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="429" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="431" />
       <source>unknown</source>
       <translation>unbekannt</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="447" />
       <source>Firmware</source>
       <translation>Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="450" />
       <source>&lt;h4&gt;{0} Version Information&lt;br/&gt;(BBC micro:bit v{1})&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h4&gt;{0} Versionsinformationen&lt;br/&gt;(BBC micro:bit v{1})&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installiert:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Verfügbar:&lt;/td&gt;&lt;td&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="459" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;Update verfügbar!&lt;/b&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="461" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="463" />
       <source>{0} Version</source>
       <translation>{0} Version</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="523" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="487" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="525" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
       <source>Save Script as '{0}'</source>
       <translation>Skript als '{0}' speichern</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="498" />
       <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/Devices/MicrobitDevices.py" line="507" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="509" />
       <source>The script is empty. Aborting.</source>
       <translation>Das Skript ist leer. Abbruch.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="518" />
       <source>Enter a file name on the device:</source>
       <translation>Gib einen Dateinamen auf dem Gerät ein:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="539" />
       <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/Devices/MicrobitDevices.py" line="597" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="599" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation>MicroPython Firmware für  BBC micro:bit V1</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="629" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="616" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="601" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="631" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="618" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="603" />
       <source>DAPLink Firmware</source>
       <translation>DAPLink Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="608" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="610" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation>MicroPython Firmware für  BBC micro:bit V2</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="612" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="614" />
       <source>CircuitPython Firmware for BBC micro:bit V2</source>
       <translation>CircuitPython Firmware für  BBC micro:bit V2</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="625" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="627" />
       <source>MicroPython Firmware</source>
       <translation>MicroPython Firmware</translation>
     </message>
@@ -62033,131 +62010,131 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="82" />
       <source>PyBoard</source>
       <translation>PyBoard</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="199" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="197" />
       <source>Workspace Directory</source>
       <translation>Arbeitsverzeichnis</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="200" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="198" />
       <source>Python files for PyBoard can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation>Python Dateien für PyBoard können an Ort und Stelle bearbeitet werden, wenn das Geräteverzeichnis lokal verfügbar ist. Ein solches Verzeichnis konnte nicht gefunden werden. Direkte Bearbeitung ist nicht verfügbar.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="232" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="230" />
       <source>PyBoard Functions</source>
       <translation>PyBoard Funktionen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="438" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="235" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="436" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="233" />
       <source>Show MicroPython Versions</source>
       <translation>Zeige MicroPython Versionen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="239" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="237" />
       <source>Activate Bootloader</source>
       <translation>Bootloader aktivieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="242" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="240" />
       <source>List DFU-capable Devices</source>
       <translation>Liste der DFU fähigen Geräte</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="421" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="244" />
       <source>Flash MicroPython Firmware</source>
       <translation>MicroPython Firmware flashen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="249" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="247" />
       <source>MicroPython Flash Instructions</source>
       <translation>MicroPython Flashanweisungen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="306" />
       <source>dfu-util not available</source>
       <translation>dfu-util ist nicht verfügbar</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="309" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="307" />
       <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation>Das dfu-util Firmware Flashingprogramm &lt;b&gt;dfu-util&lt;/b&gt; kann nicht gefunden werden oder ist nicht ausführbar. Stelle sicher, dass es sich im Suchpfad befindet, oder konfiguriere es auf der MicroPython Konfigurationsseite.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="329" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="327" />
       <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
       <translation>&lt;h3&gt;DFU Modus aktivieren&lt;/h3&gt;&lt;p&gt;1. Trenne alles von deinem Board&lt;/p&gt;&lt;p&gt;2. Trenne dein Board&lt;/p&gt;&lt;p&gt;3. Verbinde den DFU/BOOT0 pin mit dem 3,3V Pin&lt;/p&gt;&lt;p&gt;4. Verbinde dein Board wieder&lt;/p&gt;&lt;hr /&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="339" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="337" />
       <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;Warnung:&lt;/b&gt; Stelle sicher, dass alle anderen DFU fähigen Geräte mit Ausnahme deines PyBoard getrennt sind.&lt;hr /&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="343" />
       <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation>&lt;p&gt;Drücke &lt;b&gt;OK&lt;/b&gt; zum Fortfahren...&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="346" />
       <source>Enable DFU mode</source>
       <translation>DFU Modus aktivieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="359" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="357" />
       <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation>&lt;h3&gt;DFU Modus deaktivieren&lt;/h3&gt;&lt;p&gt;1. Trenne dein BOard&lt;/p&gt;&lt;p&gt;2. Entferne die DFU Brücke&lt;/p&gt;&lt;p&gt;3. Verbinde dein Board wieder&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Drücke &lt;b&gt;OK&lt;/b&gt; zum Fortfahren...&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="365" />
       <source>Disable DFU mode</source>
       <translation>DFU Modus deaktivieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="420" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="418" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>'dfu-util' Output</source>
       <translation>'dfu-util' Ausgabe</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>List DFU capable Devices</source>
       <translation>Liste der DFU fähigen Geräte</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="410" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation>MicroPython Firmwaredateien (*.dfu);;Alle Dateien (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="439" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="437" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation>Die Firmware des verbundenen Gerätes kann nicht ermittelt werden oder das Board enthält kein MicroPython. Abbruch...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="466" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="464" />
       <source>unknown</source>
       <translation>unbekannt</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="472" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="470" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h4&gt;MicroPython Versionsinformationen&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installiert:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Verfügbar:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="480" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="478" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;Update verfügbar!&lt;/b&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="484" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="482" />
       <source>MicroPython Version</source>
       <translation>MicroPython Version</translation>
     </message>
@@ -67323,78 +67300,78 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="70" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="71" />
       <source>RP2040</source>
       <translation>RP2040</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="126" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="127" />
       <source>RP2040 Functions</source>
       <translation>RP2040 Funktionen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="198" />
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="129" />
-      <source>Show MicroPython Versions</source>
-      <translation>Zeige MicroPython Versionen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="133" />
-      <source>Activate Bootloader</source>
-      <translation>Bootloader aktivieren</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="136" />
-      <source>Flash MicroPython Firmware</source>
-      <translation>MicroPython Firmware flashen</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/RP2040Devices.py" line="199" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="130" />
+      <source>Show MicroPython Versions</source>
+      <translation>Zeige MicroPython Versionen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="134" />
+      <source>Activate Bootloader</source>
+      <translation>Bootloader aktivieren</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="137" />
+      <source>Flash MicroPython Firmware</source>
+      <translation>MicroPython Firmware flashen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="200" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation>Die Firmware des verbundenen Gerätes kann nicht ermittelt werden oder das Board enthält kein MicroPython. Abbruch...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="231" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="232" />
       <source>unknown</source>
       <translation>unbekannt</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="238" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h4&gt;MicroPython Versionsinformationen&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installiert:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Verfügbar:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="247" />
       <source>({0})</source>
       <translation>({0})</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="255" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="256" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;Update verfügbar!&lt;/b&gt;&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="259" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="260" />
       <source>MicroPython Version</source>
       <translation>MicroPython Version</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="282" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="283" />
       <source>MicroPython Firmware</source>
       <translation>MicroPython Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="286" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="287" />
       <source>Pimoroni Pico Firmware</source>
       <translation>Pimoroni Pico Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="289" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="290" />
       <source>CircuitPython Firmware</source>
       <translation>CircuitPython Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="293" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="294" />
       <source>CircuitPython Libraries</source>
       <translation>CircuitPython Bibliotheken</translation>
     </message>
@@ -81436,74 +81413,74 @@
   <context>
     <name>TeensyDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="69" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="70" />
       <source>Teensy</source>
       <translation>Teensy</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="143" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="144" />
       <source>Teensy Functions</source>
       <translation>Teensy Funktionen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="184" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="146" />
-      <source>Show MicroPython Versions</source>
-      <translation>Zeige MicroPython Versionen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="150" />
-      <source>MicroPython Flash Instructions</source>
-      <translation>MicroPython Flashanweisungen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="240" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="153" />
-      <source>Flash MicroPython Firmware</source>
-      <translation>MicroPython Firmware flashen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="156" />
-      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
-      <translation>Startet die 'Teensy Loader' Anwendung zum Flashen des Teensy Boards.</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="185" />
-      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
-      <translation>Die Firmware des verbundenen Gerätes kann nicht ermittelt werden oder das Board enthält kein MicroPython. Abbruch...</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="212" />
-      <source>unknown</source>
-      <translation>unbekannt</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="218" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation>&lt;h4&gt;MicroPython Versionsinformationen&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installiert:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Verfügbar:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="226" />
-      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
-      <translation>&lt;p&gt;&lt;b&gt;Update verfügbar!&lt;/b&gt;&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="230" />
-      <source>MicroPython Version</source>
-      <translation>MicroPython Version</translation>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="147" />
+      <source>Show MicroPython Versions</source>
+      <translation>Zeige MicroPython Versionen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="151" />
+      <source>MicroPython Flash Instructions</source>
+      <translation>MicroPython Flashanweisungen</translation>
     </message>
     <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="241" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="154" />
+      <source>Flash MicroPython Firmware</source>
+      <translation>MicroPython Firmware flashen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="157" />
+      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
+      <translation>Startet die 'Teensy Loader' Anwendung zum Flashen des Teensy Boards.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="186" />
+      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
+      <translation>Die Firmware des verbundenen Gerätes kann nicht ermittelt werden oder das Board enthält kein MicroPython. Abbruch...</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="213" />
+      <source>unknown</source>
+      <translation>unbekannt</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="219" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation>&lt;h4&gt;MicroPython Versionsinformationen&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installiert:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Verfügbar:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="227" />
+      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
+      <translation>&lt;p&gt;&lt;b&gt;Update verfügbar!&lt;/b&gt;&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="231" />
+      <source>MicroPython Version</source>
+      <translation>MicroPython Version</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="242" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 are flashed using the 'Teensy Loader' application. Make sure you downloaded the MicroPython or CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Teensy 4.0 und Teensy 4.1 werden mit der 'Teensy Loader' Anwendung geflasht. Stelle sicher, dass die MicroPython .hex Datei geladen ist.&lt;/p&gt;&lt;p&gt;Siehe &lt;a href="{0}"&gt;die PJRC Teensy Webseite&lt;/a&gt; für Details.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="260" />
-      <source>Start 'Teensy Loader'</source>
-      <translation>'Teensy Loader' starten</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="261" />
+      <source>Start 'Teensy Loader'</source>
+      <translation>'Teensy Loader' starten</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="262" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Die 'Teensy Loader' Anwendung &lt;b&gt;teensy&lt;/b&gt; konnte nicht gestartet werden. Stelle sicher, dass sie sich im Suchpfad befindet oder starte sie manuell.&lt;/p&gt;</translation>
     </message>
--- a/src/eric7/i18n/eric7_empty.ts	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/i18n/eric7_empty.ts	Tue Feb 14 18:10:30 2023 +0100
@@ -1716,50 +1716,55 @@
   <context>
     <name>BaseDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="92" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="95" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="93" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="96" />
       <source>&lt;p&gt;The device data is not available. Try to connect to the device again. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="125" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="140" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="135" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="150" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="154" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="169" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="173" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="188" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="192" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="207" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="237" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="252" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="238" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="253" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="399" />
+      <source>Detected an error without indications.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>BlackConfigurationDialog</name>
@@ -3731,121 +3736,121 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="89" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="87" />
       <source>CircuitPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="213" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="214" />
       <source>Python files for CircuitPython can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="244" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="250" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="248" />
       <source>CircuitPython Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="253" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="251" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="262" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="260" />
       <source>CircuitPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="344" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="275" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="266" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="342" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="273" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="264" />
       <source>Flash CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="269" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="267" />
       <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="442" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="304" />
-      <source>Install Library Files</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="440" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="302" />
+      <source>Install Library Files</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="306" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="314" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="312" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="343" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 do not support the UF2 bootloader. Please use the 'Teensy Loader' application to flash CircuitPython. Make sure you downloaded the CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="365" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="363" />
       <source>Start 'Teensy Loader'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="366" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="364" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="395" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="393" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="414" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="412" />
       <source>&lt;h4&gt;CircuitPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="422" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="420" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="426" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="424" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="446" />
       <source>The device volume "&lt;b&gt;{0}&lt;/b&gt;" is not available. Ensure it is mounted properly and try again.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="474" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="506" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="504" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="510" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="508" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -19766,66 +19771,6 @@
   <context>
     <name>EspBackupRestoreFirmwareDialog</name>
     <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware Size:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the firmware size</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to auto detect. size.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.py" line="107" />
       <source>Firmware Files (*.img);;All Files (*)</source>
       <translation type="unfinished" />
@@ -19840,143 +19785,203 @@
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware Size:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the firmware size</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to auto detect. size.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="72" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="73" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="128" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="129" />
       <source>ESP32 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="405" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="131" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="132" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="222" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="136" />
+      <source>Erase Flash</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="259" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="139" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="296" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="143" />
+      <source>Flash Additional Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="332" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="147" />
+      <source>Backup Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="150" />
+      <source>Restore Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="154" />
+      <source>Show Chip ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="157" />
+      <source>Show Flash ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="160" />
+      <source>Show MAC Address</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="164" />
+      <source>Reset Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="167" />
+      <source>Install 'esptool.py'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="209" />
+      <source>Shall the flash of the selected device really be erased?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="221" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="207" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="135" />
-      <source>Erase Flash</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="138" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="142" />
-      <source>Flash Additional Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="146" />
-      <source>Backup Firmware</source>
+      <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="384" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="149" />
-      <source>Restore Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="153" />
-      <source>Show Chip ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="156" />
-      <source>Show Flash ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="159" />
-      <source>Show MAC Address</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="163" />
-      <source>Reset Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="166" />
-      <source>Install 'esptool.py'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
-      <source>Shall the flash of the selected device really be erased?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="220" />
-      <source>'esptool erase_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="383" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="294" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="257" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
       <source>'esptool read_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="407" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="434" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="435" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="446" />
       <source>&lt;h4&gt;{0} Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="453" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="454" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="458" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -19984,80 +19989,80 @@
   <context>
     <name>EspFirmwareSelectionDialog</name>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Address:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Enter the flash addres in the hexadecimal form</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware is CircuitPython</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.py" line="68" />
       <source>Firmware Files (*.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Address:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the flash addres in the hexadecimal form</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware is CircuitPython</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -21747,12 +21752,12 @@
   <context>
     <name>GenericMicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="196" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="194" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="197" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="195" />
       <source>Python files for this generic board can be edited in place, if the device volume is locally available. A volume named '{0}' was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
@@ -48696,14 +48701,6 @@
     </message>
   </context>
   <context>
-    <name>MicroPythonCommandsInterface</name>
-    <message>
-      <location filename="../MicroPython/MicroPythonCommandsInterface.py" line="322" />
-      <source>Detected an error without indications.</source>
-      <translation type="unfinished" />
-    </message>
-  </context>
-  <context>
     <name>MicroPythonDevice</name>
     <message>
       <location filename="../MicroPython/Devices/__init__.py" line="260" />
@@ -48740,35 +48737,35 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="386" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="306" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="384" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="304" />
       <source>{1}Adding &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="450" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="355" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="446" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="353" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a directory and destination &lt;b&gt;{1}&lt;/b&gt; is a file. Ignoring it.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="459" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="364" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="455" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="362" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a file and destination &lt;b&gt;{1}&lt;/b&gt; is a directory. Ignoring it.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="373" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="371" />
       <source>Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="414" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="412" />
       <source>{1}Removing &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="468" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="464" />
       <source>{1}Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
@@ -48872,171 +48869,171 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="977" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="806" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="980" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="809" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="145" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="124" />
+      <source>Change Directory</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1000" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="845" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="833" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
-      <source>Change Directory</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="997" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="842" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="830" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="151" />
+      <source>Create Directory</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1055" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="883" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="872" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
-      <source>Create Directory</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1052" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="880" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="869" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="158" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="133" />
       <source>Delete Directory Tree</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1079" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="918" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="907" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1082" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="921" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="910" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="159" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="134" />
+      <source>Delete File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="162" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="137" />
-      <source>Delete File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="165" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="140" />
       <source>Show Hidden Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1024" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1027" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="152" />
       <source>Delete Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="172" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="169" />
       <source>Show Filesystem Info</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="219" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="216" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="220" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="217" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="486" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="483" />
       <source>Put File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="554" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="487" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="724" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="551" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="484" />
       <source>Enter a new name for the file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="500" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="497" />
       <source>Copy File to Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="735" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="501" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="742" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="498" />
       <source>The given file exists already (Enter file name only).</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="553" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="550" />
       <source>Get File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="567" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="564" />
       <source>Copy File from Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="568" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="565" />
       <source>The given file exists already.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="734" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="722" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="741" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
       <source>Save File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="807" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="810" />
       <source>Select Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="998" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="831" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1001" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="834" />
       <source>Enter directory name:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="843" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="846" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1053" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="870" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1056" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="873" />
       <source>Do you really want to delete this directory tree?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="881" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="884" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1080" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="908" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1083" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="911" />
       <source>Do you really want to delete this file?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="919" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="922" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="978" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="981" />
       <source>Enter the directory path on the device:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1025" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1028" />
       <source>Do you really want to delete this directory?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1113" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1116" />
       <source>&lt;h3&gt;Filesystem Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1115" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1118" />
       <source>&lt;h4&gt;{0}&lt;/h4&lt;table&gt;&lt;tr&gt;&lt;td&gt;Total Size: &lt;/td&gt;&lt;td align='right'&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Used Size: &lt;/td&gt;&lt;td align='right'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Free Size: &lt;/td&gt;&lt;td align='right'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1128" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1131" />
       <source>Filesystem Information</source>
       <translation type="unfinished" />
     </message>
@@ -49381,35 +49378,35 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="231" />
       <source>MicroPython Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="288" />
       <source>&lt;h3&gt;The QtSerialPort package is not available.&lt;br/&gt;MicroPython support is deactivated.&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="329" />
       <source>%n supported device(s) detected.</source>
       <translation type="unfinished">
         <numerusform />
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="343" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="363" />
       <source>No supported devices detected.</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="367" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation type="unfinished">
@@ -49417,70 +49414,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="374" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="437" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="408" />
       <source>Unknown MicroPython Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="409" />
       <source>&lt;p&gt;Detected these unknown serial devices&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please report them together with the board name and a short description to &lt;a href="mailto:{1}"&gt; the eric bug reporting address&lt;/a&gt; if it is a MicroPython board.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="421" />
       <source>{0} (0x{1:04x}/0x{2:04x})</source>
       <comment>description, VId, PId</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="438" />
       <source>Would you like to add them to the list of manually configured devices?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="564" />
       <source>Clear</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="569" />
       <source>Copy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="575" />
       <source>Paste</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="582" />
       <source>Select All</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="608" />
       <source>Press to disconnect the current device</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="613" />
       <source>Press to connect the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="640" />
       <source>No device attached</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="641" />
       <source>Please ensure the device is plugged into your computer and selected.
 
 It must have a version of MicroPython (or CircuitPython) flashed onto it before anything will work.
@@ -49489,328 +49486,318 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="670" />
       <source>Start REPL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="671" />
       <source>&lt;p&gt;The REPL cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1180" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1169" />
       <source>Serial Device Connect</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1170" />
       <source>&lt;p&gt;The device at serial port &lt;b&gt;{0}&lt;/b&gt; does not respond. It may not have a MicroPython firmware flashed.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1186" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1181" />
       <source>&lt;p&gt;Cannot connect to device at serial port &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1237" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1228" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1219" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1239" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1221" />
       <source>Run Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1222" />
       <source>There is no editor open. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1231" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1240" />
       <source>&lt;p&gt;Cannot run script.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
-      <source>Open Python File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
-      <source>Python3 Files (*.py);;All Files (*)</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1276" />
+      <source>Start Chart</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1277" />
+      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1292" />
+      <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
-      <source>Start Chart</source>
+      <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1310" />
-      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
-      <source>µPy Chart</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
-      <source>Unsaved Chart Data</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1343" />
       <source>The chart contains unsaved data.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1358" />
       <source>Start File Manager</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1359" />
       <source>&lt;p&gt;The File Manager cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1378" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1414" />
       <source>Downloads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1429" />
       <source>Show Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1432" />
       <source>Show Implementation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1440" />
       <source>Synchronize Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1443" />
       <source>Show Device Time</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <source>Show Local Time</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <source>Show Time</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1452" />
+      <source>Show Builtin Modules</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1458" />
+      <source>Compile Python File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1840" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1831" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <source>Compile Current Editor</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1471" />
+      <source>Download Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
-      <source>Show Local Time</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
-      <source>Show Time</source>
+      <source>Show Documentation</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1482" />
+      <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1485" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1849" />
+      <source>Manage Unknown Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1488" />
+      <source>Ignored Serial Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1491" />
-      <source>Compile Python File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1873" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1864" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1495" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1504" />
-      <source>Download Firmware</source>
+      <source>Configure</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1500" />
+      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1511" />
-      <source>Show Documentation</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
-      <source>Flash UF2 Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
-      <source>Manage Unknown Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
-      <source>Ignored Serial Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
-      <source>Configure</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
-      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1507" />
+      <source>Device Version Information</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1512" />
+      <source>No version information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1531" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1527" />
+      <source>unknown</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1536" />
+      <source> ({0})</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1552" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1543" />
+      <source>Device Implementation Information</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1544" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1540" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1545" />
-      <source>No version information available.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1564" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1560" />
-      <source>unknown</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1569" />
-      <source> ({0})</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1585" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1576" />
-      <source>Device Implementation Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1577" />
       <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}{2}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1553" />
       <source>No device implementation information available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1593" />
       <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1615" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1623" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1639" />
       <source>Device Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
       <source>Local Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
       <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1693" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
       <source>Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1694" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1718" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1761" />
       <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1787" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
       <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1806" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -49821,16 +49808,6 @@
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to open a file of the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to save the current editor to the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
       <source>Press to run the current script on the selected device</source>
       <translation type="unfinished" />
     </message>
@@ -49853,194 +49830,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="86" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="87" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="89" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="188" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="190" />
       <source>BBC micro:bit/Calliope Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="401" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="389" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="372" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="191" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="403" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="391" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="374" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="193" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="195" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="197" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="198" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="200" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="202" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="491" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="204" />
       <source>Save Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="205" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="207" />
       <source>Save the current script to the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="210" />
       <source>Save Script as 'main.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="211" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="213" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="217" />
       <source>Reset {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="355" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="346" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="332" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="315" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="302" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="282" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="357" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="334" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="317" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="304" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="284" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="285" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed and plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;See the &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="303" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="305" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MICROBIT is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="316" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="318" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed an plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="333" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="335" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MINI is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="350" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="356" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="358" />
       <source>There are multiple devices ready for flashing. Please make sure, that only one device is prepared.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="373" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="375" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="390" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="392" />
       <source>&lt;p&gt;The BBC micro:bit generation cannot be determined. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="402" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="404" />
       <source>&lt;p&gt;The firmware URL for the device type &lt;b&gt;{0}&lt;/b&gt; is not known. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="429" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="431" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="447" />
       <source>Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="450" />
       <source>&lt;h4&gt;{0} Version Information&lt;br/&gt;(BBC micro:bit v{1})&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="459" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="461" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="463" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="523" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="487" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="525" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
       <source>Save Script as '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="498" />
       <source>The current editor does not contain a Python script. Write it anyway?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="507" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="509" />
       <source>The script is empty. Aborting.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="518" />
       <source>Enter a file name on the device:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="539" />
       <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" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="597" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="599" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="629" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="616" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="601" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="631" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="618" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="603" />
       <source>DAPLink Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="608" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="610" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="612" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="614" />
       <source>CircuitPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="625" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="627" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -61761,131 +61738,131 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="82" />
       <source>PyBoard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="199" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="197" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="200" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="198" />
       <source>Python files for PyBoard can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="232" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="230" />
       <source>PyBoard Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="438" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="235" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="436" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="233" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="239" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="237" />
       <source>Activate Bootloader</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="242" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="240" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="421" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="244" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="249" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="247" />
       <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="306" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="309" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="307" />
       <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="329" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="327" />
       <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="339" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="337" />
       <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="343" />
       <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="346" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="359" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="357" />
       <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="365" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="420" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="418" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="410" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="439" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="437" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="466" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="464" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="472" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="470" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="480" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="478" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="484" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="482" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -66918,78 +66895,78 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="70" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="71" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="126" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="127" />
       <source>RP2040 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="198" />
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="129" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="133" />
-      <source>Activate Bootloader</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="136" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/RP2040Devices.py" line="199" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="130" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="134" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="137" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="200" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="231" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="232" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="238" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="247" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="255" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="256" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="259" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="260" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="282" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="283" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="286" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="287" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="289" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="290" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="293" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="294" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -80884,74 +80861,74 @@
   <context>
     <name>TeensyDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="69" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="70" />
       <source>Teensy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="143" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="144" />
       <source>Teensy Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="184" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="146" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="150" />
-      <source>MicroPython Flash Instructions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="240" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="153" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="156" />
-      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="185" />
-      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="212" />
-      <source>unknown</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="218" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="226" />
-      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="230" />
-      <source>MicroPython Version</source>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="147" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="151" />
+      <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="241" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="154" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="157" />
+      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="186" />
+      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="213" />
+      <source>unknown</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="219" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="227" />
+      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="231" />
+      <source>MicroPython Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="242" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 are flashed using the 'Teensy Loader' application. Make sure you downloaded the MicroPython or CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="260" />
-      <source>Start 'Teensy Loader'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="261" />
+      <source>Start 'Teensy Loader'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="262" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_en.ts	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/i18n/eric7_en.ts	Tue Feb 14 18:10:30 2023 +0100
@@ -1716,50 +1716,55 @@
   <context>
     <name>BaseDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="92" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="95" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="93" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="96" />
       <source>&lt;p&gt;The device data is not available. Try to connect to the device again. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="125" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="140" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="135" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="150" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="154" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="169" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="173" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="188" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="192" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="207" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="237" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="252" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="238" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="253" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="399" />
+      <source>Detected an error without indications.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>BlackConfigurationDialog</name>
@@ -3731,121 +3736,121 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="89" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="87" />
       <source>CircuitPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="213" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="214" />
       <source>Python files for CircuitPython can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="244" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="250" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="248" />
       <source>CircuitPython Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="253" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="251" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="262" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="260" />
       <source>CircuitPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="344" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="275" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="266" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="342" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="273" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="264" />
       <source>Flash CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="269" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="267" />
       <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="442" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="304" />
-      <source>Install Library Files</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="440" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="302" />
+      <source>Install Library Files</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="306" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="314" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="312" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="343" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 do not support the UF2 bootloader. Please use the 'Teensy Loader' application to flash CircuitPython. Make sure you downloaded the CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="365" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="363" />
       <source>Start 'Teensy Loader'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="366" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="364" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="395" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="393" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="414" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="412" />
       <source>&lt;h4&gt;CircuitPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="422" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="420" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="426" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="424" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="446" />
       <source>The device volume "&lt;b&gt;{0}&lt;/b&gt;" is not available. Ensure it is mounted properly and try again.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="474" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="506" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="504" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="510" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="508" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -19781,66 +19786,6 @@
   <context>
     <name>EspBackupRestoreFirmwareDialog</name>
     <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware Size:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the firmware size</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to auto detect. size.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.py" line="107" />
       <source>Firmware Files (*.img);;All Files (*)</source>
       <translation type="unfinished" />
@@ -19855,143 +19800,203 @@
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware Size:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the firmware size</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to auto detect. size.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="72" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="73" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="128" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="129" />
       <source>ESP32 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="405" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="131" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="132" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="222" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="136" />
+      <source>Erase Flash</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="259" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="139" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="296" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="143" />
+      <source>Flash Additional Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="332" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="147" />
+      <source>Backup Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="150" />
+      <source>Restore Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="154" />
+      <source>Show Chip ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="157" />
+      <source>Show Flash ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="160" />
+      <source>Show MAC Address</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="164" />
+      <source>Reset Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="167" />
+      <source>Install 'esptool.py'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="209" />
+      <source>Shall the flash of the selected device really be erased?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="221" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="207" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="135" />
-      <source>Erase Flash</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="138" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="142" />
-      <source>Flash Additional Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="146" />
-      <source>Backup Firmware</source>
+      <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="384" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="149" />
-      <source>Restore Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="153" />
-      <source>Show Chip ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="156" />
-      <source>Show Flash ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="159" />
-      <source>Show MAC Address</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="163" />
-      <source>Reset Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="166" />
-      <source>Install 'esptool.py'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
-      <source>Shall the flash of the selected device really be erased?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="220" />
-      <source>'esptool erase_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="383" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="294" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="257" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
       <source>'esptool read_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="407" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="434" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="435" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="446" />
       <source>&lt;h4&gt;{0} Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="453" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="454" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="458" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -19999,80 +20004,80 @@
   <context>
     <name>EspFirmwareSelectionDialog</name>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Address:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Enter the flash addres in the hexadecimal form</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware is CircuitPython</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.py" line="68" />
       <source>Firmware Files (*.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Address:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the flash addres in the hexadecimal form</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware is CircuitPython</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -21765,12 +21770,12 @@
   <context>
     <name>GenericMicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="196" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="194" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="197" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="195" />
       <source>Python files for this generic board can be edited in place, if the device volume is locally available. A volume named '{0}' was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
@@ -48737,14 +48742,6 @@
     </message>
   </context>
   <context>
-    <name>MicroPythonCommandsInterface</name>
-    <message>
-      <location filename="../MicroPython/MicroPythonCommandsInterface.py" line="322" />
-      <source>Detected an error without indications.</source>
-      <translation type="unfinished" />
-    </message>
-  </context>
-  <context>
     <name>MicroPythonDevice</name>
     <message>
       <location filename="../MicroPython/Devices/__init__.py" line="260" />
@@ -48781,35 +48778,35 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="386" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="306" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="384" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="304" />
       <source>{1}Adding &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="450" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="355" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="446" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="353" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a directory and destination &lt;b&gt;{1}&lt;/b&gt; is a file. Ignoring it.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="459" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="364" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="455" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="362" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a file and destination &lt;b&gt;{1}&lt;/b&gt; is a directory. Ignoring it.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="373" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="371" />
       <source>Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="414" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="412" />
       <source>{1}Removing &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="468" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="464" />
       <source>{1}Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
@@ -48913,171 +48910,171 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="977" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="806" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="980" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="809" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="145" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="124" />
+      <source>Change Directory</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1000" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="845" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="833" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
-      <source>Change Directory</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="997" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="842" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="830" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="151" />
+      <source>Create Directory</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1055" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="883" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="872" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
-      <source>Create Directory</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1052" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="880" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="869" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="158" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="133" />
       <source>Delete Directory Tree</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1079" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="918" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="907" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1082" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="921" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="910" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="159" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="134" />
+      <source>Delete File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="162" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="137" />
-      <source>Delete File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="165" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="140" />
       <source>Show Hidden Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1024" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1027" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="152" />
       <source>Delete Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="172" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="169" />
       <source>Show Filesystem Info</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="219" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="216" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="220" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="217" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="486" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="483" />
       <source>Put File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="554" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="487" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="724" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="551" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="484" />
       <source>Enter a new name for the file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="500" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="497" />
       <source>Copy File to Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="735" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="501" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="742" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="498" />
       <source>The given file exists already (Enter file name only).</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="553" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="550" />
       <source>Get File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="567" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="564" />
       <source>Copy File from Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="568" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="565" />
       <source>The given file exists already.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="734" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="722" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="741" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
       <source>Save File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="807" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="810" />
       <source>Select Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="998" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="831" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1001" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="834" />
       <source>Enter directory name:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="843" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="846" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1053" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="870" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1056" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="873" />
       <source>Do you really want to delete this directory tree?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="881" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="884" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1080" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="908" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1083" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="911" />
       <source>Do you really want to delete this file?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="919" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="922" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="978" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="981" />
       <source>Enter the directory path on the device:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1025" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1028" />
       <source>Do you really want to delete this directory?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1113" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1116" />
       <source>&lt;h3&gt;Filesystem Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1115" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1118" />
       <source>&lt;h4&gt;{0}&lt;/h4&lt;table&gt;&lt;tr&gt;&lt;td&gt;Total Size: &lt;/td&gt;&lt;td align='right'&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Used Size: &lt;/td&gt;&lt;td align='right'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Free Size: &lt;/td&gt;&lt;td align='right'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1128" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1131" />
       <source>Filesystem Information</source>
       <translation type="unfinished" />
     </message>
@@ -49422,17 +49419,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="231" />
       <source>MicroPython Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="288" />
       <source>&lt;h3&gt;The QtSerialPort package is not available.&lt;br/&gt;MicroPython support is deactivated.&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="329" />
       <source>%n supported device(s) detected.</source>
       <translation>
         <numerusform>%n supported device detected.</numerusform>
@@ -49440,18 +49437,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="343" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="363" />
       <source>No supported devices detected.</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="367" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation>
@@ -49462,70 +49459,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="374" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="437" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="408" />
       <source>Unknown MicroPython Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="409" />
       <source>&lt;p&gt;Detected these unknown serial devices&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please report them together with the board name and a short description to &lt;a href="mailto:{1}"&gt; the eric bug reporting address&lt;/a&gt; if it is a MicroPython board.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="421" />
       <source>{0} (0x{1:04x}/0x{2:04x})</source>
       <comment>description, VId, PId</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="438" />
       <source>Would you like to add them to the list of manually configured devices?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="564" />
       <source>Clear</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="569" />
       <source>Copy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="575" />
       <source>Paste</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="582" />
       <source>Select All</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="608" />
       <source>Press to disconnect the current device</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="613" />
       <source>Press to connect the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="640" />
       <source>No device attached</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="641" />
       <source>Please ensure the device is plugged into your computer and selected.
 
 It must have a version of MicroPython (or CircuitPython) flashed onto it before anything will work.
@@ -49534,328 +49531,318 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="670" />
       <source>Start REPL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="671" />
       <source>&lt;p&gt;The REPL cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1180" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1169" />
       <source>Serial Device Connect</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1170" />
       <source>&lt;p&gt;The device at serial port &lt;b&gt;{0}&lt;/b&gt; does not respond. It may not have a MicroPython firmware flashed.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1186" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1181" />
       <source>&lt;p&gt;Cannot connect to device at serial port &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1237" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1228" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1219" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1239" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1221" />
       <source>Run Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1222" />
       <source>There is no editor open. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1231" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1240" />
       <source>&lt;p&gt;Cannot run script.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
-      <source>Open Python File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
-      <source>Python3 Files (*.py);;All Files (*)</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1276" />
+      <source>Start Chart</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1277" />
+      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1292" />
+      <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
-      <source>Start Chart</source>
+      <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1310" />
-      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
-      <source>µPy Chart</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
-      <source>Unsaved Chart Data</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1343" />
       <source>The chart contains unsaved data.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1358" />
       <source>Start File Manager</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1359" />
       <source>&lt;p&gt;The File Manager cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1378" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1414" />
       <source>Downloads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1429" />
       <source>Show Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1432" />
       <source>Show Implementation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1440" />
       <source>Synchronize Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1443" />
       <source>Show Device Time</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <source>Show Local Time</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <source>Show Time</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1452" />
+      <source>Show Builtin Modules</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1458" />
+      <source>Compile Python File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1840" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1831" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <source>Compile Current Editor</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1471" />
+      <source>Download Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
-      <source>Show Local Time</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
-      <source>Show Time</source>
+      <source>Show Documentation</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1482" />
+      <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1485" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1849" />
+      <source>Manage Unknown Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1488" />
+      <source>Ignored Serial Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1491" />
-      <source>Compile Python File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1873" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1864" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1495" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1504" />
-      <source>Download Firmware</source>
+      <source>Configure</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1500" />
+      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1511" />
-      <source>Show Documentation</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
-      <source>Flash UF2 Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
-      <source>Manage Unknown Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
-      <source>Ignored Serial Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
-      <source>Configure</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
-      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1507" />
+      <source>Device Version Information</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1512" />
+      <source>No version information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1531" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1527" />
+      <source>unknown</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1536" />
+      <source> ({0})</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1552" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1543" />
+      <source>Device Implementation Information</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1544" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1540" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1545" />
-      <source>No version information available.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1564" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1560" />
-      <source>unknown</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1569" />
-      <source> ({0})</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1585" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1576" />
-      <source>Device Implementation Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1577" />
       <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}{2}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1553" />
       <source>No device implementation information available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1593" />
       <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1615" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1623" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1639" />
       <source>Device Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
       <source>Local Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
       <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1693" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
       <source>Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1694" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1718" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1761" />
       <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1787" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
       <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1806" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -49866,16 +49853,6 @@
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to open a file of the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to save the current editor to the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
       <source>Press to run the current script on the selected device</source>
       <translation type="unfinished" />
     </message>
@@ -49898,194 +49875,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="86" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="87" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="89" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="188" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="190" />
       <source>BBC micro:bit/Calliope Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="401" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="389" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="372" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="191" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="403" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="391" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="374" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="193" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="195" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="197" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="198" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="200" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="202" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="491" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="204" />
       <source>Save Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="205" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="207" />
       <source>Save the current script to the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="210" />
       <source>Save Script as 'main.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="211" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="213" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="217" />
       <source>Reset {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="355" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="346" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="332" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="315" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="302" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="282" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="357" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="334" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="317" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="304" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="284" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="285" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed and plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;See the &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="303" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="305" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MICROBIT is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="316" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="318" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed an plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="333" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="335" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MINI is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="350" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="356" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="358" />
       <source>There are multiple devices ready for flashing. Please make sure, that only one device is prepared.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="373" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="375" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="390" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="392" />
       <source>&lt;p&gt;The BBC micro:bit generation cannot be determined. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="402" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="404" />
       <source>&lt;p&gt;The firmware URL for the device type &lt;b&gt;{0}&lt;/b&gt; is not known. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="429" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="431" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="447" />
       <source>Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="450" />
       <source>&lt;h4&gt;{0} Version Information&lt;br/&gt;(BBC micro:bit v{1})&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="459" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="461" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="463" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="523" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="487" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="525" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
       <source>Save Script as '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="498" />
       <source>The current editor does not contain a Python script. Write it anyway?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="507" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="509" />
       <source>The script is empty. Aborting.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="518" />
       <source>Enter a file name on the device:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="539" />
       <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" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="597" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="599" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="629" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="616" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="601" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="631" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="618" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="603" />
       <source>DAPLink Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="608" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="610" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="612" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="614" />
       <source>CircuitPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="625" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="627" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -61810,131 +61787,131 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="82" />
       <source>PyBoard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="199" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="197" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="200" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="198" />
       <source>Python files for PyBoard can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="232" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="230" />
       <source>PyBoard Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="438" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="235" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="436" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="233" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="239" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="237" />
       <source>Activate Bootloader</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="242" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="240" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="421" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="244" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="249" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="247" />
       <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="306" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="309" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="307" />
       <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="329" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="327" />
       <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="339" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="337" />
       <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="343" />
       <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="346" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="359" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="357" />
       <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="365" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="420" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="418" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="410" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="439" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="437" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="466" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="464" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="472" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="470" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="480" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="478" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="484" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="482" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -66968,78 +66945,78 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="70" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="71" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="126" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="127" />
       <source>RP2040 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="198" />
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="129" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="133" />
-      <source>Activate Bootloader</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="136" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/RP2040Devices.py" line="199" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="130" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="134" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="137" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="200" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="231" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="232" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="238" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="247" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="255" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="256" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="259" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="260" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="282" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="283" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="286" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="287" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="289" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="290" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="293" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="294" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -80935,74 +80912,74 @@
   <context>
     <name>TeensyDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="69" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="70" />
       <source>Teensy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="143" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="144" />
       <source>Teensy Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="184" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="146" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="150" />
-      <source>MicroPython Flash Instructions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="240" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="153" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="156" />
-      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="185" />
-      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="212" />
-      <source>unknown</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="218" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="226" />
-      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="230" />
-      <source>MicroPython Version</source>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="147" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="151" />
+      <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="241" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="154" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="157" />
+      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="186" />
+      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="213" />
+      <source>unknown</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="219" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="227" />
+      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="231" />
+      <source>MicroPython Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="242" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 are flashed using the 'Teensy Loader' application. Make sure you downloaded the MicroPython or CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="260" />
-      <source>Start 'Teensy Loader'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="261" />
+      <source>Start 'Teensy Loader'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="262" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_es.ts	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/i18n/eric7_es.ts	Tue Feb 14 18:10:30 2023 +0100
@@ -1730,50 +1730,55 @@
   <context>
     <name>BaseDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="92" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="95" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="93" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="96" />
       <source>&lt;p&gt;The device data is not available. Try to connect to the device again. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="125" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="140" />
       <source>Unsupported Device</source>
       <translation type="unfinished">Dispositivo no soportado</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="135" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="150" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished">REPL no soportado por este dispositivo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="154" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="169" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished">Plotter no soportado por este dispositivo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="173" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="188" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished">La ejecución de scripts no está soportada por este dispositivo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="192" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="207" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished">El Gestor de Archovos no está soportado por este dispositivo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="237" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="252" />
       <source>Select Device Directory</source>
       <translation type="unfinished">Seleccionar Directorio para Dispositivo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="238" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="253" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished">Seleccionar el directorio para el dispositivo conectado:</translation>
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="399" />
+      <source>Detected an error without indications.</source>
+      <translation type="unfinished">Detectado un error sin indicaciones.</translation>
+    </message>
   </context>
   <context>
     <name>BlackConfigurationDialog</name>
@@ -3766,121 +3771,121 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="89" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="87" />
       <source>CircuitPython</source>
       <translation>CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="213" />
       <source>Workspace Directory</source>
       <translation>Directorio del espacio de trabajo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="214" />
       <source>Python files for CircuitPython can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation>Los archivos Python para CircuitPython se pueden editar in situ, si el volumen de dispositivo está disponible localmente. No se ha encontrado un volumen de tales características. La edición in situ no estará disponible.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="244" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="250" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="248" />
       <source>CircuitPython Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="253" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="251" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="262" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="260" />
       <source>CircuitPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="344" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="275" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="266" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="342" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="273" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="264" />
       <source>Flash CircuitPython Firmware</source>
       <translation>Flashear Firmware de CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="269" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="267" />
       <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="442" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="304" />
-      <source>Install Library Files</source>
-      <translation>Instalar Archivos de Biblioteca</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="440" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="302" />
+      <source>Install Library Files</source>
+      <translation>Instalar Archivos de Biblioteca</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="306" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="314" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="312" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="343" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 do not support the UF2 bootloader. Please use the 'Teensy Loader' application to flash CircuitPython. Make sure you downloaded the CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Teensy 4.0 y Teensy 4.1 no soportan un bootloader UF2. Utilizar por favor la aplicación  'Teensy Loader' para flashear CircuitPython. Asegurarse de que se ha descargado el fichero hexadecimal de CircuitPython.&lt;/p&gt;&lt;p&gt;Ver &lt;a href="{0}"&gt;el website de PJRC Teensy&lt;/a&gt; para más detalles.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="365" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="363" />
       <source>Start 'Teensy Loader'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="366" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="364" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="395" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="393" />
       <source>unknown</source>
       <translation type="unfinished">desconocido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="414" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="412" />
       <source>&lt;h4&gt;CircuitPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="422" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="420" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="426" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="424" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="446" />
       <source>The device volume "&lt;b&gt;{0}&lt;/b&gt;" is not available. Ensure it is mounted properly and try again.</source>
       <translation>El volumen de dispositivo "&lt;b&gt;{0}&lt;/b&gt;" no está disponible. Asegúrese de que está montado correctamente e inténtelo de nuevo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="474" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation>Archivos Compilados de Python (*.mpy);;Archivos de Python (*.py);;Todos los Archivos (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="506" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="504" />
       <source>CircuitPython Firmware</source>
       <translation>Firmware de CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="510" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="508" />
       <source>CircuitPython Libraries</source>
       <translation>Bibliotecas de CircuitPython</translation>
     </message>
@@ -19894,66 +19899,6 @@
   <context>
     <name>EspBackupRestoreFirmwareDialog</name>
     <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation>Tipo de Chip ESP:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation>Seleccionar el tipo de chip ESP</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware Size:</source>
-      <translation>Tamaño del Firmware:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the firmware size</source>
-      <translation>Seleccionar el tamaño del firmware</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to auto detect. size.</source>
-      <translation>Dejar en blanco para autodetectar tamaño.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation>Tasa de Baudios:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation>Seleccionar la tasa de baudios a utilizar para flashing (por defecto: 115.200 bps)</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation>Flash Mode:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation>Seleccionar el modo de flash</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation>Dejar en blanco para usar el modo por defecto.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation>Firmware:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation>Introducir la ruta del archivo de firmware</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.py" line="107" />
       <source>Firmware Files (*.img);;All Files (*)</source>
       <translation>Archivos de Firmware (*.img);;Todos los Archivos (*)</translation>
@@ -19968,143 +19913,203 @@
       <source>Restore Firmware</source>
       <translation>Restaurar Firmware</translation>
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation>Tipo de Chip ESP:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation>Seleccionar el tipo de chip ESP</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware Size:</source>
+      <translation>Tamaño del Firmware:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the firmware size</source>
+      <translation>Seleccionar el tamaño del firmware</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to auto detect. size.</source>
+      <translation>Dejar en blanco para autodetectar tamaño.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation>Tasa de Baudios:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation>Seleccionar la tasa de baudios a utilizar para flashing (por defecto: 115.200 bps)</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation>Flash Mode:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation>Seleccionar el modo de flash</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation>Dejar en blanco para usar el modo por defecto.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation>Firmware:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation>Introducir la ruta del archivo de firmware</translation>
+    </message>
   </context>
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="72" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="73" />
       <source>ESP8266, ESP32</source>
       <translation>ESP8266, ESP32</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="128" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="129" />
       <source>ESP32 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="405" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="131" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="132" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="222" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="136" />
+      <source>Erase Flash</source>
+      <translation>Borrar Flash</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="259" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="139" />
+      <source>Flash MicroPython Firmware</source>
+      <translation>Flash MicroPython Firmware</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="296" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="143" />
+      <source>Flash Additional Firmware</source>
+      <translation>Flash Additional Firmware</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="332" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="147" />
+      <source>Backup Firmware</source>
+      <translation>Copia de Seguridad de Firmware</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="150" />
+      <source>Restore Firmware</source>
+      <translation>Restaurar Firmware</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="154" />
+      <source>Show Chip ID</source>
+      <translation>Mostrar ID de Chip</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="157" />
+      <source>Show Flash ID</source>
+      <translation>Mostrar ID de Flash</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="160" />
+      <source>Show MAC Address</source>
+      <translation>Mostrar dirección MAC</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="164" />
+      <source>Reset Device</source>
+      <translation>Resetear Dispositivo</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="167" />
+      <source>Install 'esptool.py'</source>
+      <translation>Instalar 'esptool.py'</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="209" />
+      <source>Shall the flash of the selected device really be erased?</source>
+      <translation>¿Borrar el flash del dispositivo seleccionado?</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="221" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="207" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="135" />
-      <source>Erase Flash</source>
-      <translation>Borrar Flash</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="138" />
-      <source>Flash MicroPython Firmware</source>
-      <translation>Flash MicroPython Firmware</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="142" />
-      <source>Flash Additional Firmware</source>
-      <translation>Flash Additional Firmware</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="146" />
-      <source>Backup Firmware</source>
-      <translation>Copia de Seguridad de Firmware</translation>
+      <source>'esptool erase_flash' Output</source>
+      <translation>Salida de 'esptool erase_flash'</translation>
     </message>
     <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="384" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="149" />
-      <source>Restore Firmware</source>
-      <translation>Restaurar Firmware</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="153" />
-      <source>Show Chip ID</source>
-      <translation>Mostrar ID de Chip</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="156" />
-      <source>Show Flash ID</source>
-      <translation>Mostrar ID de Flash</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="159" />
-      <source>Show MAC Address</source>
-      <translation>Mostrar dirección MAC</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="163" />
-      <source>Reset Device</source>
-      <translation>Resetear Dispositivo</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="166" />
-      <source>Install 'esptool.py'</source>
-      <translation>Instalar 'esptool.py'</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
-      <source>Shall the flash of the selected device really be erased?</source>
-      <translation>¿Borrar el flash del dispositivo seleccionado?</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="220" />
-      <source>'esptool erase_flash' Output</source>
-      <translation>Salida de 'esptool erase_flash'</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="383" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="294" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="257" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
       <source>'esptool write_flash' Output</source>
       <translation>Salida de 'esptool write_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
       <source>'esptool read_flash' Output</source>
       <translation>Salida de 'esptool read_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="407" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="434" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="435" />
       <source>unknown</source>
       <translation type="unfinished">desconocido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="446" />
       <source>&lt;h4&gt;{0} Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="453" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="454" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="458" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
       <source>'esptool chip_id' Output</source>
       <translation>Salida de 'esptool chip_id'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
       <source>'esptool flash_id' Output</source>
       <translation>Salida de 'esptool flash_id'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
       <source>'esptool read_mac' Output</source>
       <translation>Salida de 'esptool read_mac'</translation>
     </message>
@@ -20112,80 +20117,80 @@
   <context>
     <name>EspFirmwareSelectionDialog</name>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash MicroPython Firmware</source>
-      <translation>Flash MicroPython Firmware</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation>Tasa de Baudios:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation>Dejar en blanco para usar el modo por defecto.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Address:</source>
-      <translation>Dirección:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <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.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation>Seleccionar el modo de flash</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation>Flash Mode:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation>Firmware:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation>Seleccionar el tipo de chiop ESP</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation>Seleccionar la tasa de baudios a utilizar para flashing (por defecto: 115.200 bps)</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation>Introducir la ruta del archivo patch</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation>Tipo de Chip ESP:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware is CircuitPython</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.py" line="68" />
       <source>Firmware Files (*.bin);;All Files (*)</source>
       <translation>Archivos de Firmware (*.bin);;Todos los Archivos (*)</translation>
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash MicroPython Firmware</source>
+      <translation>Flash MicroPython Firmware</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation>Tasa de Baudios:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation>Dejar en blanco para usar el modo por defecto.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Address:</source>
+      <translation>Dirección:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <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/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation>Seleccionar el modo de flash</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation>Flash Mode:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation>Firmware:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation>Seleccionar el tipo de chiop ESP</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation>Seleccionar la tasa de baudios a utilizar para flashing (por defecto: 115.200 bps)</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation>Introducir la ruta del archivo patch</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation>Tipo de Chip ESP:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware is CircuitPython</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -21879,12 +21884,12 @@
   <context>
     <name>GenericMicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="196" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="194" />
       <source>Workspace Directory</source>
       <translation>Directorio del Espacio de Trabajo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="197" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="195" />
       <source>Python files for this generic board can be edited in place, if the device volume is locally available. A volume named '{0}' was not found. In place editing will not be available.</source>
       <translation>Los archivos Python para esta placa genérica se pueden editar in situ, si el volumen de dispositivo está disponible localmente. No se ha encontrado un volumen de tales características. La edición in situ no estará disponible.</translation>
     </message>
@@ -48941,9 +48946,8 @@
   <context>
     <name>MicroPythonCommandsInterface</name>
     <message>
-      <location filename="../MicroPython/MicroPythonCommandsInterface.py" line="322" />
       <source>Detected an error without indications.</source>
-      <translation>Detectado un error sin indicaciones.</translation>
+      <translation type="vanished">Detectado un error sin indicaciones.</translation>
     </message>
   </context>
   <context>
@@ -49011,35 +49015,35 @@
       <translation>{1}Sincronización terminada &lt;b&gt;{0}&lt;/b&gt;.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="386" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="306" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="384" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="304" />
       <source>{1}Adding &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>{1}Añadiendo &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="450" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="355" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="446" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="353" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a directory and destination &lt;b&gt;{1}&lt;/b&gt; is a file. Ignoring it.</source>
       <translation>El origen &lt;b&gt;{0}&lt;/b&gt; es un directorio y el destino &lt;b&gt;{1}&lt;/b&gt; es un archivo. Ignorado.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="459" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="364" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="455" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="362" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a file and destination &lt;b&gt;{1}&lt;/b&gt; is a directory. Ignoring it.</source>
       <translation>El origen &lt;b&gt;{0}&lt;/b&gt; es un archivo y el destino &lt;b&gt;{1}&lt;/b&gt; es un directorio. Ignorado.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="373" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="371" />
       <source>Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>Actualizando &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="414" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="412" />
       <source>{1}Removing &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>{1}Eliminando &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="468" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="464" />
       <source>{1}Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>{1}Actualizando &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
@@ -49143,171 +49147,171 @@
       <translation>Pulsar para mover al directorio de espacio de trabajo del dispositivo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="977" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="806" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="980" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="809" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="145" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="124" />
       <source>Change Directory</source>
       <translation>Cambiar Directorio</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="997" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="842" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="830" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="151" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1000" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="845" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="833" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
       <source>Create Directory</source>
       <translation>Crear Directorio</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1052" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="880" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="869" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="158" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="133" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1055" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="883" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="872" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
       <source>Delete Directory Tree</source>
       <translation>Borrar Árbol de Directorios</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1079" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="918" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="907" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1082" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="921" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="910" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="159" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="134" />
+      <source>Delete File</source>
+      <translation>Borrar Archivo</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="162" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="137" />
-      <source>Delete File</source>
-      <translation>Borrar Archivo</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="165" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="140" />
       <source>Show Hidden Files</source>
       <translation>Mostrar Archivos Ocultos</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1024" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1027" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="152" />
       <source>Delete Directory</source>
       <translation>Borrar Directorio</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="172" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="169" />
       <source>Show Filesystem Info</source>
       <translation>Mostrar Info de Sistema de Archivos</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="219" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="216" />
       <source>Error handling device</source>
       <translation>Error de gestión del dispositivo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="220" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="217" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Ha ocurrido un error al comunicar con el dispositivo conectado.&lt;/p&gt;&lt;p&gt;Método: {0}&lt;/p&gt;&lt;p&gt;Mensaje: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="486" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="483" />
       <source>Put File As</source>
       <translation>Poner Archivo Como</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="554" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="487" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="724" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="551" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="484" />
       <source>Enter a new name for the file</source>
       <translation>Introducir un nuevo nombre para el archivo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="500" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="497" />
       <source>Copy File to Device</source>
       <translation>Copiar Archivo al Dispositivo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="735" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="501" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="742" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="498" />
       <source>The given file exists already (Enter file name only).</source>
       <translation>El archivo proporcionado ya existe (Introducir solo nombre de archivo).</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="553" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="550" />
       <source>Get File As</source>
       <translation>Traer Archivo Como</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="567" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="564" />
       <source>Copy File from Device</source>
       <translation>Copiar Archivo desde Dispositivo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="568" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="565" />
       <source>The given file exists already.</source>
       <translation>El archivo proporcionado ya existe.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="734" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="722" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="741" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
       <source>Save File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="807" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="810" />
       <source>Select Directory</source>
       <translation>Seleccionar directorio</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="998" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="831" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1001" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="834" />
       <source>Enter directory name:</source>
       <translation>Introducir nombre de directorio:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="843" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="846" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;El directorio &lt;b&gt;{0}&lt;/b&gt; no se ha podido crear.&lt;/p&gt;&lt;p&gt;Razón: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1053" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="870" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1056" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="873" />
       <source>Do you really want to delete this directory tree?</source>
       <translation>¿Desea realmente borrar este árbol de directorios?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="881" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="884" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;El directorio &lt;b&gt;{0}&lt;/b&gt; no se ha podido borrar.&lt;/p&gt;&lt;p&gt;Razón: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1080" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="908" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1083" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="911" />
       <source>Do you really want to delete this file?</source>
       <translation>¿Desea realmente borrar este archivo?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="919" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="922" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;El archivo &lt;b&gt;{0}&lt;/b&gt; no se ha podido borrar.&lt;/p&gt;&lt;p&gt;Razón: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="978" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="981" />
       <source>Enter the directory path on the device:</source>
       <translation>Introducir la ruta de directorio en el dispositivo:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1025" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1028" />
       <source>Do you really want to delete this directory?</source>
       <translation>¿Desea realmente borrar este directorio?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1113" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1116" />
       <source>&lt;h3&gt;Filesystem Information&lt;/h3&gt;</source>
       <translation>&lt;h3&gt;Información de Sistema de Archivos&lt;/h3&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1115" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1118" />
       <source>&lt;h4&gt;{0}&lt;/h4&lt;table&gt;&lt;tr&gt;&lt;td&gt;Total Size: &lt;/td&gt;&lt;td align='right'&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Used Size: &lt;/td&gt;&lt;td align='right'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Free Size: &lt;/td&gt;&lt;td align='right'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h4&gt;{0}&lt;/h4&lt;table&gt;&lt;tr&gt;&lt;td&gt;Tamaño Total: &lt;/td&gt;&lt;td align='right'&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Tamaño Usado: &lt;/td&gt;&lt;td align='right'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Tamaño Libre: &lt;/td&gt;&lt;td align='right'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1128" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1131" />
       <source>Filesystem Information</source>
       <translation>Información de Sistema de Archivos</translation>
     </message>
@@ -49652,17 +49656,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="231" />
       <source>MicroPython Menu</source>
       <translation>Menú de MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="288" />
       <source>&lt;h3&gt;The QtSerialPort package is not available.&lt;br/&gt;MicroPython support is deactivated.&lt;/h3&gt;</source>
       <translation>&lt;h3&gt;El package QtSerialPort no está disponible.&lt;br/&gt;Soporte para MicroPython desactivado.&lt;/h3&gt;</translation>
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="329" />
       <source>%n supported device(s) detected.</source>
       <translation>
         <numerusform>%n dispositivo soportado detectado.</numerusform>
@@ -49670,18 +49674,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="343" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation>{0} - {1} ({2})</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="363" />
       <source>No supported devices detected.</source>
       <translation>No se han detectado dispositivos soportados.</translation>
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="367" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation>
@@ -49692,70 +49696,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="374" />
       <source>Manual Selection</source>
       <translation>Selección Manual</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="437" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="408" />
       <source>Unknown MicroPython Device</source>
       <translation>Dispositivo MicroPython Desconocido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="409" />
       <source>&lt;p&gt;Detected these unknown serial devices&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please report them together with the board name and a short description to &lt;a href="mailto:{1}"&gt; the eric bug reporting address&lt;/a&gt; if it is a MicroPython board.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Detectados estos dispositivos de serie desconocidos&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Reportarlos por favor junto con el nombre de la placa y una descripción corta a &lt;a href="mailto:{1}"&gt; la dirección de reporte de bugs de eric &lt;/a&gt; si es una placa MicroPython.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="421" />
       <source>{0} (0x{1:04x}/0x{2:04x})</source>
       <comment>description, VId, PId</comment>
       <translation>{0} (0x{1:04x}/0x{2:04x})</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="438" />
       <source>Would you like to add them to the list of manually configured devices?</source>
       <translation>¿Desea añadirlos a la lista de dispositivos configurados manualmente?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="564" />
       <source>Clear</source>
       <translation>Limpiar</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="569" />
       <source>Copy</source>
       <translation>Copiar</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="575" />
       <source>Paste</source>
       <translation>Pegar</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="582" />
       <source>Select All</source>
       <translation>Seleccionar todo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="608" />
       <source>Press to disconnect the current device</source>
       <translation>Pulsar para desconectar el dispositivo seleccionado</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="613" />
       <source>Press to connect the selected device</source>
       <translation>Pulsar para conectar el dispositivo seleccionado</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="640" />
       <source>No device attached</source>
       <translation>No hay dispositivo conectado</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="641" />
       <source>Please ensure the device is plugged into your computer and selected.
 
 It must have a version of MicroPython (or CircuitPython) flashed onto it before anything will work.
@@ -49768,328 +49772,318 @@
 Finalmente, pulsar el botón de reset del dispositivo y esperar unos pocos segundos antes de intentar de nuevo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="670" />
       <source>Start REPL</source>
       <translation>Iniciar REPL</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="671" />
       <source>&lt;p&gt;The REPL cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;El REPL no se puede iniciar.&lt;/p&gt;&lt;p&gt;Razón: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1180" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1169" />
       <source>Serial Device Connect</source>
       <translation>Conexión de Dispositivo en Serie</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1170" />
       <source>&lt;p&gt;The device at serial port &lt;b&gt;{0}&lt;/b&gt; does not respond. It may not have a MicroPython firmware flashed.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1186" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1181" />
       <source>&lt;p&gt;Cannot connect to device at serial port &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;No se puede conectar el dispositovo en el puerto de serie &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1237" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1228" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1219" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1239" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1221" />
       <source>Run Script</source>
       <translation>Ejecutar Script</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1222" />
       <source>There is no editor open. Abort...</source>
       <translation>No hay editor abierto. Abortando...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1231" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation>El editor actual no contiene un script. Abortando...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1240" />
       <source>&lt;p&gt;Cannot run script.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;No se puede ejecutar el script.&lt;/p&gt;&lt;p&gt;Razón: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
-      <source>Open Python File</source>
-      <translation>Abrir Archivo de Python</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
-      <source>Python3 Files (*.py);;All Files (*)</source>
-      <translation>Archivos de Python3 (*.py);;Todos los Archivos (*)</translation>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1276" />
+      <source>Start Chart</source>
+      <translation>Iniciar Gráfica</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1277" />
+      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+      <translation>&lt;p&gt;No se puede iniciar la gráfica.&lt;/p&gt;&lt;p&gt;Razón: {0}&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1292" />
+      <source>µPy Chart</source>
+      <translation>Gráfico µPy</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
-      <source>Start Chart</source>
-      <translation>Iniciar Gráfica</translation>
+      <source>Unsaved Chart Data</source>
+      <translation>Datos de Gráfica sin Guardar</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1310" />
-      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
-      <translation>&lt;p&gt;No se puede iniciar la gráfica.&lt;/p&gt;&lt;p&gt;Razón: {0}&lt;/p&gt;</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
-      <source>µPy Chart</source>
-      <translation>Gráfico µPy</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
-      <source>Unsaved Chart Data</source>
-      <translation>Datos de Gráfica sin Guardar</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1343" />
       <source>The chart contains unsaved data.</source>
       <translation>La gráfica contiene datos sin guardar.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1358" />
       <source>Start File Manager</source>
       <translation>Comenzar Gestor de Archivos</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1359" />
       <source>&lt;p&gt;The File Manager cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;El Gestor de Archivos no se puede iniciar.&lt;/p&gt;&lt;p&gt;Razón: {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1378" />
       <source>µPy Files</source>
       <translation>Archivos µPy</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1414" />
       <source>Downloads</source>
       <translation>Descargas</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1429" />
       <source>Show Version</source>
       <translation>Mostrar Versión</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1432" />
       <source>Show Implementation</source>
       <translation>Mostrar Implementación</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
       <source>Show Board Data</source>
       <translation>Mostrar Datos de Microprocesador</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1440" />
       <source>Synchronize Time</source>
       <translation>Sincronizar Hora</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1443" />
       <source>Show Device Time</source>
       <translation>Mostrar Hora del Dispositivo</translation>
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <source>Show Local Time</source>
+      <translation>Mostrar Hora Local</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <source>Show Time</source>
+      <translation>Mostrar Tiempo</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1452" />
+      <source>Show Builtin Modules</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1458" />
+      <source>Compile Python File</source>
+      <translation>Compilar Archivo de Python</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1840" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1831" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <source>Compile Current Editor</source>
+      <translation>Compilar Editor Actual</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1471" />
+      <source>Download Firmware</source>
+      <translation>Descargar Firmware</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
-      <source>Show Local Time</source>
-      <translation>Mostrar Hora Local</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
-      <source>Show Time</source>
-      <translation>Mostrar Tiempo</translation>
+      <source>Show Documentation</source>
+      <translation>Mostrar Documentación</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1482" />
+      <source>Flash UF2 Device</source>
+      <translation>Flashear Dispositivo UF2</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1485" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1849" />
+      <source>Manage Unknown Devices</source>
+      <translation>Gestión Dispositivos Desconocidos</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1488" />
+      <source>Ignored Serial Devices</source>
+      <translation>Dispositivos de Serie Ignorados</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1491" />
-      <source>Compile Python File</source>
-      <translation>Compilar Archivo de Python</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1873" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1864" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1495" />
-      <source>Compile Current Editor</source>
-      <translation>Compilar Editor Actual</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1504" />
-      <source>Download Firmware</source>
-      <translation>Descargar Firmware</translation>
+      <source>Configure</source>
+      <translation>Configurar</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1500" />
+      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
+      <translation>&lt;h3&gt;Información de Versión de Dispositivo&lt;/h3&gt;</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1511" />
-      <source>Show Documentation</source>
-      <translation>Mostrar Documentación</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
-      <source>Flash UF2 Device</source>
-      <translation>Flashear Dispositivo UF2</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
-      <source>Manage Unknown Devices</source>
-      <translation>Gestión Dispositivos Desconocidos</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
-      <source>Ignored Serial Devices</source>
-      <translation>Dispositivos de Serie Ignorados</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
-      <source>Configure</source>
-      <translation>Configurar</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
-      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
-      <translation>&lt;h3&gt;Información de Versión de Dispositivo&lt;/h3&gt;</translation>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1507" />
+      <source>Device Version Information</source>
+      <translation>Información de Versión de Dispositivo</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1512" />
+      <source>No version information available.</source>
+      <translation>No hay información de versión disponible.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1531" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1527" />
+      <source>unknown</source>
+      <translation>desconocido</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1536" />
+      <source> ({0})</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1552" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1543" />
+      <source>Device Implementation Information</source>
+      <translation>Información de Implementación de Dispositivo</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1544" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1540" />
-      <source>Device Version Information</source>
-      <translation>Información de Versión de Dispositivo</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1545" />
-      <source>No version information available.</source>
-      <translation>No hay información de versión disponible.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1564" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1560" />
-      <source>unknown</source>
-      <translation>desconocido</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1569" />
-      <source> ({0})</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1585" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1576" />
-      <source>Device Implementation Information</source>
-      <translation>Información de Implementación de Dispositivo</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1577" />
       <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}{2}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1553" />
       <source>No device implementation information available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1593" />
       <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
       <translation>&lt;p&gt;La hora del dispositivo conectado está sincronizada con la hora local.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1615" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h3&gt;Fecha y Hora del Dispositivo&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Fecha&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Hora&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1623" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation>&lt;h3&gt;Fecha y Hora del Dispositivo&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1639" />
       <source>Device Date and Time</source>
       <translation>Fecha y Hora del Dispositivo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
       <source>Local Date and Time</source>
       <translation>Fecha y Hora Local</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
       <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h3&gt;Fecha y Hora del Local&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Fecha&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Hora&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1693" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
       <source>Date and Time</source>
       <translation>Fecha y Hora</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Fecha y Hora Local&lt;/th&gt;&lt;th&gt;Fecha y Hora del Dispositivo&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Fecha&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Hora&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1694" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Fecha y Hora Local&lt;/th&gt;&lt;th&gt;Fecha y Hora del Dispositivo&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1718" />
       <source>Error handling device</source>
       <translation>Error de gestión del dispositivo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Ha ocurrido un error al comunicar con el dispositivo conectado.&lt;/p&gt;&lt;p&gt;Método: {0}&lt;/p&gt;&lt;p&gt;Mensaje: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1761" />
       <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation>El compilador multiplataforma de MicroPython &lt;b&gt;mpy-cross&lt;/b&gt; no se encuentra. Asegúrese de que está en la ruta de búsqueda o configurarlo en la página de configuración de MicroPython.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1787" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation>Archivos Python (*.py);;Todos los Archivos (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
       <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
       <translation>El archivo de Python &lt;b&gt;{0}&lt;/b&gt; no existe. Abortando...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1806" />
       <source>'mpy-cross' Output</source>
       <translation>Salida de 'mpy-cross'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation>El editor actual no contiene un archivo de Python. Abortando...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
       <source>Add Unknown Devices</source>
       <translation>Añadir Dispositivos Desconocidos</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
       <source>Select the devices to be added:</source>
       <translation>Seleccionar los dispositivos a añadir:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50100,16 +50094,6 @@
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to open a file of the connected device</source>
-      <translation>Pulsar para abrir un archivo del dispositivo conectado</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to save the current editor to the connected device</source>
-      <translation>Pulsar para guardar el editor actual al dispositivo conectado</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
       <source>Press to run the current script on the selected device</source>
       <translation>Pulsar para ejecutar el script actual en el dispositivo seleccionado</translation>
     </message>
@@ -50129,6 +50113,22 @@
       <translation>Pulsar para abrir una ventana de gráfica para mostrar datos recibidos desde el dispositivo seleccionado</translation>
     </message>
     <message>
+      <source>Open Python File</source>
+      <translation type="vanished">Abrir Archivo de Python</translation>
+    </message>
+    <message>
+      <source>Python3 Files (*.py);;All Files (*)</source>
+      <translation type="vanished">Archivos de Python3 (*.py);;Todos los Archivos (*)</translation>
+    </message>
+    <message>
+      <source>Press to open a file of the connected device</source>
+      <translation type="vanished">Pulsar para abrir un archivo del dispositivo conectado</translation>
+    </message>
+    <message>
+      <source>Press to save the current editor to the connected device</source>
+      <translation type="vanished">Pulsar para guardar el editor actual al dispositivo conectado</translation>
+    </message>
+    <message>
       <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="vanished">&lt;h3&gt;Información de Implementación de Dispositivo &lt;/h3&gt;&lt;p&gt;Este dispositivo contiene &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
@@ -50136,194 +50136,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="86" />
       <source>BBC micro:bit</source>
       <translation>BBC micro:bit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="87" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="89" />
       <source>Calliope mini</source>
       <translation>Calliope mini</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="188" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="190" />
       <source>BBC micro:bit/Calliope Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="401" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="389" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="372" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="191" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="403" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="391" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="374" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="193" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="195" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="197" />
       <source>Flash MicroPython</source>
       <translation>Flash MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="198" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="200" />
       <source>Flash Firmware</source>
       <translation>Flash Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="202" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="491" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="204" />
       <source>Save Script</source>
       <translation>Guardar Script</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="205" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="207" />
       <source>Save the current script to the selected device</source>
       <translation>Guardar el script actual en el dispositivo seleccionado</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="210" />
       <source>Save Script as 'main.py'</source>
       <translation>Guardar Script como 'main.py'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="211" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="213" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation>Guardar el script actual como 'main.py' en el dispositivo conectado</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="217" />
       <source>Reset {0}</source>
       <translation>Restablecer {0}</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="355" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="346" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="332" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="315" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="302" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="282" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="357" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="334" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="317" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="304" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="284" />
       <source>Flash MicroPython/Firmware</source>
       <translation>Flash MicroPython/Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="285" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed and plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;See the &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="303" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="305" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MICROBIT is available.&lt;/p&gt;</source>
       <translation>&lt;p&gt;El micro:bit BBC no está listo para flashing del firmware de MycroPython. Por favor asegurar la disponibilidad de un dispositivo llamado MICROBIT.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="316" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="318" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed an plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;</source>
       <translation>&lt;p&gt;El "Calliope mini" no está listo para flashear el firmware DAPLink. Seguir estas instrucciones. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;desconectar cable USB y todas las baterías &lt;/li&gt;&lt;li&gt;mantener apretado el botón de RESET y conectar de nuevo el cable USB&lt;/li&gt;&lt;li&gt;debería haber disponible una unidad llamada MANTENIMIENTO&lt;/li&gt;&lt;/ul&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="333" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="335" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MINI is available.&lt;/p&gt;</source>
       <translation>&lt;p&gt;El "Calliope Mini" no está listo para flashing del firmware de MycroPython. Por favor asegurar la disponibilidad de un dispositivo llamado MINI.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="350" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation>Archivos de MicroPython/Firmware (*.hex *.bin);;Todos los Archivos (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="356" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="358" />
       <source>There are multiple devices ready for flashing. Please make sure, that only one device is prepared.</source>
       <translation>Hay múltiples dispositivos listos para flashing. Por favor, asegurar que solamente hay un dispositivo listo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="373" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="375" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="390" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="392" />
       <source>&lt;p&gt;The BBC micro:bit generation cannot be determined. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="402" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="404" />
       <source>&lt;p&gt;The firmware URL for the device type &lt;b&gt;{0}&lt;/b&gt; is not known. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="429" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="431" />
       <source>unknown</source>
       <translation type="unfinished">desconocido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="447" />
       <source>Firmware</source>
       <translation type="unfinished">Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="450" />
       <source>&lt;h4&gt;{0} Version Information&lt;br/&gt;(BBC micro:bit v{1})&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="459" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="461" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="463" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="523" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="487" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="525" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
       <source>Save Script as '{0}'</source>
       <translation>Guardar Script como '{0}'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="498" />
       <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/Devices/MicrobitDevices.py" line="507" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="509" />
       <source>The script is empty. Aborting.</source>
       <translation>Script vacío. Abortando.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="518" />
       <source>Enter a file name on the device:</source>
       <translation>Introducir un nombre de archivo para el dispositivo:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="539" />
       <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/Devices/MicrobitDevices.py" line="597" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="599" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation>Firmware MicroPython para BBC micro:bit V1</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="629" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="616" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="601" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="631" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="618" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="603" />
       <source>DAPLink Firmware</source>
       <translation>Firmware DAPLink</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="608" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="610" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation>Firmware MicroPython para BBC micro:bit V2</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="612" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="614" />
       <source>CircuitPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="625" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="627" />
       <source>MicroPython Firmware</source>
       <translation>Firmware MicroPython</translation>
     </message>
@@ -62073,131 +62073,131 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="82" />
       <source>PyBoard</source>
       <translation>PyBoard</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="199" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="197" />
       <source>Workspace Directory</source>
       <translation>Directorio del Workspace</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="200" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="198" />
       <source>Python files for PyBoard can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation>Los archivos Python para PyBoard se pueden editar in situ, si el volumen de dispositivo está disponible localmente. No se ha encontrado un volumen de tales características. La edición in situ no estará disponible.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="232" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="230" />
       <source>PyBoard Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="438" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="235" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="436" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="233" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="239" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="237" />
       <source>Activate Bootloader</source>
       <translation>Activar Bootloader</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="242" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="240" />
       <source>List DFU-capable Devices</source>
       <translation>Listar Dispositivos con capacidad DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="421" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="244" />
       <source>Flash MicroPython Firmware</source>
       <translation>Flash MicroPython Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="249" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="247" />
       <source>MicroPython Flash Instructions</source>
       <translation>Instrucciones para MicroPython Flash</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="306" />
       <source>dfu-util not available</source>
       <translation>dfu-util no está disponible</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="309" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="307" />
       <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation>La herramienta de firmware de flasheo dfu-util &lt;b&gt;dfu-util&lt;/b&gt; no se encuentra o no es ejecutable. Asegure que está en la ruta de búsqueda o configure su valor en la página de configuración de MicroPython.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="329" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="327" />
       <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
       <translation>&lt;h3&gt;Habilitar Modo DFU&lt;/h3&gt;&lt;p&gt;1. Desconectar todo de la placa&lt;/p&gt;&lt;p&gt;2. Desconectar la placa&lt;/p&gt;&lt;p&gt;3. Conectar el pin DFU/BOOT0 con un pin de 3.3V pin&lt;/p&gt;&lt;p&gt;4. Reconectar la placa&lt;/p&gt;&lt;hr /&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="339" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="337" />
       <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;Aviso:&lt;/b&gt; Asegurar que todos los demás dispositivos con capacidad DFU -a excepción del PyBoard- están desconectados.&lt;hr /&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="343" />
       <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation>&lt;p&gt;Pulsar &lt;b&gt;OK&lt;/b&gt; para continuar...&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="346" />
       <source>Enable DFU mode</source>
       <translation>Habilitar modo DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="359" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="357" />
       <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation>&lt;h3&gt;Desabilitar Modo DFU&lt;/h3&gt;&lt;p&gt;1. Desconectar la placa&lt;/p&gt;&lt;p&gt;2. Sacar el jumper DFU&lt;/p&gt;&lt;p&gt;3. Reconectar la placa&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Pulsar &lt;b&gt;OK&lt;/b&gt; para continuar...&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="365" />
       <source>Disable DFU mode</source>
       <translation>Deshabilitar modo DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="420" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="418" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>'dfu-util' Output</source>
       <translation>Salida de 'dfu-util'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>List DFU capable Devices</source>
       <translation>Listar Dispositivos con capacidad DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="410" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation>Archivos de Firmware MicroPython (*.dfu);;Todos los Archivos (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="439" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="437" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="466" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="464" />
       <source>unknown</source>
       <translation type="unfinished">desconocido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="472" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="470" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="480" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="478" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="484" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="482" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67334,78 +67334,78 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="70" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="71" />
       <source>RP2040</source>
       <translation>RP2040</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="126" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="127" />
       <source>RP2040 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="198" />
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="129" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="133" />
-      <source>Activate Bootloader</source>
-      <translation>Activar Bootloader</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="136" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished">Flash MicroPython Firmware</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/RP2040Devices.py" line="199" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="130" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="134" />
+      <source>Activate Bootloader</source>
+      <translation>Activar Bootloader</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="137" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished">Flash MicroPython Firmware</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="200" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="231" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="232" />
       <source>unknown</source>
       <translation type="unfinished">desconocido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="238" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="247" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="255" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="256" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="259" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="260" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="282" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="283" />
       <source>MicroPython Firmware</source>
       <translation>MicroPython Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="286" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="287" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="289" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="290" />
       <source>CircuitPython Firmware</source>
       <translation>CircuitPython Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="293" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="294" />
       <source>CircuitPython Libraries</source>
       <translation>Bibliotecas de CircuitPython</translation>
     </message>
@@ -81456,74 +81456,74 @@
   <context>
     <name>TeensyDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="69" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="70" />
       <source>Teensy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="143" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="144" />
       <source>Teensy Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="184" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="146" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="150" />
-      <source>MicroPython Flash Instructions</source>
-      <translation type="unfinished">Instrucciones para MicroPython Flash</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="240" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="153" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished">Flash MicroPython Firmware</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="156" />
-      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="185" />
-      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="212" />
-      <source>unknown</source>
-      <translation type="unfinished">desconocido</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="218" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="226" />
-      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="230" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="147" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="151" />
+      <source>MicroPython Flash Instructions</source>
+      <translation type="unfinished">Instrucciones para MicroPython Flash</translation>
     </message>
     <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="241" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="154" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished">Flash MicroPython Firmware</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="157" />
+      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="186" />
+      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="213" />
+      <source>unknown</source>
+      <translation type="unfinished">desconocido</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="219" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="227" />
+      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="231" />
+      <source>MicroPython Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="242" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 are flashed using the 'Teensy Loader' application. Make sure you downloaded the MicroPython or CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="260" />
-      <source>Start 'Teensy Loader'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="261" />
+      <source>Start 'Teensy Loader'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="262" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_fr.ts	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/i18n/eric7_fr.ts	Tue Feb 14 18:10:30 2023 +0100
@@ -1821,50 +1821,55 @@
   <context>
     <name>BaseDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="92" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="95" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="93" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="96" />
       <source>&lt;p&gt;The device data is not available. Try to connect to the device again. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="125" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="140" />
       <source>Unsupported Device</source>
       <translation type="unfinished">Matériel non supporté</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="135" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="150" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished">REPL n'est pas supporté pour ce matériel.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="154" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="169" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="173" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="188" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="192" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="207" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished">Le gestionnaire de fichier n'est pas supporté pour ce matériel.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="237" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="252" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="238" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="253" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="399" />
+      <source>Detected an error without indications.</source>
+      <translation type="unfinished">Supprimer une erreur sans indications.</translation>
+    </message>
   </context>
   <context>
     <name>BlackConfigurationDialog</name>
@@ -3861,121 +3866,121 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="89" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="87" />
       <source>CircuitPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="213" />
       <source>Workspace Directory</source>
       <translation>Répertoire de travail</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="214" />
       <source>Python files for CircuitPython can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="244" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="250" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="248" />
       <source>CircuitPython Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="253" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="251" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="262" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="260" />
       <source>CircuitPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="344" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="275" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="266" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="342" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="273" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="264" />
       <source>Flash CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="269" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="267" />
       <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="442" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="304" />
-      <source>Install Library Files</source>
-      <translation>Installer les fichiers librairies</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="440" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="302" />
+      <source>Install Library Files</source>
+      <translation>Installer les fichiers librairies</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="306" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="314" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="312" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="343" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 do not support the UF2 bootloader. Please use the 'Teensy Loader' application to flash CircuitPython. Make sure you downloaded the CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="365" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="363" />
       <source>Start 'Teensy Loader'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="366" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="364" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="395" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="393" />
       <source>unknown</source>
       <translation type="unfinished">inconnu</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="414" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="412" />
       <source>&lt;h4&gt;CircuitPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="422" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="420" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="426" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="424" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="446" />
       <source>The device volume "&lt;b&gt;{0}&lt;/b&gt;" is not available. Ensure it is mounted properly and try again.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="474" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation>Fichiers Python Compilés (*.mpy);;Fichiers Python (*.py);;Tous les Fichiers (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="506" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="504" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="510" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="508" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -20045,66 +20050,6 @@
   <context>
     <name>EspBackupRestoreFirmwareDialog</name>
     <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware Size:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the firmware size</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to auto detect. size.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished">Micrologiciel :</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.py" line="107" />
       <source>Firmware Files (*.img);;All Files (*)</source>
       <translation type="unfinished" />
@@ -20119,143 +20064,203 @@
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware Size:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the firmware size</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to auto detect. size.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation type="unfinished">Micrologiciel :</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="72" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="73" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="128" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="129" />
       <source>ESP32 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="405" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="131" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="132" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="222" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="136" />
+      <source>Erase Flash</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="259" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="139" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="296" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="143" />
+      <source>Flash Additional Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="332" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="147" />
+      <source>Backup Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="150" />
+      <source>Restore Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="154" />
+      <source>Show Chip ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="157" />
+      <source>Show Flash ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="160" />
+      <source>Show MAC Address</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="164" />
+      <source>Reset Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="167" />
+      <source>Install 'esptool.py'</source>
+      <translation>Installer 'esptool.py'</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="209" />
+      <source>Shall the flash of the selected device really be erased?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="221" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="207" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="135" />
-      <source>Erase Flash</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="138" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="142" />
-      <source>Flash Additional Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="146" />
-      <source>Backup Firmware</source>
+      <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="384" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="149" />
-      <source>Restore Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="153" />
-      <source>Show Chip ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="156" />
-      <source>Show Flash ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="159" />
-      <source>Show MAC Address</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="163" />
-      <source>Reset Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="166" />
-      <source>Install 'esptool.py'</source>
-      <translation>Installer 'esptool.py'</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
-      <source>Shall the flash of the selected device really be erased?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="220" />
-      <source>'esptool erase_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="383" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="294" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="257" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
       <source>'esptool read_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="407" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="434" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="435" />
       <source>unknown</source>
       <translation type="unfinished">inconnu</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="446" />
       <source>&lt;h4&gt;{0} Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="453" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="454" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="458" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -20263,80 +20268,80 @@
   <context>
     <name>EspFirmwareSelectionDialog</name>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.py" line="68" />
+      <source>Firmware Files (*.bin);;All Files (*)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Baud Rate:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Leave empty to use the default mode.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Address:</source>
       <translation>Adresse :</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Enter the flash addres in the hexadecimal form</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Select the flash mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Flash Mode:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Firmware:</source>
       <translation type="unfinished">Micrologiciel :</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Select the ESP chip type</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Enter the path of the firmware file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>ESP Chip Type:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Firmware is CircuitPython</source>
       <translation type="unfinished" />
     </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.py" line="68" />
-      <source>Firmware Files (*.bin);;All Files (*)</source>
-      <translation type="unfinished" />
-    </message>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -22101,12 +22106,12 @@
   <context>
     <name>GenericMicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="196" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="194" />
       <source>Workspace Directory</source>
       <translation type="unfinished">Répertoire de travail</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="197" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="195" />
       <source>Python files for this generic board can be edited in place, if the device volume is locally available. A volume named '{0}' was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
@@ -49176,9 +49181,8 @@
   <context>
     <name>MicroPythonCommandsInterface</name>
     <message>
-      <location filename="../MicroPython/MicroPythonCommandsInterface.py" line="322" />
       <source>Detected an error without indications.</source>
-      <translation>Supprimer une erreur sans indications.</translation>
+      <translation type="vanished">Supprimer une erreur sans indications.</translation>
     </message>
   </context>
   <context>
@@ -49230,35 +49234,35 @@
       <translation>{1}Synchronisation terminée &lt;b&gt;{0}&lt;/b&gt;.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="386" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="306" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="384" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="304" />
       <source>{1}Adding &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>{1}Ajout en cours &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="450" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="355" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="446" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="353" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a directory and destination &lt;b&gt;{1}&lt;/b&gt; is a file. Ignoring it.</source>
       <translation>La source &lt;b&gt;{0}&lt;/b&gt; est un répertoire et la destination &lt;b&gt;{1}&lt;/b&gt; est un fichier. Passer.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="459" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="364" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="455" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="362" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a file and destination &lt;b&gt;{1}&lt;/b&gt; is a directory. Ignoring it.</source>
       <translation>La source &lt;b&gt;{0}&lt;/b&gt; est un fichier et la destination &lt;b&gt;{1}&lt;/b&gt; est un répertoire. Passer.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="373" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="371" />
       <source>Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>Mise à jour en cours &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="414" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="412" />
       <source>{1}Removing &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>{1}Suppression en cours &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="468" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="464" />
       <source>{1}Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>{1}Mise à jour en cours &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
@@ -49362,171 +49366,171 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="977" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="806" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="980" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="809" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="145" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="124" />
       <source>Change Directory</source>
       <translation>Changer de répertoire</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="997" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="842" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="830" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="151" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1000" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="845" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="833" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
       <source>Create Directory</source>
       <translation>Créer un répertoire</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1052" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="880" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="869" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="158" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="133" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1055" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="883" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="872" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
       <source>Delete Directory Tree</source>
       <translation>Supprimer l'arbre des répertoire</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1079" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="918" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="907" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1082" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="921" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="910" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="159" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="134" />
+      <source>Delete File</source>
+      <translation>Supprimer le fichier</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="162" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="137" />
-      <source>Delete File</source>
-      <translation>Supprimer le fichier</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="165" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="140" />
       <source>Show Hidden Files</source>
       <translation>Montrer les fichiers cachés</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1024" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1027" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="152" />
       <source>Delete Directory</source>
       <translation>Supprimer le répertoire</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="172" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="169" />
       <source>Show Filesystem Info</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="219" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="216" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="220" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="217" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished">&lt;p&gt;Il y a eu une erreur de communication avec le matériel connecté.&lt;/p&gt;&lt;p&gt;Méthode : {0}&lt;/p&gt;&lt;p&gt;Message : {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="486" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="483" />
       <source>Put File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="554" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="487" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="724" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="551" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="484" />
       <source>Enter a new name for the file</source>
       <translation>Entrer un nouveau nom pour le fichier</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="500" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="497" />
       <source>Copy File to Device</source>
       <translation>Copier le fichier vers le matériel</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="735" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="501" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="742" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="498" />
       <source>The given file exists already (Enter file name only).</source>
       <translation>Le fichier donnée existe déjà (Entrer le nom de fichier uniquement).</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="553" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="550" />
       <source>Get File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="567" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="564" />
       <source>Copy File from Device</source>
       <translation>Copier le fichier à partir du matériel</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="568" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="565" />
       <source>The given file exists already.</source>
       <translation>Le fichier donné existe déjà.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="734" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="722" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="741" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
       <source>Save File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="807" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="810" />
       <source>Select Directory</source>
       <translation>Sélection répertoire</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="998" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="831" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1001" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="834" />
       <source>Enter directory name:</source>
       <translation>Entrer un nom de répertoire :</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="843" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="846" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Le répertoire &lt;b&gt;{0}&lt;/b&gt; ne peut être créé.&lt;/p&gt;&lt;p&gt;Raison : {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1053" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="870" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1056" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="873" />
       <source>Do you really want to delete this directory tree?</source>
       <translation>Voulez-vous vraiment supprimer cette arborescence ?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="881" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="884" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Le répertoire &lt;b&gt;{0}&lt;/b&gt; ne peut être supprimé.&lt;/p&gt;&lt;p&gt;Raison : {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1080" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="908" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1083" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="911" />
       <source>Do you really want to delete this file?</source>
       <translation>Voulez-vous vraiment supprimer ce fichier ?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="919" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="922" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Le fichier &lt;b&gt;{0}&lt;/b&gt; ne peut être supprimé.&lt;/p&gt;&lt;p&gt;Raison : {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="978" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="981" />
       <source>Enter the directory path on the device:</source>
       <translation>Entrer le chemin vers le matériel :</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1025" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1028" />
       <source>Do you really want to delete this directory?</source>
       <translation>Voulez-vous vraiment supprimer ce répertoire ?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1113" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1116" />
       <source>&lt;h3&gt;Filesystem Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1115" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1118" />
       <source>&lt;h4&gt;{0}&lt;/h4&lt;table&gt;&lt;tr&gt;&lt;td&gt;Total Size: &lt;/td&gt;&lt;td align='right'&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Used Size: &lt;/td&gt;&lt;td align='right'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Free Size: &lt;/td&gt;&lt;td align='right'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1128" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1131" />
       <source>Filesystem Information</source>
       <translation type="unfinished" />
     </message>
@@ -49871,17 +49875,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="231" />
       <source>MicroPython Menu</source>
       <translation>Menu MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="288" />
       <source>&lt;h3&gt;The QtSerialPort package is not available.&lt;br/&gt;MicroPython support is deactivated.&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="329" />
       <source>%n supported device(s) detected.</source>
       <translation>
         <numerusform>%n matériel supporté détecté.</numerusform>
@@ -49889,18 +49893,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="343" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="363" />
       <source>No supported devices detected.</source>
       <translation>Pas de matériel supporté détecté.</translation>
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="367" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation type="unfinished">
@@ -49909,70 +49913,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="374" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="437" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="408" />
       <source>Unknown MicroPython Device</source>
       <translation>Matériel MicroPython inconnu</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="409" />
       <source>&lt;p&gt;Detected these unknown serial devices&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please report them together with the board name and a short description to &lt;a href="mailto:{1}"&gt; the eric bug reporting address&lt;/a&gt; if it is a MicroPython board.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="421" />
       <source>{0} (0x{1:04x}/0x{2:04x})</source>
       <comment>description, VId, PId</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="438" />
       <source>Would you like to add them to the list of manually configured devices?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="564" />
       <source>Clear</source>
       <translation>Effacer</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="569" />
       <source>Copy</source>
       <translation>Copier</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="575" />
       <source>Paste</source>
       <translation>Coller</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="582" />
       <source>Select All</source>
       <translation type="unfinished">Tout sélectionner</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="608" />
       <source>Press to disconnect the current device</source>
       <translation>Cliquer pour déconnecter le matériel courant</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="613" />
       <source>Press to connect the selected device</source>
       <translation>Cliquer pour se connecter au matériel sélectionné</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="640" />
       <source>No device attached</source>
       <translation>Pas de matériel relié</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="641" />
       <source>Please ensure the device is plugged into your computer and selected.
 
 It must have a version of MicroPython (or CircuitPython) flashed onto it before anything will work.
@@ -49981,328 +49985,318 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="670" />
       <source>Start REPL</source>
       <translation>Démarrer REPL</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="671" />
       <source>&lt;p&gt;The REPL cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;REPL ne peut être démarré.&lt;/p&gt;&lt;p&gt;Raison : {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1180" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1169" />
       <source>Serial Device Connect</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1170" />
       <source>&lt;p&gt;The device at serial port &lt;b&gt;{0}&lt;/b&gt; does not respond. It may not have a MicroPython firmware flashed.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1186" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1181" />
       <source>&lt;p&gt;Cannot connect to device at serial port &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Ne peut connecter un matériel sur le port série&lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1237" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1228" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1219" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1239" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1221" />
       <source>Run Script</source>
       <translation>Lancer le script</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1222" />
       <source>There is no editor open. Abort...</source>
       <translation>Il n'y a pas d'éditeur ouvert. Annulation...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1231" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation>L'éditeur courant ne contient pas de script. Annulation...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1240" />
       <source>&lt;p&gt;Cannot run script.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Ne peut lancer le script.&lt;/p&gt;&lt;p&gt;Raison : {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
-      <source>Open Python File</source>
-      <translation>Ouvrir un fichier Python</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
-      <source>Python3 Files (*.py);;All Files (*)</source>
-      <translation>Fichiers Python3 (*.py);;Tous les fichiers (*)</translation>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1276" />
+      <source>Start Chart</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1277" />
+      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1292" />
+      <source>µPy Chart</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
-      <source>Start Chart</source>
+      <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1310" />
-      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
-      <source>µPy Chart</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
-      <source>Unsaved Chart Data</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1343" />
       <source>The chart contains unsaved data.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1358" />
       <source>Start File Manager</source>
       <translation>Démarrer le gestionnaire de fichier</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1359" />
       <source>&lt;p&gt;The File Manager cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Le gestionnaire de fichier ne peut démarrer.&lt;/p&gt;&lt;p&gt;Raison : {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1378" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1414" />
       <source>Downloads</source>
       <translation type="unfinished">Téléchargements</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1429" />
       <source>Show Version</source>
       <translation>Montrer la version</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1432" />
       <source>Show Implementation</source>
       <translation>Montrer l'implémentation</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1440" />
       <source>Synchronize Time</source>
       <translation>Synchroniser le temps</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1443" />
       <source>Show Device Time</source>
       <translation>Montrer l'horloge matériel</translation>
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <source>Show Local Time</source>
+      <translation>Montrer l'horloge locale</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <source>Show Time</source>
+      <translation>Montrer l'horloge</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1452" />
+      <source>Show Builtin Modules</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1458" />
+      <source>Compile Python File</source>
+      <translation>Compilier le fichier Python</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1840" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1831" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <source>Compile Current Editor</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1471" />
+      <source>Download Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
-      <source>Show Local Time</source>
-      <translation>Montrer l'horloge locale</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
-      <source>Show Time</source>
-      <translation>Montrer l'horloge</translation>
+      <source>Show Documentation</source>
+      <translation>Montrer la documentation</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1482" />
+      <source>Flash UF2 Device</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1485" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1849" />
+      <source>Manage Unknown Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1488" />
+      <source>Ignored Serial Devices</source>
+      <translation>Matériels séries ignorés</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1491" />
-      <source>Compile Python File</source>
-      <translation>Compilier le fichier Python</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1873" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1864" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1495" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1504" />
-      <source>Download Firmware</source>
+      <source>Configure</source>
+      <translation>Configuration</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1500" />
+      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1511" />
-      <source>Show Documentation</source>
-      <translation>Montrer la documentation</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
-      <source>Flash UF2 Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
-      <source>Manage Unknown Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
-      <source>Ignored Serial Devices</source>
-      <translation>Matériels séries ignorés</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
-      <source>Configure</source>
-      <translation>Configuration</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
-      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1507" />
+      <source>Device Version Information</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1512" />
+      <source>No version information available.</source>
+      <translation>Pas d'information de version disponible.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1531" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1527" />
+      <source>unknown</source>
+      <translation>inconnu</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1536" />
+      <source> ({0})</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1552" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1543" />
+      <source>Device Implementation Information</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1544" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1540" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1545" />
-      <source>No version information available.</source>
-      <translation>Pas d'information de version disponible.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1564" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1560" />
-      <source>unknown</source>
-      <translation>inconnu</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1569" />
-      <source> ({0})</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1585" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1576" />
-      <source>Device Implementation Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1577" />
       <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}{2}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1553" />
       <source>No device implementation information available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1593" />
       <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
       <translation>&lt;p&gt;L'horloge du matériel connecté a été synchronisée à l'horloge locale.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1615" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h3&gt;Date et heure matériel&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Heure&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1623" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation>&lt;h3&gt;Date et heure matériel&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1639" />
       <source>Device Date and Time</source>
       <translation>Date et heure matériel</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
       <source>Local Date and Time</source>
       <translation>Date et heure locales</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
       <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h3&gt;Date et heure locales&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Heure&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1693" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
       <source>Date and Time</source>
       <translation>Date et heure</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Date et heure locales&lt;/th&gt;&lt;th&gt;Date et heure matériel&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Heure&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1694" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Date et heure locales&lt;/th&gt;&lt;th&gt;Date et heure matériel&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1718" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Il y a eu une erreur de communication avec le matériel connecté.&lt;/p&gt;&lt;p&gt;Méthode : {0}&lt;/p&gt;&lt;p&gt;Message : {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1761" />
       <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1787" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation>Fichiers Python (*.py);;Tous les fichiers (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
       <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
       <translation>Le fichier Python &lt;b&gt;{0}&lt;/b&gt; n'existe pas. Annulation...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1806" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation>L'éditeur courant ne contient pas un fichier Python. Annulation...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50313,16 +50307,6 @@
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to open a file of the connected device</source>
-      <translation>Cliquer pour ouvrir un fichier du matériel connecté</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to save the current editor to the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
       <source>Press to run the current script on the selected device</source>
       <translation>Cliquer pour lancer le script courant sur le matériel sélectionné</translation>
     </message>
@@ -50341,198 +50325,210 @@
       <source>Press to open a chart window to display data receive from the selected device</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <source>Open Python File</source>
+      <translation type="vanished">Ouvrir un fichier Python</translation>
+    </message>
+    <message>
+      <source>Python3 Files (*.py);;All Files (*)</source>
+      <translation type="vanished">Fichiers Python3 (*.py);;Tous les fichiers (*)</translation>
+    </message>
+    <message>
+      <source>Press to open a file of the connected device</source>
+      <translation type="vanished">Cliquer pour ouvrir un fichier du matériel connecté</translation>
+    </message>
   </context>
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="86" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="87" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="89" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="188" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="190" />
       <source>BBC micro:bit/Calliope Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="401" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="389" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="372" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="191" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="403" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="391" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="374" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="193" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="195" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="197" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="198" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="200" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="202" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="491" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="204" />
       <source>Save Script</source>
       <translation>Enregistrer le script</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="205" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="207" />
       <source>Save the current script to the selected device</source>
       <translation>Enregistrer le script courant sur le matériel sélectionné</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="210" />
       <source>Save Script as 'main.py'</source>
       <translation>Enregistrer le script en tant que 'main.py'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="211" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="213" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation>Enregistre le script courant en tant que 'main.py' sur le matériel connecté</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="217" />
       <source>Reset {0}</source>
       <translation>Réinitialiser {0}</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="355" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="346" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="332" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="315" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="302" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="282" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="357" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="334" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="317" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="304" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="284" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="285" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed and plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;See the &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="303" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="305" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MICROBIT is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="316" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="318" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed an plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="333" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="335" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MINI is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="350" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="356" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="358" />
       <source>There are multiple devices ready for flashing. Please make sure, that only one device is prepared.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="373" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="375" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="390" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="392" />
       <source>&lt;p&gt;The BBC micro:bit generation cannot be determined. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="402" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="404" />
       <source>&lt;p&gt;The firmware URL for the device type &lt;b&gt;{0}&lt;/b&gt; is not known. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="429" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="431" />
       <source>unknown</source>
       <translation type="unfinished">inconnu</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="447" />
       <source>Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="450" />
       <source>&lt;h4&gt;{0} Version Information&lt;br/&gt;(BBC micro:bit v{1})&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="459" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="461" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="463" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="523" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="487" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="525" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
       <source>Save Script as '{0}'</source>
       <translation>Enregistrer le script en tant que '{0}'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="498" />
       <source>The current editor does not contain a Python script. Write it anyway?</source>
       <translation>L'éditeur courant ne contient pas de script Python. L'écrire tout de même ?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="507" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="509" />
       <source>The script is empty. Aborting.</source>
       <translation>Le script est vide. Annulation.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="518" />
       <source>Enter a file name on the device:</source>
       <translation>Entrer le nom du fichier sur le matériel :</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="539" />
       <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;Le script n'a pu être enregistré sur le matériel.&lt;/p&gt;&lt;p&gt;Raison : {0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="597" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="599" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="629" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="616" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="601" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="631" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="618" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="603" />
       <source>DAPLink Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="608" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="610" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="612" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="614" />
       <source>CircuitPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="625" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="627" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -62596,131 +62592,131 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="82" />
       <source>PyBoard</source>
       <translation>PyBoard</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="199" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="197" />
       <source>Workspace Directory</source>
       <translation>Répertoire de travail</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="200" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="198" />
       <source>Python files for PyBoard can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="232" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="230" />
       <source>PyBoard Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="438" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="235" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="436" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="233" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="239" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="237" />
       <source>Activate Bootloader</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="242" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="240" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="421" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="244" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="249" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="247" />
       <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="306" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="309" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="307" />
       <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="329" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="327" />
       <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="339" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="337" />
       <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="343" />
       <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation>&lt;p&gt;Cliquer &lt;b&gt;OK&lt;/b&gt; pour continuer...&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="346" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="359" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="357" />
       <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="365" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="420" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="418" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="410" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="439" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="437" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="466" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="464" />
       <source>unknown</source>
       <translation type="unfinished">inconnu</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="472" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="470" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="480" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="478" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="484" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="482" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67865,78 +67861,78 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="70" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="71" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="126" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="127" />
       <source>RP2040 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="198" />
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="129" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="133" />
-      <source>Activate Bootloader</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="136" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/RP2040Devices.py" line="199" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="130" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="134" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="137" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="200" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="231" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="232" />
       <source>unknown</source>
       <translation type="unfinished">inconnu</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="238" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="247" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="255" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="256" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="259" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="260" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="282" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="283" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="286" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="287" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="289" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="290" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="293" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="294" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -81942,74 +81938,74 @@
   <context>
     <name>TeensyDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="69" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="70" />
       <source>Teensy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="143" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="144" />
       <source>Teensy Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="184" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="146" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="150" />
-      <source>MicroPython Flash Instructions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="240" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="153" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="156" />
-      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="185" />
-      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="212" />
-      <source>unknown</source>
-      <translation type="unfinished">inconnu</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="218" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="226" />
-      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="230" />
-      <source>MicroPython Version</source>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="147" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="151" />
+      <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="241" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="154" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="157" />
+      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="186" />
+      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="213" />
+      <source>unknown</source>
+      <translation type="unfinished">inconnu</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="219" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="227" />
+      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="231" />
+      <source>MicroPython Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="242" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 are flashed using the 'Teensy Loader' application. Make sure you downloaded the MicroPython or CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="260" />
-      <source>Start 'Teensy Loader'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="261" />
+      <source>Start 'Teensy Loader'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="262" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_it.ts	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/i18n/eric7_it.ts	Tue Feb 14 18:10:30 2023 +0100
@@ -1794,50 +1794,55 @@
   <context>
     <name>BaseDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="92" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="95" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="93" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="96" />
       <source>&lt;p&gt;The device data is not available. Try to connect to the device again. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="125" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="140" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="135" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="150" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="154" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="169" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="173" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="188" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="192" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="207" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="237" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="252" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="238" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="253" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="399" />
+      <source>Detected an error without indications.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>BlackConfigurationDialog</name>
@@ -3832,121 +3837,121 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="89" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="87" />
       <source>CircuitPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="213" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="214" />
       <source>Python files for CircuitPython can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="244" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="250" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="248" />
       <source>CircuitPython Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="253" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="251" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="262" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="260" />
       <source>CircuitPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="344" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="275" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="266" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="342" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="273" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="264" />
       <source>Flash CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="269" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="267" />
       <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="442" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="304" />
-      <source>Install Library Files</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="440" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="302" />
+      <source>Install Library Files</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="306" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="314" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="312" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="343" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 do not support the UF2 bootloader. Please use the 'Teensy Loader' application to flash CircuitPython. Make sure you downloaded the CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="365" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="363" />
       <source>Start 'Teensy Loader'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="366" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="364" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="395" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="393" />
       <source>unknown</source>
       <translation type="unfinished">sconosciuto</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="414" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="412" />
       <source>&lt;h4&gt;CircuitPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="422" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="420" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="426" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="424" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="446" />
       <source>The device volume "&lt;b&gt;{0}&lt;/b&gt;" is not available. Ensure it is mounted properly and try again.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="474" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="506" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="504" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="510" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="508" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -20007,66 +20012,6 @@
   <context>
     <name>EspBackupRestoreFirmwareDialog</name>
     <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware Size:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the firmware size</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to auto detect. size.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.py" line="107" />
       <source>Firmware Files (*.img);;All Files (*)</source>
       <translation type="unfinished" />
@@ -20081,143 +20026,203 @@
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware Size:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the firmware size</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to auto detect. size.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="72" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="73" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="128" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="129" />
       <source>ESP32 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="405" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="131" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="132" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="222" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="136" />
+      <source>Erase Flash</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="259" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="139" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="296" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="143" />
+      <source>Flash Additional Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="332" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="147" />
+      <source>Backup Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="150" />
+      <source>Restore Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="154" />
+      <source>Show Chip ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="157" />
+      <source>Show Flash ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="160" />
+      <source>Show MAC Address</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="164" />
+      <source>Reset Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="167" />
+      <source>Install 'esptool.py'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="209" />
+      <source>Shall the flash of the selected device really be erased?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="221" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="207" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="135" />
-      <source>Erase Flash</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="138" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="142" />
-      <source>Flash Additional Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="146" />
-      <source>Backup Firmware</source>
+      <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="384" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="149" />
-      <source>Restore Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="153" />
-      <source>Show Chip ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="156" />
-      <source>Show Flash ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="159" />
-      <source>Show MAC Address</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="163" />
-      <source>Reset Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="166" />
-      <source>Install 'esptool.py'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
-      <source>Shall the flash of the selected device really be erased?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="220" />
-      <source>'esptool erase_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="383" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="294" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="257" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
       <source>'esptool read_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="407" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="434" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="435" />
       <source>unknown</source>
       <translation type="unfinished">sconosciuto</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="446" />
       <source>&lt;h4&gt;{0} Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="453" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="454" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="458" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -20225,80 +20230,80 @@
   <context>
     <name>EspFirmwareSelectionDialog</name>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.py" line="68" />
+      <source>Firmware Files (*.bin);;All Files (*)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Baud Rate:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Leave empty to use the default mode.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Address:</source>
       <translation type="unfinished">Indirizzo:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Enter the flash addres in the hexadecimal form</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Select the flash mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Flash Mode:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Firmware:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Select the ESP chip type</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Enter the path of the firmware file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>ESP Chip Type:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Firmware is CircuitPython</source>
       <translation type="unfinished" />
     </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.py" line="68" />
-      <source>Firmware Files (*.bin);;All Files (*)</source>
-      <translation type="unfinished" />
-    </message>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -22051,12 +22056,12 @@
   <context>
     <name>GenericMicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="196" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="194" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="197" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="195" />
       <source>Python files for this generic board can be edited in place, if the device volume is locally available. A volume named '{0}' was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
@@ -49104,14 +49109,6 @@
     </message>
   </context>
   <context>
-    <name>MicroPythonCommandsInterface</name>
-    <message>
-      <location filename="../MicroPython/MicroPythonCommandsInterface.py" line="322" />
-      <source>Detected an error without indications.</source>
-      <translation type="unfinished" />
-    </message>
-  </context>
-  <context>
     <name>MicroPythonDevice</name>
     <message>
       <location filename="../MicroPython/Devices/__init__.py" line="260" />
@@ -49148,35 +49145,35 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="386" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="306" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="384" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="304" />
       <source>{1}Adding &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="450" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="355" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="446" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="353" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a directory and destination &lt;b&gt;{1}&lt;/b&gt; is a file. Ignoring it.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="459" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="364" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="455" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="362" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a file and destination &lt;b&gt;{1}&lt;/b&gt; is a directory. Ignoring it.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="373" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="371" />
       <source>Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="414" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="412" />
       <source>{1}Removing &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="468" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="464" />
       <source>{1}Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
@@ -49280,171 +49277,171 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="977" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="806" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="980" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="809" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="145" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="124" />
+      <source>Change Directory</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1000" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="845" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="833" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
-      <source>Change Directory</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="997" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="842" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="830" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="151" />
+      <source>Create Directory</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1055" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="883" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="872" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
-      <source>Create Directory</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1052" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="880" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="869" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="158" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="133" />
       <source>Delete Directory Tree</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1079" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="918" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="907" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1082" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="921" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="910" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="159" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="134" />
+      <source>Delete File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="162" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="137" />
-      <source>Delete File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="165" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="140" />
       <source>Show Hidden Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1024" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1027" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="152" />
       <source>Delete Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="172" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="169" />
       <source>Show Filesystem Info</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="219" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="216" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="220" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="217" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="486" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="483" />
       <source>Put File As</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="724" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="551" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="484" />
+      <source>Enter a new name for the file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="497" />
+      <source>Copy File to Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="742" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="498" />
+      <source>The given file exists already (Enter file name only).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="550" />
+      <source>Get File As</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="564" />
+      <source>Copy File from Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="565" />
+      <source>The given file exists already.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="741" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="554" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="487" />
-      <source>Enter a new name for the file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="500" />
-      <source>Copy File to Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="735" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="501" />
-      <source>The given file exists already (Enter file name only).</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="553" />
-      <source>Get File As</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="567" />
-      <source>Copy File from Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="568" />
-      <source>The given file exists already.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="734" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="722" />
       <source>Save File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="807" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="810" />
       <source>Select Directory</source>
       <translation type="unfinished">Seleziona Directory</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="998" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="831" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1001" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="834" />
       <source>Enter directory name:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="843" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="846" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1053" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="870" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1056" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="873" />
       <source>Do you really want to delete this directory tree?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="881" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="884" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1080" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="908" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1083" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="911" />
       <source>Do you really want to delete this file?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="919" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="922" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="978" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="981" />
       <source>Enter the directory path on the device:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1025" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1028" />
       <source>Do you really want to delete this directory?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1113" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1116" />
       <source>&lt;h3&gt;Filesystem Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1115" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1118" />
       <source>&lt;h4&gt;{0}&lt;/h4&lt;table&gt;&lt;tr&gt;&lt;td&gt;Total Size: &lt;/td&gt;&lt;td align='right'&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Used Size: &lt;/td&gt;&lt;td align='right'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Free Size: &lt;/td&gt;&lt;td align='right'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1128" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1131" />
       <source>Filesystem Information</source>
       <translation type="unfinished" />
     </message>
@@ -49789,17 +49786,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="231" />
       <source>MicroPython Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="288" />
       <source>&lt;h3&gt;The QtSerialPort package is not available.&lt;br/&gt;MicroPython support is deactivated.&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="329" />
       <source>%n supported device(s) detected.</source>
       <translation type="unfinished">
         <numerusform />
@@ -49807,18 +49804,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="343" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="363" />
       <source>No supported devices detected.</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="367" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation type="unfinished">
@@ -49827,70 +49824,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="374" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="437" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="408" />
       <source>Unknown MicroPython Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="409" />
       <source>&lt;p&gt;Detected these unknown serial devices&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please report them together with the board name and a short description to &lt;a href="mailto:{1}"&gt; the eric bug reporting address&lt;/a&gt; if it is a MicroPython board.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="421" />
       <source>{0} (0x{1:04x}/0x{2:04x})</source>
       <comment>description, VId, PId</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="438" />
       <source>Would you like to add them to the list of manually configured devices?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="564" />
       <source>Clear</source>
       <translation type="unfinished">Pulisci</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="569" />
       <source>Copy</source>
       <translation type="unfinished">Copia</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="575" />
       <source>Paste</source>
       <translation type="unfinished">Incolla</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="582" />
       <source>Select All</source>
       <translation type="unfinished">Seleziona tutti</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="608" />
       <source>Press to disconnect the current device</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="613" />
       <source>Press to connect the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="640" />
       <source>No device attached</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="641" />
       <source>Please ensure the device is plugged into your computer and selected.
 
 It must have a version of MicroPython (or CircuitPython) flashed onto it before anything will work.
@@ -49899,328 +49896,318 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="670" />
       <source>Start REPL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="671" />
       <source>&lt;p&gt;The REPL cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1180" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1169" />
       <source>Serial Device Connect</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1170" />
       <source>&lt;p&gt;The device at serial port &lt;b&gt;{0}&lt;/b&gt; does not respond. It may not have a MicroPython firmware flashed.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1186" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1181" />
       <source>&lt;p&gt;Cannot connect to device at serial port &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1237" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1228" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1219" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1239" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1221" />
       <source>Run Script</source>
       <translation type="unfinished">Esegui Script</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1222" />
       <source>There is no editor open. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1231" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1240" />
       <source>&lt;p&gt;Cannot run script.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
-      <source>Open Python File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
-      <source>Python3 Files (*.py);;All Files (*)</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1276" />
+      <source>Start Chart</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1277" />
+      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1292" />
+      <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
-      <source>Start Chart</source>
+      <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1310" />
-      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
-      <source>µPy Chart</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
-      <source>Unsaved Chart Data</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1343" />
       <source>The chart contains unsaved data.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1358" />
       <source>Start File Manager</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1359" />
       <source>&lt;p&gt;The File Manager cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1378" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1414" />
       <source>Downloads</source>
       <translation type="unfinished">Downloads</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1429" />
       <source>Show Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1432" />
       <source>Show Implementation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1440" />
       <source>Synchronize Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1443" />
       <source>Show Device Time</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <source>Show Local Time</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <source>Show Time</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1452" />
+      <source>Show Builtin Modules</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1458" />
+      <source>Compile Python File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1840" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1831" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <source>Compile Current Editor</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1471" />
+      <source>Download Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
-      <source>Show Local Time</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
-      <source>Show Time</source>
+      <source>Show Documentation</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1482" />
+      <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1485" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1849" />
+      <source>Manage Unknown Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1488" />
+      <source>Ignored Serial Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1491" />
-      <source>Compile Python File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1873" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1864" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1495" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1504" />
-      <source>Download Firmware</source>
+      <source>Configure</source>
+      <translation type="unfinished">Configura</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1500" />
+      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1511" />
-      <source>Show Documentation</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
-      <source>Flash UF2 Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
-      <source>Manage Unknown Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
-      <source>Ignored Serial Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
-      <source>Configure</source>
-      <translation type="unfinished">Configura</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
-      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1507" />
+      <source>Device Version Information</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1512" />
+      <source>No version information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1531" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1527" />
+      <source>unknown</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1536" />
+      <source> ({0})</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1552" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1543" />
+      <source>Device Implementation Information</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1544" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1540" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1545" />
-      <source>No version information available.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1564" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1560" />
-      <source>unknown</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1569" />
-      <source> ({0})</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1585" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1576" />
-      <source>Device Implementation Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1577" />
       <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}{2}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1553" />
       <source>No device implementation information available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1593" />
       <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1615" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1623" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1639" />
       <source>Device Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
       <source>Local Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
       <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1693" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
       <source>Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1694" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1718" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1761" />
       <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1787" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished">File Python (*.py);;Tutti i File (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
       <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1806" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50231,16 +50218,6 @@
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to open a file of the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to save the current editor to the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
       <source>Press to run the current script on the selected device</source>
       <translation type="unfinished" />
     </message>
@@ -50263,194 +50240,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="86" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="87" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="89" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="188" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="190" />
       <source>BBC micro:bit/Calliope Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="401" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="389" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="372" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="191" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="403" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="391" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="374" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="193" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="195" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="197" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="198" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="200" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="202" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="491" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="204" />
       <source>Save Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="205" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="207" />
       <source>Save the current script to the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="210" />
       <source>Save Script as 'main.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="211" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="213" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="217" />
       <source>Reset {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="355" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="346" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="332" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="315" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="302" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="282" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="357" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="334" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="317" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="304" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="284" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="285" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed and plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;See the &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="303" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="305" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MICROBIT is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="316" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="318" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed an plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="333" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="335" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MINI is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="350" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="356" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="358" />
       <source>There are multiple devices ready for flashing. Please make sure, that only one device is prepared.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="373" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="375" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="390" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="392" />
       <source>&lt;p&gt;The BBC micro:bit generation cannot be determined. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="402" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="404" />
       <source>&lt;p&gt;The firmware URL for the device type &lt;b&gt;{0}&lt;/b&gt; is not known. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="429" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="431" />
       <source>unknown</source>
       <translation type="unfinished">sconosciuto</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="447" />
       <source>Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="450" />
       <source>&lt;h4&gt;{0} Version Information&lt;br/&gt;(BBC micro:bit v{1})&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="459" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="461" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="463" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="523" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="487" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="525" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
       <source>Save Script as '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="498" />
       <source>The current editor does not contain a Python script. Write it anyway?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="507" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="509" />
       <source>The script is empty. Aborting.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="518" />
       <source>Enter a file name on the device:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="539" />
       <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" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="597" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="599" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="629" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="616" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="601" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="631" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="618" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="603" />
       <source>DAPLink Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="608" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="610" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="612" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="614" />
       <source>CircuitPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="625" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="627" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -62450,131 +62427,131 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="82" />
       <source>PyBoard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="199" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="197" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="200" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="198" />
       <source>Python files for PyBoard can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="232" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="230" />
       <source>PyBoard Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="438" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="235" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="436" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="233" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="239" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="237" />
       <source>Activate Bootloader</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="242" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="240" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="421" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="244" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="249" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="247" />
       <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="306" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="309" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="307" />
       <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="329" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="327" />
       <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="339" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="337" />
       <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="343" />
       <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="346" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="359" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="357" />
       <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="365" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="420" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="418" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="410" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="439" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="437" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="466" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="464" />
       <source>unknown</source>
       <translation type="unfinished">sconosciuto</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="472" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="470" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="480" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="478" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="484" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="482" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67701,78 +67678,78 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="70" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="71" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="126" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="127" />
       <source>RP2040 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="198" />
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="129" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="133" />
-      <source>Activate Bootloader</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="136" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/RP2040Devices.py" line="199" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="130" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="134" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="137" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="200" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="231" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="232" />
       <source>unknown</source>
       <translation type="unfinished">sconosciuto</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="238" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="247" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="255" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="256" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="259" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="260" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="282" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="283" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="286" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="287" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="289" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="290" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="293" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="294" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -81745,74 +81722,74 @@
   <context>
     <name>TeensyDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="69" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="70" />
       <source>Teensy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="143" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="144" />
       <source>Teensy Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="184" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="146" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="150" />
-      <source>MicroPython Flash Instructions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="240" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="153" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="156" />
-      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="185" />
-      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="212" />
-      <source>unknown</source>
-      <translation type="unfinished">sconosciuto</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="218" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="226" />
-      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="230" />
-      <source>MicroPython Version</source>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="147" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="151" />
+      <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="241" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="154" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="157" />
+      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="186" />
+      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="213" />
+      <source>unknown</source>
+      <translation type="unfinished">sconosciuto</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="219" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="227" />
+      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="231" />
+      <source>MicroPython Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="242" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 are flashed using the 'Teensy Loader' application. Make sure you downloaded the MicroPython or CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="260" />
-      <source>Start 'Teensy Loader'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="261" />
+      <source>Start 'Teensy Loader'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="262" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_pt.ts	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/i18n/eric7_pt.ts	Tue Feb 14 18:10:30 2023 +0100
@@ -1804,50 +1804,55 @@
   <context>
     <name>BaseDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="92" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="95" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="93" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="96" />
       <source>&lt;p&gt;The device data is not available. Try to connect to the device again. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="125" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="140" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="135" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="150" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="154" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="169" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="173" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="188" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="192" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="207" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="237" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="252" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="238" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="253" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="399" />
+      <source>Detected an error without indications.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>BlackConfigurationDialog</name>
@@ -3838,121 +3843,121 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="89" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="87" />
       <source>CircuitPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="213" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="214" />
       <source>Python files for CircuitPython can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="244" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="250" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="248" />
       <source>CircuitPython Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="253" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="251" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="262" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="260" />
       <source>CircuitPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="344" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="275" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="266" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="342" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="273" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="264" />
       <source>Flash CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="269" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="267" />
       <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="442" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="304" />
-      <source>Install Library Files</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="440" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="302" />
+      <source>Install Library Files</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="306" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="314" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="312" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="343" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 do not support the UF2 bootloader. Please use the 'Teensy Loader' application to flash CircuitPython. Make sure you downloaded the CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="365" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="363" />
       <source>Start 'Teensy Loader'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="366" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="364" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="395" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="393" />
       <source>unknown</source>
       <translation type="unfinished">desconhecido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="414" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="412" />
       <source>&lt;h4&gt;CircuitPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="422" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="420" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="426" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="424" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="446" />
       <source>The device volume "&lt;b&gt;{0}&lt;/b&gt;" is not available. Ensure it is mounted properly and try again.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="474" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="506" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="504" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="510" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="508" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -20021,66 +20026,6 @@
   <context>
     <name>EspBackupRestoreFirmwareDialog</name>
     <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware Size:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the firmware size</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to auto detect. size.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.py" line="107" />
       <source>Firmware Files (*.img);;All Files (*)</source>
       <translation type="unfinished" />
@@ -20095,143 +20040,203 @@
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware Size:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the firmware size</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to auto detect. size.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="72" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="73" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="128" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="129" />
       <source>ESP32 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="405" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="131" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="132" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="222" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="136" />
+      <source>Erase Flash</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="259" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="139" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="296" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="143" />
+      <source>Flash Additional Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="332" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="147" />
+      <source>Backup Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="150" />
+      <source>Restore Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="154" />
+      <source>Show Chip ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="157" />
+      <source>Show Flash ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="160" />
+      <source>Show MAC Address</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="164" />
+      <source>Reset Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="167" />
+      <source>Install 'esptool.py'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="209" />
+      <source>Shall the flash of the selected device really be erased?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="221" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="207" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="135" />
-      <source>Erase Flash</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="138" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="142" />
-      <source>Flash Additional Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="146" />
-      <source>Backup Firmware</source>
+      <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="384" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="149" />
-      <source>Restore Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="153" />
-      <source>Show Chip ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="156" />
-      <source>Show Flash ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="159" />
-      <source>Show MAC Address</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="163" />
-      <source>Reset Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="166" />
-      <source>Install 'esptool.py'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
-      <source>Shall the flash of the selected device really be erased?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="220" />
-      <source>'esptool erase_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="383" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="294" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="257" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
       <source>'esptool read_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="407" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="434" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="435" />
       <source>unknown</source>
       <translation type="unfinished">desconhecido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="446" />
       <source>&lt;h4&gt;{0} Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="453" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="454" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="458" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -20239,80 +20244,80 @@
   <context>
     <name>EspFirmwareSelectionDialog</name>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Address:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Enter the flash addres in the hexadecimal form</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware is CircuitPython</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.py" line="68" />
       <source>Firmware Files (*.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Address:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the flash addres in the hexadecimal form</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware is CircuitPython</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -22065,12 +22070,12 @@
   <context>
     <name>GenericMicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="196" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="194" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="197" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="195" />
       <source>Python files for this generic board can be edited in place, if the device volume is locally available. A volume named '{0}' was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
@@ -49094,14 +49099,6 @@
     </message>
   </context>
   <context>
-    <name>MicroPythonCommandsInterface</name>
-    <message>
-      <location filename="../MicroPython/MicroPythonCommandsInterface.py" line="322" />
-      <source>Detected an error without indications.</source>
-      <translation type="unfinished" />
-    </message>
-  </context>
-  <context>
     <name>MicroPythonDevice</name>
     <message>
       <location filename="../MicroPython/Devices/__init__.py" line="260" />
@@ -49138,35 +49135,35 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="386" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="306" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="384" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="304" />
       <source>{1}Adding &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="450" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="355" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="446" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="353" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a directory and destination &lt;b&gt;{1}&lt;/b&gt; is a file. Ignoring it.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="459" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="364" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="455" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="362" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a file and destination &lt;b&gt;{1}&lt;/b&gt; is a directory. Ignoring it.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="373" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="371" />
       <source>Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="414" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="412" />
       <source>{1}Removing &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="468" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="464" />
       <source>{1}Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
@@ -49270,171 +49267,171 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="977" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="806" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="980" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="809" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="145" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="124" />
+      <source>Change Directory</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1000" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="845" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="833" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
-      <source>Change Directory</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="997" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="842" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="830" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="151" />
+      <source>Create Directory</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1055" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="883" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="872" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
-      <source>Create Directory</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1052" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="880" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="869" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="158" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="133" />
       <source>Delete Directory Tree</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1079" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="918" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="907" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1082" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="921" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="910" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="159" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="134" />
+      <source>Delete File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="162" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="137" />
-      <source>Delete File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="165" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="140" />
       <source>Show Hidden Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1024" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1027" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="152" />
       <source>Delete Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="172" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="169" />
       <source>Show Filesystem Info</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="219" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="216" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="220" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="217" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="486" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="483" />
       <source>Put File As</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="724" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="551" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="484" />
+      <source>Enter a new name for the file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="497" />
+      <source>Copy File to Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="742" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="498" />
+      <source>The given file exists already (Enter file name only).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="550" />
+      <source>Get File As</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="564" />
+      <source>Copy File from Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="565" />
+      <source>The given file exists already.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="741" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="554" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="487" />
-      <source>Enter a new name for the file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="500" />
-      <source>Copy File to Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="735" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="501" />
-      <source>The given file exists already (Enter file name only).</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="553" />
-      <source>Get File As</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="567" />
-      <source>Copy File from Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="568" />
-      <source>The given file exists already.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="734" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="722" />
       <source>Save File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="807" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="810" />
       <source>Select Directory</source>
       <translation type="unfinished">Selecionar Diretório</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="998" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="831" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1001" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="834" />
       <source>Enter directory name:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="843" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="846" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1053" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="870" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1056" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="873" />
       <source>Do you really want to delete this directory tree?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="881" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="884" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1080" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="908" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1083" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="911" />
       <source>Do you really want to delete this file?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="919" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="922" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="978" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="981" />
       <source>Enter the directory path on the device:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1025" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1028" />
       <source>Do you really want to delete this directory?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1113" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1116" />
       <source>&lt;h3&gt;Filesystem Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1115" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1118" />
       <source>&lt;h4&gt;{0}&lt;/h4&lt;table&gt;&lt;tr&gt;&lt;td&gt;Total Size: &lt;/td&gt;&lt;td align='right'&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Used Size: &lt;/td&gt;&lt;td align='right'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Free Size: &lt;/td&gt;&lt;td align='right'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1128" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1131" />
       <source>Filesystem Information</source>
       <translation type="unfinished" />
     </message>
@@ -49779,17 +49776,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="231" />
       <source>MicroPython Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="288" />
       <source>&lt;h3&gt;The QtSerialPort package is not available.&lt;br/&gt;MicroPython support is deactivated.&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="329" />
       <source>%n supported device(s) detected.</source>
       <translation type="unfinished">
         <numerusform />
@@ -49797,18 +49794,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="343" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="363" />
       <source>No supported devices detected.</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="367" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation type="unfinished">
@@ -49817,70 +49814,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="374" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="437" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="408" />
       <source>Unknown MicroPython Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="409" />
       <source>&lt;p&gt;Detected these unknown serial devices&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please report them together with the board name and a short description to &lt;a href="mailto:{1}"&gt; the eric bug reporting address&lt;/a&gt; if it is a MicroPython board.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="421" />
       <source>{0} (0x{1:04x}/0x{2:04x})</source>
       <comment>description, VId, PId</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="438" />
       <source>Would you like to add them to the list of manually configured devices?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="564" />
       <source>Clear</source>
       <translation type="unfinished">Limpar</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="569" />
       <source>Copy</source>
       <translation type="unfinished">Copiar</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="575" />
       <source>Paste</source>
       <translation type="unfinished">Colar</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="582" />
       <source>Select All</source>
       <translation type="unfinished">Selecionar Tudo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="608" />
       <source>Press to disconnect the current device</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="613" />
       <source>Press to connect the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="640" />
       <source>No device attached</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="641" />
       <source>Please ensure the device is plugged into your computer and selected.
 
 It must have a version of MicroPython (or CircuitPython) flashed onto it before anything will work.
@@ -49889,328 +49886,318 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="670" />
       <source>Start REPL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="671" />
       <source>&lt;p&gt;The REPL cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1180" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1169" />
       <source>Serial Device Connect</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1170" />
       <source>&lt;p&gt;The device at serial port &lt;b&gt;{0}&lt;/b&gt; does not respond. It may not have a MicroPython firmware flashed.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1186" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1181" />
       <source>&lt;p&gt;Cannot connect to device at serial port &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1237" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1228" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1219" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1239" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1221" />
       <source>Run Script</source>
       <translation type="unfinished">Executar Script</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1222" />
       <source>There is no editor open. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1231" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1240" />
       <source>&lt;p&gt;Cannot run script.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
-      <source>Open Python File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
-      <source>Python3 Files (*.py);;All Files (*)</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1276" />
+      <source>Start Chart</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1277" />
+      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1292" />
+      <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
-      <source>Start Chart</source>
+      <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1310" />
-      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
-      <source>µPy Chart</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
-      <source>Unsaved Chart Data</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1343" />
       <source>The chart contains unsaved data.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1358" />
       <source>Start File Manager</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1359" />
       <source>&lt;p&gt;The File Manager cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1378" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1414" />
       <source>Downloads</source>
       <translation type="unfinished">Descargas</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1429" />
       <source>Show Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1432" />
       <source>Show Implementation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1440" />
       <source>Synchronize Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1443" />
       <source>Show Device Time</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <source>Show Local Time</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <source>Show Time</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1452" />
+      <source>Show Builtin Modules</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1458" />
+      <source>Compile Python File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1840" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1831" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <source>Compile Current Editor</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1471" />
+      <source>Download Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
-      <source>Show Local Time</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
-      <source>Show Time</source>
+      <source>Show Documentation</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1482" />
+      <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1485" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1849" />
+      <source>Manage Unknown Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1488" />
+      <source>Ignored Serial Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1491" />
-      <source>Compile Python File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1873" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1864" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1495" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1504" />
-      <source>Download Firmware</source>
+      <source>Configure</source>
+      <translation type="unfinished">Configurar</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1500" />
+      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1511" />
-      <source>Show Documentation</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
-      <source>Flash UF2 Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
-      <source>Manage Unknown Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
-      <source>Ignored Serial Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
-      <source>Configure</source>
-      <translation type="unfinished">Configurar</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
-      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1507" />
+      <source>Device Version Information</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1512" />
+      <source>No version information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1531" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1527" />
+      <source>unknown</source>
+      <translation type="unfinished">desconhecido</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1536" />
+      <source> ({0})</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1552" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1543" />
+      <source>Device Implementation Information</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1544" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1540" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1545" />
-      <source>No version information available.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1564" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1560" />
-      <source>unknown</source>
-      <translation type="unfinished">desconhecido</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1569" />
-      <source> ({0})</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1585" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1576" />
-      <source>Device Implementation Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1577" />
       <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}{2}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1553" />
       <source>No device implementation information available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1593" />
       <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1615" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1623" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1639" />
       <source>Device Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
       <source>Local Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
       <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1693" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
       <source>Date and Time</source>
       <translation type="unfinished">Data e Hora</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1694" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1718" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1761" />
       <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1787" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished">Ficheiros Python (*.py);;Ficheiros Todos (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
       <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1806" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50221,16 +50208,6 @@
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to open a file of the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to save the current editor to the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
       <source>Press to run the current script on the selected device</source>
       <translation type="unfinished" />
     </message>
@@ -50253,194 +50230,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="86" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="87" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="89" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="188" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="190" />
       <source>BBC micro:bit/Calliope Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="401" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="389" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="372" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="191" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="403" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="391" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="374" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="193" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="195" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="197" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="198" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="200" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="202" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="491" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="204" />
       <source>Save Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="205" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="207" />
       <source>Save the current script to the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="210" />
       <source>Save Script as 'main.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="211" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="213" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="217" />
       <source>Reset {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="355" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="346" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="332" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="315" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="302" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="282" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="357" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="334" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="317" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="304" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="284" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="285" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed and plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;See the &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="303" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="305" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MICROBIT is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="316" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="318" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed an plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="333" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="335" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MINI is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="350" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="356" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="358" />
       <source>There are multiple devices ready for flashing. Please make sure, that only one device is prepared.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="373" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="375" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="390" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="392" />
       <source>&lt;p&gt;The BBC micro:bit generation cannot be determined. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="402" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="404" />
       <source>&lt;p&gt;The firmware URL for the device type &lt;b&gt;{0}&lt;/b&gt; is not known. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="429" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="431" />
       <source>unknown</source>
       <translation type="unfinished">desconhecido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="447" />
       <source>Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="450" />
       <source>&lt;h4&gt;{0} Version Information&lt;br/&gt;(BBC micro:bit v{1})&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="459" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="461" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="463" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="523" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="487" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="525" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
       <source>Save Script as '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="498" />
       <source>The current editor does not contain a Python script. Write it anyway?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="507" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="509" />
       <source>The script is empty. Aborting.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="518" />
       <source>Enter a file name on the device:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="539" />
       <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" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="597" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="599" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="629" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="616" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="601" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="631" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="618" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="603" />
       <source>DAPLink Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="608" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="610" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="612" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="614" />
       <source>CircuitPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="625" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="627" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -62397,131 +62374,131 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="82" />
       <source>PyBoard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="199" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="197" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="200" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="198" />
       <source>Python files for PyBoard can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="232" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="230" />
       <source>PyBoard Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="438" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="235" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="436" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="233" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="239" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="237" />
       <source>Activate Bootloader</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="242" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="240" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="421" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="244" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="249" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="247" />
       <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="306" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="309" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="307" />
       <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="329" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="327" />
       <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="339" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="337" />
       <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="343" />
       <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="346" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="359" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="357" />
       <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="365" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="420" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="418" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="410" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="439" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="437" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="466" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="464" />
       <source>unknown</source>
       <translation type="unfinished">desconhecido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="472" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="470" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="480" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="478" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="484" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="482" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67563,78 +67540,78 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="70" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="71" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="126" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="127" />
       <source>RP2040 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="198" />
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="129" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="133" />
-      <source>Activate Bootloader</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="136" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/RP2040Devices.py" line="199" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="130" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="134" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="137" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="200" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="231" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="232" />
       <source>unknown</source>
       <translation type="unfinished">desconhecido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="238" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="247" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="255" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="256" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="259" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="260" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="282" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="283" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="286" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="287" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="289" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="290" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="293" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="294" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -81551,74 +81528,74 @@
   <context>
     <name>TeensyDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="69" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="70" />
       <source>Teensy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="143" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="144" />
       <source>Teensy Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="184" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="146" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="150" />
-      <source>MicroPython Flash Instructions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="240" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="153" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="156" />
-      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="185" />
-      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="212" />
-      <source>unknown</source>
-      <translation type="unfinished">desconhecido</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="218" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="226" />
-      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="230" />
-      <source>MicroPython Version</source>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="147" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="151" />
+      <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="241" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="154" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="157" />
+      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="186" />
+      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="213" />
+      <source>unknown</source>
+      <translation type="unfinished">desconhecido</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="219" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="227" />
+      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="231" />
+      <source>MicroPython Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="242" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 are flashed using the 'Teensy Loader' application. Make sure you downloaded the MicroPython or CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="260" />
-      <source>Start 'Teensy Loader'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="261" />
+      <source>Start 'Teensy Loader'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="262" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_ru.ts	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/i18n/eric7_ru.ts	Tue Feb 14 18:10:30 2023 +0100
@@ -1730,50 +1730,55 @@
   <context>
     <name>BaseDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="92" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="95" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="93" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="96" />
       <source>&lt;p&gt;The device data is not available. Try to connect to the device again. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="125" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="140" />
       <source>Unsupported Device</source>
       <translation type="unfinished">Неподдерживаемое устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="135" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="150" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished">REPL не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="154" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="169" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished">Плоттер не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="173" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="188" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished">Выполнение скриптов не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="192" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="207" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished">Менеджер файлов не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="237" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="252" />
       <source>Select Device Directory</source>
       <translation type="unfinished">Выберите директорию устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="238" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="253" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished">Выберите директорию для подсоединенного устройства:</translation>
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="399" />
+      <source>Detected an error without indications.</source>
+      <translation type="unfinished">Обнаружена неиндексированная ошибка.</translation>
+    </message>
   </context>
   <context>
     <name>BlackConfigurationDialog</name>
@@ -3769,121 +3774,121 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="89" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="87" />
       <source>CircuitPython</source>
       <translation>CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="213" />
       <source>Workspace Directory</source>
       <translation>Директория рабочей области</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="214" />
       <source>Python files for CircuitPython can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation>Файлы Python для CircuitPython можно редактировать по месту, если том устройства доступен локально . Такой том найти не удалось. Редактирование по месту будет  недоступно.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="244" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="250" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="248" />
       <source>CircuitPython Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="253" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="251" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="262" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="260" />
       <source>CircuitPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="344" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="275" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="266" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="342" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="273" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="264" />
       <source>Flash CircuitPython Firmware</source>
       <translation>Прошить микрокод CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="269" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="267" />
       <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="442" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="304" />
-      <source>Install Library Files</source>
-      <translation>Установить файлы библиотек</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="440" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="302" />
+      <source>Install Library Files</source>
+      <translation>Установить файлы библиотек</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="306" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="314" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="312" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="343" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 do not support the UF2 bootloader. Please use the 'Teensy Loader' application to flash CircuitPython. Make sure you downloaded the CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Teensy 4.0 и Teensy 4.1 не поддерживают UF2 загрузчик. Для прошивки CircuitPython используйте приложение 'Teensy Loader'. Убедитесь, что вы скачали hex-файл CircuitPython.&lt;/p&gt;&lt;p&gt;Подробности смотрите на &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="365" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="363" />
       <source>Start 'Teensy Loader'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="366" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="364" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="395" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="393" />
       <source>unknown</source>
       <translation type="unfinished">неизвестный</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="414" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="412" />
       <source>&lt;h4&gt;CircuitPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="422" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="420" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="426" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="424" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="446" />
       <source>The device volume "&lt;b&gt;{0}&lt;/b&gt;" is not available. Ensure it is mounted properly and try again.</source>
       <translation>Том устройства "&lt;b&gt;{0}&lt;/b&gt;" недоступен. Убедитесь, что он подмонтирован правильно и попробуйте снова.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="474" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation>Компилированные файлы Python (*.mpy);;Файлы Python (*.py);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="506" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="504" />
       <source>CircuitPython Firmware</source>
       <translation>Микрокод CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="510" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="508" />
       <source>CircuitPython Libraries</source>
       <translation>Библиотеки CircuitPython</translation>
     </message>
@@ -19931,66 +19936,6 @@
   <context>
     <name>EspBackupRestoreFirmwareDialog</name>
     <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation>Тип ESP-чипа:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation>Выберите тип ESP-чипа</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware Size:</source>
-      <translation>Размер микрокода:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the firmware size</source>
-      <translation>Выберите размер микрокода</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to auto detect. size.</source>
-      <translation>Оставьте пустым для автоопределения размера.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation>Скорость передачи:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation>Выберите скорость передачи для прошивки (по умолчанию: 115.200 бит/с)</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation>Режим прошивки:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation>Выберите режим прошивки</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation>Оставьте пустым для режима по умолчанию.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation>Микрокод:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation>Введите путь к файлу микрокода</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.py" line="107" />
       <source>Firmware Files (*.img);;All Files (*)</source>
       <translation>Файлы микрокода (*.img);;Все файлы (*)</translation>
@@ -20005,143 +19950,203 @@
       <source>Restore Firmware</source>
       <translation>Восстановить микрокод</translation>
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation>Тип ESP-чипа:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation>Выберите тип ESP-чипа</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware Size:</source>
+      <translation>Размер микрокода:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the firmware size</source>
+      <translation>Выберите размер микрокода</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to auto detect. size.</source>
+      <translation>Оставьте пустым для автоопределения размера.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation>Скорость передачи:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation>Выберите скорость передачи для прошивки (по умолчанию: 115.200 бит/с)</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation>Режим прошивки:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation>Выберите режим прошивки</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation>Оставьте пустым для режима по умолчанию.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation>Микрокод:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation>Введите путь к файлу микрокода</translation>
+    </message>
   </context>
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="72" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="73" />
       <source>ESP8266, ESP32</source>
       <translation>ESP8266, ESP32</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="128" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="129" />
       <source>ESP32 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="405" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="131" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="132" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="222" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="136" />
+      <source>Erase Flash</source>
+      <translation>Очистить Flash-память</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="259" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="139" />
+      <source>Flash MicroPython Firmware</source>
+      <translation>Прошить микрокод MicroPython</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="296" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="143" />
+      <source>Flash Additional Firmware</source>
+      <translation>Прошить дополнительный микрокод</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="332" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="147" />
+      <source>Backup Firmware</source>
+      <translation>Резервировать микрокод</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="150" />
+      <source>Restore Firmware</source>
+      <translation>Восстановить микрокод</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="154" />
+      <source>Show Chip ID</source>
+      <translation>Показать ID чипа</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="157" />
+      <source>Show Flash ID</source>
+      <translation>Показать ID Flash</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="160" />
+      <source>Show MAC Address</source>
+      <translation>Показать MAC-адрес</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="164" />
+      <source>Reset Device</source>
+      <translation>Сбросить устройство</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="167" />
+      <source>Install 'esptool.py'</source>
+      <translation>Установить 'esptool.py'</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="209" />
+      <source>Shall the flash of the selected device really be erased?</source>
+      <translation>Действительно ли flash-память выбранного устройства должна быть очищена?</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="221" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="207" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="135" />
-      <source>Erase Flash</source>
-      <translation>Очистить Flash-память</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="138" />
-      <source>Flash MicroPython Firmware</source>
-      <translation>Прошить микрокод MicroPython</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="142" />
-      <source>Flash Additional Firmware</source>
-      <translation>Прошить дополнительный микрокод</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="146" />
-      <source>Backup Firmware</source>
-      <translation>Резервировать микрокод</translation>
+      <source>'esptool erase_flash' Output</source>
+      <translation>Вывод команды 'esptool erase_flash'</translation>
     </message>
     <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="384" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="149" />
-      <source>Restore Firmware</source>
-      <translation>Восстановить микрокод</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="153" />
-      <source>Show Chip ID</source>
-      <translation>Показать ID чипа</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="156" />
-      <source>Show Flash ID</source>
-      <translation>Показать ID Flash</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="159" />
-      <source>Show MAC Address</source>
-      <translation>Показать MAC-адрес</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="163" />
-      <source>Reset Device</source>
-      <translation>Сбросить устройство</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="166" />
-      <source>Install 'esptool.py'</source>
-      <translation>Установить 'esptool.py'</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
-      <source>Shall the flash of the selected device really be erased?</source>
-      <translation>Действительно ли flash-память выбранного устройства должна быть очищена?</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="220" />
-      <source>'esptool erase_flash' Output</source>
-      <translation>Вывод команды 'esptool erase_flash'</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="383" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="294" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="257" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
       <source>'esptool write_flash' Output</source>
       <translation>Вывод команды 'esptool write_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
       <source>'esptool read_flash' Output</source>
       <translation>Вывод команды 'esptool read_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="407" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="434" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="435" />
       <source>unknown</source>
       <translation type="unfinished">неизвестный</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="446" />
       <source>&lt;h4&gt;{0} Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="453" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="454" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="458" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
       <source>'esptool chip_id' Output</source>
       <translation>Вывод команды 'esptool chip_id'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
       <source>'esptool flash_id' Output</source>
       <translation>Вывод команды 'esptool flash_id'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
       <source>'esptool read_mac' Output</source>
       <translation>Вывод команды 'esptool read_mac'</translation>
     </message>
@@ -20149,80 +20154,80 @@
   <context>
     <name>EspFirmwareSelectionDialog</name>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash MicroPython Firmware</source>
-      <translation>Прошить микрокод MicroPython</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation>Скорость передачи:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation>Оставьте пустым для режима по умолчанию.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Address:</source>
-      <translation>Адрес:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Enter the flash addres in the hexadecimal form</source>
-      <translation>Введите адрес flash-памяти в шестнадцатеричной форме</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation>Выберите режим прошивки</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation>Режим прошивки:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation>Микрокод:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation>Выберите тип ESP-чипа</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation>Выберите скорость передачи для прошивки (по умолчанию: 115.200 бит/с)</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation>Введите путь к файлу микрокода</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation>Тип ESP-чипа:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware is CircuitPython</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.py" line="68" />
       <source>Firmware Files (*.bin);;All Files (*)</source>
       <translation>Файлы микрокода (* .bin);;Все файлы (*)</translation>
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash MicroPython Firmware</source>
+      <translation>Прошить микрокод MicroPython</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation>Скорость передачи:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation>Оставьте пустым для режима по умолчанию.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Address:</source>
+      <translation>Адрес:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the flash addres in the hexadecimal form</source>
+      <translation>Введите адрес flash-памяти в шестнадцатеричной форме</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation>Выберите режим прошивки</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation>Режим прошивки:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation>Микрокод:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation>Выберите тип ESP-чипа</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation>Выберите скорость передачи для прошивки (по умолчанию: 115.200 бит/с)</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation>Введите путь к файлу микрокода</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation>Тип ESP-чипа:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware is CircuitPython</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -21924,12 +21929,12 @@
   <context>
     <name>GenericMicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="196" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="194" />
       <source>Workspace Directory</source>
       <translation>Директория рабочей области</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="197" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="195" />
       <source>Python files for this generic board can be edited in place, if the device volume is locally available. A volume named '{0}' was not found. In place editing will not be available.</source>
       <translation>Файлы Python для этого типа плат можно редактировать по месту, если том устройства доступен локально. Том с именем "{0}" найти не удалось. Редактирование по месту будет недоступно.</translation>
     </message>
@@ -49008,9 +49013,8 @@
   <context>
     <name>MicroPythonCommandsInterface</name>
     <message>
-      <location filename="../MicroPython/MicroPythonCommandsInterface.py" line="322" />
       <source>Detected an error without indications.</source>
-      <translation>Обнаружена неиндексированная ошибка.</translation>
+      <translation type="vanished">Обнаружена неиндексированная ошибка.</translation>
     </message>
   </context>
   <context>
@@ -49078,35 +49082,35 @@
       <translation>{1}Выполнена синхронизация &lt;b&gt;{0}&lt;/b&gt;.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="386" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="306" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="384" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="304" />
       <source>{1}Adding &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>{1}Добавление &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="450" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="355" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="446" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="353" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a directory and destination &lt;b&gt;{1}&lt;/b&gt; is a file. Ignoring it.</source>
       <translation>Источник &lt;b&gt;{0}&lt;/b&gt; является директорией, а назначение &lt;b&gt;{1}&lt;/b&gt; является файлом. Игнорировать.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="459" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="364" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="455" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="362" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a file and destination &lt;b&gt;{1}&lt;/b&gt; is a directory. Ignoring it.</source>
       <translation>Источник &lt;b&gt;{0}&lt;/b&gt; является файлом, а назначение &lt;b&gt;{1}&lt;/b&gt; является директорией. Игнорировать.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="373" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="371" />
       <source>Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>Обновление &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="414" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="412" />
       <source>{1}Removing &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>{1}Удаление &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="468" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="464" />
       <source>{1}Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation>{1}Обновление &lt;b&gt;{0}&lt;/b&gt;...</translation>
     </message>
@@ -49210,171 +49214,171 @@
       <translation>Перейти в директорию рабочей области устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="977" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="806" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="980" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="809" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="145" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="124" />
       <source>Change Directory</source>
       <translation>Изменить директорию</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="997" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="842" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="830" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="151" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1000" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="845" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="833" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
       <source>Create Directory</source>
       <translation>Создать директорию</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1052" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="880" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="869" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="158" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="133" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1055" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="883" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="872" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
       <source>Delete Directory Tree</source>
       <translation>Удалить дерево директорий</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1079" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="918" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="907" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1082" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="921" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="910" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="159" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="134" />
+      <source>Delete File</source>
+      <translation>Удалить файл</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="162" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="137" />
-      <source>Delete File</source>
-      <translation>Удалить файл</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="165" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="140" />
       <source>Show Hidden Files</source>
       <translation>Показывать скрытые файлы</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1024" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1027" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="152" />
       <source>Delete Directory</source>
       <translation>Удалить директорию</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="172" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="169" />
       <source>Show Filesystem Info</source>
       <translation>Показать информацию о файловой системе</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="219" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="216" />
       <source>Error handling device</source>
       <translation>Ошибка при работе с устройством</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="220" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="217" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Произошла ошибка при работе с подключаемым устройством.&lt;/p&gt;&lt;p&gt;Метод: {0}&lt;/p&gt;&lt;p&gt;Сообщение: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="486" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="483" />
       <source>Put File As</source>
       <translation>Поместить файл как</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="554" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="487" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="724" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="551" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="484" />
       <source>Enter a new name for the file</source>
       <translation>Введите новое имя для файла</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="500" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="497" />
       <source>Copy File to Device</source>
       <translation>Копировать файл на устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="735" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="501" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="742" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="498" />
       <source>The given file exists already (Enter file name only).</source>
       <translation>Заданный файл уже существует (введите только имя файла).</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="553" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="550" />
       <source>Get File As</source>
       <translation>Получить файл как</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="567" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="564" />
       <source>Copy File from Device</source>
       <translation>Копировать файл из устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="568" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="565" />
       <source>The given file exists already.</source>
       <translation>Заданный файл уже существует.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="734" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="722" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="741" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
       <source>Save File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="807" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="810" />
       <source>Select Directory</source>
       <translation>Выберите директорию</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="998" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="831" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1001" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="834" />
       <source>Enter directory name:</source>
       <translation>Введите имя директории:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="843" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="846" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Не удается создать директорию {0}.&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1053" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="870" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1056" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="873" />
       <source>Do you really want to delete this directory tree?</source>
       <translation>Вы действительно хотите удалить это дерево директорий?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="881" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="884" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Не удается удалить директорию &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1080" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="908" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1083" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="911" />
       <source>Do you really want to delete this file?</source>
       <translation>Вы действительно хотите удалить этот файл?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="919" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="922" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Не удается удалить файл &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;Причина: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="978" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="981" />
       <source>Enter the directory path on the device:</source>
       <translation>Введите путь к директории на устройстве:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1025" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1028" />
       <source>Do you really want to delete this directory?</source>
       <translation>Вы действительно хотите удалить эту директорию?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1113" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1116" />
       <source>&lt;h3&gt;Filesystem Information&lt;/h3&gt;</source>
       <translation>&lt;h3&gt;Информация о файловой системе&lt;/h3&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1115" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1118" />
       <source>&lt;h4&gt;{0}&lt;/h4&lt;table&gt;&lt;tr&gt;&lt;td&gt;Total Size: &lt;/td&gt;&lt;td align='right'&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Used Size: &lt;/td&gt;&lt;td align='right'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Free Size: &lt;/td&gt;&lt;td align='right'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;td&gt;Общий объем: &lt;/td&gt;&lt;td align='right'&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Используемый объем: &lt;/td&gt;&lt;td align='right'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Свободный объем: &lt;/td&gt;&lt;td align='right'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1128" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1131" />
       <source>Filesystem Information</source>
       <translation>Информация о файловой системе</translation>
     </message>
@@ -49719,17 +49723,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="231" />
       <source>MicroPython Menu</source>
       <translation>Меню MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="288" />
       <source>&lt;h3&gt;The QtSerialPort package is not available.&lt;br/&gt;MicroPython support is deactivated.&lt;/h3&gt;</source>
       <translation>&lt;h3&gt;Пакет QtSerialPort недоступен.&lt;br/&gt;Поддержка MicroPython деактивирована.&lt;/h3&gt;</translation>
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="329" />
       <source>%n supported device(s) detected.</source>
       <translation>
         <numerusform>Обнаружено %n поддерживаемое устройство.</numerusform>
@@ -49738,18 +49742,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="343" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation>{0} - {1} ({2})</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="363" />
       <source>No supported devices detected.</source>
       <translation>Не обнаружены поддерживаемые устройства.</translation>
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="367" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation>
@@ -49762,70 +49766,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="374" />
       <source>Manual Selection</source>
       <translation>Ручной выбор</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="437" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="408" />
       <source>Unknown MicroPython Device</source>
       <translation>Неизвестное устройство MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="409" />
       <source>&lt;p&gt;Detected these unknown serial devices&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please report them together with the board name and a short description to &lt;a href="mailto:{1}"&gt; the eric bug reporting address&lt;/a&gt; if it is a MicroPython board.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Обнаружены следующие неизвестные последовательные устройства&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Если это плата MicroPython, то сообщите о ней вместе с названием платы и кратким описанием по адресу &lt;a href="mailto:{1}"&gt; the eric bug reporting&lt;/a&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="421" />
       <source>{0} (0x{1:04x}/0x{2:04x})</source>
       <comment>description, VId, PId</comment>
       <translation>{0} (0x{1:04x}/0x{2:04x})</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="438" />
       <source>Would you like to add them to the list of manually configured devices?</source>
       <translation>Хотите добавить их в список вручную настроенных устройств?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="564" />
       <source>Clear</source>
       <translation>Очистить</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="569" />
       <source>Copy</source>
       <translation>Копировать</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="575" />
       <source>Paste</source>
       <translation>Вставить</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="582" />
       <source>Select All</source>
       <translation>Выделить всё</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="608" />
       <source>Press to disconnect the current device</source>
       <translation>Отключить выбранное устройство</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="613" />
       <source>Press to connect the selected device</source>
       <translation>Подключить выбранное устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="640" />
       <source>No device attached</source>
       <translation>Устройство не подключено</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="641" />
       <source>Please ensure the device is plugged into your computer and selected.
 
 It must have a version of MicroPython (or CircuitPython) flashed onto it before anything will work.
@@ -49838,328 +49842,318 @@
 И наконец, нажмите кнопку перезагрузки устройства и подождите несколько секунд, прежде чем повторить попытку.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="670" />
       <source>Start REPL</source>
       <translation>Запустить REPL</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="671" />
       <source>&lt;p&gt;The REPL cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Не удается запустить REPL.&lt;/p&gt;&lt;p&gt;Причина:&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1180" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1169" />
       <source>Serial Device Connect</source>
       <translation>Подсоединение последовательного устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1170" />
       <source>&lt;p&gt;The device at serial port &lt;b&gt;{0}&lt;/b&gt; does not respond. It may not have a MicroPython firmware flashed.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1186" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1181" />
       <source>&lt;p&gt;Cannot connect to device at serial port &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Не удается соединиться с устройством через последовательный порт &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1237" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1228" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1219" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1239" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1221" />
       <source>Run Script</source>
       <translation>Выполнить скрипт</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1222" />
       <source>There is no editor open. Abort...</source>
       <translation>Редактор не открыт. Прерывание...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1231" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation>Текущий редактор не содержит скрипт. Прервать...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1240" />
       <source>&lt;p&gt;Cannot run script.&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/MicroPythonWidget.py" line="1263" />
-      <source>Open Python File</source>
-      <translation>Открыть файл Python</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
-      <source>Python3 Files (*.py);;All Files (*)</source>
-      <translation>Файлы Python3 (*.py);;Все файлы (*)</translation>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1276" />
+      <source>Start Chart</source>
+      <translation>Построить диаграмму</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1277" />
+      <source>&lt;p&gt;The Chart cannot be started.&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/MicroPythonWidget.py" line="1292" />
+      <source>µPy Chart</source>
+      <translation>µPy диаграммы</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
-      <source>Start Chart</source>
-      <translation>Построить диаграмму</translation>
+      <source>Unsaved Chart Data</source>
+      <translation>Несохраненные данные диаграммы</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1310" />
-      <source>&lt;p&gt;The Chart cannot be started.&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/MicroPythonWidget.py" line="1325" />
-      <source>µPy Chart</source>
-      <translation>µPy диаграммы</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
-      <source>Unsaved Chart Data</source>
-      <translation>Несохраненные данные диаграммы</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1343" />
       <source>The chart contains unsaved data.</source>
       <translation>Диаграмма содержит несохраненные данные.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1358" />
       <source>Start File Manager</source>
       <translation>Запустить менеджер файлов</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1359" />
       <source>&lt;p&gt;The File Manager cannot be started.&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/MicroPythonWidget.py" line="1411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1378" />
       <source>µPy Files</source>
       <translation>µPy файлы</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1414" />
       <source>Downloads</source>
       <translation>Загрузить микрокод / библиотеки</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1429" />
       <source>Show Version</source>
       <translation>Показать версию</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1432" />
       <source>Show Implementation</source>
       <translation>Показать исполнение</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
       <source>Show Board Data</source>
       <translation>Показать данные платы</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1440" />
       <source>Synchronize Time</source>
       <translation>Синхронизировать время</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1443" />
       <source>Show Device Time</source>
       <translation>Показать время устройства</translation>
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <source>Show Local Time</source>
+      <translation>Показать локальное время</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <source>Show Time</source>
+      <translation>Показать время</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1452" />
+      <source>Show Builtin Modules</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1458" />
+      <source>Compile Python File</source>
+      <translation>Компилировать файл Python</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1840" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1831" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <source>Compile Current Editor</source>
+      <translation>Компилировать текущий редактор</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1471" />
+      <source>Download Firmware</source>
+      <translation>Загрузить микрокод</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
-      <source>Show Local Time</source>
-      <translation>Показать локальное время</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
-      <source>Show Time</source>
-      <translation>Показать время</translation>
+      <source>Show Documentation</source>
+      <translation>Просмотр документации</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1482" />
+      <source>Flash UF2 Device</source>
+      <translation>Прошивка UF2-устройств</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1485" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1849" />
+      <source>Manage Unknown Devices</source>
+      <translation>Менеджер неизвестных устройств</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1488" />
+      <source>Ignored Serial Devices</source>
+      <translation>Проигнорированные последовательные устройства</translation>
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1491" />
-      <source>Compile Python File</source>
-      <translation>Компилировать файл Python</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1873" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1864" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1495" />
-      <source>Compile Current Editor</source>
-      <translation>Компилировать текущий редактор</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1504" />
-      <source>Download Firmware</source>
-      <translation>Загрузить микрокод</translation>
+      <source>Configure</source>
+      <translation>Настройки</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1500" />
+      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
+      <translation>&lt;h3&gt;Информация о версии устройства&lt;/h3&gt;</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1511" />
-      <source>Show Documentation</source>
-      <translation>Просмотр документации</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
-      <source>Flash UF2 Device</source>
-      <translation>Прошивка UF2-устройств</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
-      <source>Manage Unknown Devices</source>
-      <translation>Менеджер неизвестных устройств</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
-      <source>Ignored Serial Devices</source>
-      <translation>Проигнорированные последовательные устройства</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
-      <source>Configure</source>
-      <translation>Настройки</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
-      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
-      <translation>&lt;h3&gt;Информация о версии устройства&lt;/h3&gt;</translation>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1507" />
+      <source>Device Version Information</source>
+      <translation>Информация о версии устройства</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1512" />
+      <source>No version information available.</source>
+      <translation>Информация о версии недоступна.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1531" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1527" />
+      <source>unknown</source>
+      <translation>unknown</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1536" />
+      <source> ({0})</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1552" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1543" />
+      <source>Device Implementation Information</source>
+      <translation>Информация о исполнении устройства</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1544" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1540" />
-      <source>Device Version Information</source>
-      <translation>Информация о версии устройства</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1545" />
-      <source>No version information available.</source>
-      <translation>Информация о версии недоступна.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1564" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1560" />
-      <source>unknown</source>
-      <translation>unknown</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1569" />
-      <source> ({0})</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1585" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1576" />
-      <source>Device Implementation Information</source>
-      <translation>Информация о исполнении устройства</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1577" />
       <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}{2}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1553" />
       <source>No device implementation information available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1593" />
       <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
       <translation>&lt;p&gt;Время подключенного устройства было синхронизировано с локальным временем.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1615" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h3&gt;Дата и время устройства&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Дата&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Время&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1623" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation>&lt;h3&gt;Дата и время устройства&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1639" />
       <source>Device Date and Time</source>
       <translation>Дата и время устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
       <source>Local Date and Time</source>
       <translation>Локальные дата и время</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
       <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;h3&gt;Локальные дата и время&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Дата&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Время&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1693" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
       <source>Date and Time</source>
       <translation>Дата и время</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Дата и время локальные&lt;/th&gt;&lt;th&gt;Дата и время устройства&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Дата &lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Время &lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1694" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Дата и время локальные&lt;/th&gt;&lt;th&gt;Дата и время устройства&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1718" />
       <source>Error handling device</source>
       <translation>Ошибка при работе с устройством</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation>&lt;p&gt;Произошла ошибка при работе с подключаемым устройством.&lt;/p&gt;&lt;p&gt;Метод: {0}&lt;/p&gt;&lt;p&gt;Сообщение: {1}&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1761" />
       <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation>Кросс-компилятор MicroPython &lt;b&gt;mpy-cross&lt;/b&gt; не найден. Убедитесь, что он находится в пути поиска, или настройте его на странице конфигурации MicroPython.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1787" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation>Файлы Python (*.py);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
       <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
       <translation>Файл Python &lt;b&gt;{0}&lt;/b&gt; не существует. Отмена...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1806" />
       <source>'mpy-cross' Output</source>
       <translation>Вывод команды 'mpy-cross'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation>Текущий редактор не содержит файл Python. Отмена...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
       <source>Add Unknown Devices</source>
       <translation>Добавить неизвестное устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
       <source>Select the devices to be added:</source>
       <translation>Выбор устройств для добавления:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50170,16 +50164,6 @@
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to open a file of the connected device</source>
-      <translation>Открыть файл на подключенном устройстве</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to save the current editor to the connected device</source>
-      <translation>Сохранить текущий редактор на подключенном устройстве</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
       <source>Press to run the current script on the selected device</source>
       <translation>Запустить текущий скрипт на выбранном устройстве</translation>
     </message>
@@ -50199,6 +50183,22 @@
       <translation>Открыть окно для отображения данных, полученных с выбранного устройства</translation>
     </message>
     <message>
+      <source>Open Python File</source>
+      <translation type="vanished">Открыть файл Python</translation>
+    </message>
+    <message>
+      <source>Python3 Files (*.py);;All Files (*)</source>
+      <translation type="vanished">Файлы Python3 (*.py);;Все файлы (*)</translation>
+    </message>
+    <message>
+      <source>Press to open a file of the connected device</source>
+      <translation type="vanished">Открыть файл на подключенном устройстве</translation>
+    </message>
+    <message>
+      <source>Press to save the current editor to the connected device</source>
+      <translation type="vanished">Сохранить текущий редактор на подключенном устройстве</translation>
+    </message>
+    <message>
       <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="vanished">&lt;h3&gt;Информация о исполнении устройства&lt;/h3&gt;&lt;p&gt;Это устройство содержит &lt;b&gt;{0} {1}&lt;/b&gt;.&lt;/p&gt;</translation>
     </message>
@@ -50206,194 +50206,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="86" />
       <source>BBC micro:bit</source>
       <translation>BBC micro:bit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="87" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="89" />
       <source>Calliope mini</source>
       <translation>Calliope mini</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="188" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="190" />
       <source>BBC micro:bit/Calliope Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="401" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="389" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="372" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="191" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="403" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="391" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="374" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="193" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="195" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="197" />
       <source>Flash MicroPython</source>
       <translation>Прошить MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="198" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="200" />
       <source>Flash Firmware</source>
       <translation>Прошить микрокод</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="202" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="491" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="204" />
       <source>Save Script</source>
       <translation>Сохранить скрипт</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="205" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="207" />
       <source>Save the current script to the selected device</source>
       <translation>Сохранить текущий скрипт на выбранном устройстве</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="210" />
       <source>Save Script as 'main.py'</source>
       <translation>Сохранить скрипт как 'main.py'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="211" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="213" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation>Сохранить текущий скрипт как 'main.py' на подключенном устройстве</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="217" />
       <source>Reset {0}</source>
       <translation>Сбросить {0}</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="355" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="346" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="332" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="315" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="302" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="282" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="357" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="334" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="317" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="304" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="284" />
       <source>Flash MicroPython/Firmware</source>
       <translation>Прошить MicroPython/микрокод</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="285" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed and plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;See the &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="303" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="305" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MICROBIT is available.&lt;/p&gt;</source>
       <translation>&lt;p&gt;BBC micro:bit не готово к прошивке микрокода MicroPython. Пожалуйста убедитесь, что устройство, называемое MICROBIT, доступно.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="316" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="318" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed an plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;</source>
       <translation>&lt;p&gt;"Calliope mini" не готово к прошивке микрокода DAPLink. Следуйте данным инструкциям. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;отключите USB-кабель и все аккумуляторы&lt;/li&gt;&lt;li&gt;удерживая кнопку RESET нажатой вставьте USB-кабель обратно&lt;/li&gt;&lt;li&gt;должен быть доступен диск под названием MAINTENANCE&lt;/li&gt;&lt;/ul&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="333" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="335" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MINI is available.&lt;/p&gt;</source>
       <translation>&lt;p&gt;"Calliope mini" не готово к прошивке микрокода MicroPython. Пожалуйста убедитесь, что устройство, называемое MICROBIT, доступно.&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="350" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation>Файлы MicroPython/микрокода (*.hex *.bin);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="356" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="358" />
       <source>There are multiple devices ready for flashing. Please make sure, that only one device is prepared.</source>
       <translation>Несколько устройств готовы для прошивки. Пожалуйста убедитесь, что подготовлено только одно устройство.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="373" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="375" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="390" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="392" />
       <source>&lt;p&gt;The BBC micro:bit generation cannot be determined. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="402" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="404" />
       <source>&lt;p&gt;The firmware URL for the device type &lt;b&gt;{0}&lt;/b&gt; is not known. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="429" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="431" />
       <source>unknown</source>
       <translation type="unfinished">неизвестный</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="447" />
       <source>Firmware</source>
       <translation type="unfinished">Прошивка</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="450" />
       <source>&lt;h4&gt;{0} Version Information&lt;br/&gt;(BBC micro:bit v{1})&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="459" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="461" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="463" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="523" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="487" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="525" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
       <source>Save Script as '{0}'</source>
       <translation>Сохранить скрипт как '{0}'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="498" />
       <source>The current editor does not contain a Python script. Write it anyway?</source>
       <translation>Текущий редактор не содержит скрипт Python. Все равно записать?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="507" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="509" />
       <source>The script is empty. Aborting.</source>
       <translation>Скрипт пуст. Прерывание.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="518" />
       <source>Enter a file name on the device:</source>
       <translation>Введите имя файла на устройстве:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="539" />
       <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/Devices/MicrobitDevices.py" line="597" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="599" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation>Микрокод MicroPython для BBC micro:bit V1</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="629" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="616" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="601" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="631" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="618" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="603" />
       <source>DAPLink Firmware</source>
       <translation>Микрокод DAPLink</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="608" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="610" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation>Микрокод MicroPython для BBC micro:bit V2</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="612" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="614" />
       <source>CircuitPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="625" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="627" />
       <source>MicroPython Firmware</source>
       <translation>Микрокод MicroPython</translation>
     </message>
@@ -62185,131 +62185,131 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="82" />
       <source>PyBoard</source>
       <translation>PyBoard</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="199" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="197" />
       <source>Workspace Directory</source>
       <translation>Директория рабочей области</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="200" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="198" />
       <source>Python files for PyBoard can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation>Файлы Python для PyBoard можно редактировать по месту, если том устройства доступен локально. Такой том найти не удалось. Редактирование по месту будет недоступно.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="232" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="230" />
       <source>PyBoard Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="438" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="235" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="436" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="233" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="239" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="237" />
       <source>Activate Bootloader</source>
       <translation>Активировать загрузчик</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="242" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="240" />
       <source>List DFU-capable Devices</source>
       <translation>Список DFU-устройств</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="421" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="244" />
       <source>Flash MicroPython Firmware</source>
       <translation>Прошить микрокод MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="249" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="247" />
       <source>MicroPython Flash Instructions</source>
       <translation>Инструкция прошивки MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="306" />
       <source>dfu-util not available</source>
       <translation>dfu-util не доступна</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="309" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="307" />
       <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation>Инструмент прошивки микрокода &lt;b&gt;dfu-util&lt;/b&gt; не найден или не является исполняемым. Убедитесь, что он находится в путях поиска, или настройте его на странице настройки MicroPython.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="329" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="327" />
       <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
       <translation>&lt;h3&gt;Включение режима DFU&lt;/h3&gt;&lt;p&gt;1. Отключите все от вашего устройства&lt;/p&gt;&lt;p&gt;2. Отключите ваше устройство&lt;/p&gt;&lt;p&gt;3. Соедините контакт DFU/BOOT0 с контактом 3,3 В&lt;/p&gt;&lt;p&gt;4. Повторно подключите ваше устройство&lt;/p&gt;&lt;hr /&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="339" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="337" />
       <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
       <translation>&lt;p&gt;&lt;b&gt;Предупреждение:&lt;/b&gt; Убедитесь, что все другие устройства с поддержкой DFU, кроме PyBoard, отключены.&lt;hr /&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="343" />
       <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation>&lt;p&gt;Нажмите &lt;b&gt;OK&lt;/b&gt; для продолжения...&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="346" />
       <source>Enable DFU mode</source>
       <translation>Включить режим DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="359" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="357" />
       <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation>&lt;h3&gt;Выключение режима DFU&lt;/h3&gt;&lt;p&gt;1. Отключите ваше устройство&lt;/p&gt;&lt;p&gt;2. Удалите перемычку DFU&lt;/p&gt;&lt;p&gt;3. Повторно подключите устройство&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Нажмите &lt;b&gt;ОК&lt;/b&gt; для продолжения...&lt;/p&gt;</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="365" />
       <source>Disable DFU mode</source>
       <translation>Отключить режим DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="420" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="418" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>'dfu-util' Output</source>
       <translation>Вывод команды'dfu-util'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>List DFU capable Devices</source>
       <translation>Список устройств с поддержкой DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="410" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation>Файлы микрокода MicroPython (*.dfu);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="439" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="437" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="466" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="464" />
       <source>unknown</source>
       <translation type="unfinished">неизвестный</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="472" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="470" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="480" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="478" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="484" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="482" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67498,78 +67498,78 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="70" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="71" />
       <source>RP2040</source>
       <translation>RP2040</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="126" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="127" />
       <source>RP2040 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="198" />
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="129" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="133" />
-      <source>Activate Bootloader</source>
-      <translation>Активировать загрузчик</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="136" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished">Прошить микрокод MicroPython</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/RP2040Devices.py" line="199" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="130" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="134" />
+      <source>Activate Bootloader</source>
+      <translation>Активировать загрузчик</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="137" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished">Прошить микрокод MicroPython</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="200" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="231" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="232" />
       <source>unknown</source>
       <translation type="unfinished">неизвестный</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="238" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="247" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="255" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="256" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="259" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="260" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="282" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="283" />
       <source>MicroPython Firmware</source>
       <translation>Микрокод MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="286" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="287" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="289" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="290" />
       <source>CircuitPython Firmware</source>
       <translation>Микрокод CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="293" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="294" />
       <source>CircuitPython Libraries</source>
       <translation>Библиотеки CircuitPython</translation>
     </message>
@@ -81629,74 +81629,74 @@
   <context>
     <name>TeensyDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="69" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="70" />
       <source>Teensy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="143" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="144" />
       <source>Teensy Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="184" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="146" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="150" />
-      <source>MicroPython Flash Instructions</source>
-      <translation type="unfinished">Инструкция прошивки MicroPython</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="240" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="153" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished">Прошить микрокод MicroPython</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="156" />
-      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="185" />
-      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="212" />
-      <source>unknown</source>
-      <translation type="unfinished">неизвестный</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="218" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="226" />
-      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="230" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="147" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="151" />
+      <source>MicroPython Flash Instructions</source>
+      <translation type="unfinished">Инструкция прошивки MicroPython</translation>
     </message>
     <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="241" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="154" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished">Прошить микрокод MicroPython</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="157" />
+      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="186" />
+      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="213" />
+      <source>unknown</source>
+      <translation type="unfinished">неизвестный</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="219" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="227" />
+      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="231" />
+      <source>MicroPython Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="242" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 are flashed using the 'Teensy Loader' application. Make sure you downloaded the MicroPython or CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="260" />
-      <source>Start 'Teensy Loader'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="261" />
+      <source>Start 'Teensy Loader'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="262" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_tr.ts	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/i18n/eric7_tr.ts	Tue Feb 14 18:10:30 2023 +0100
@@ -1791,50 +1791,55 @@
   <context>
     <name>BaseDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="92" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="95" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="93" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="96" />
       <source>&lt;p&gt;The device data is not available. Try to connect to the device again. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="125" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="140" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="135" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="150" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="154" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="169" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="173" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="188" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="192" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="207" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="237" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="252" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="238" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="253" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="399" />
+      <source>Detected an error without indications.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>BlackConfigurationDialog</name>
@@ -3824,121 +3829,121 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="89" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="87" />
       <source>CircuitPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="213" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="214" />
       <source>Python files for CircuitPython can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="244" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="250" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="248" />
       <source>CircuitPython Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="253" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="251" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="262" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="260" />
       <source>CircuitPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="344" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="275" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="266" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="342" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="273" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="264" />
       <source>Flash CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="269" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="267" />
       <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="442" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="304" />
-      <source>Install Library Files</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="440" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="302" />
+      <source>Install Library Files</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="306" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="314" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="312" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="343" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 do not support the UF2 bootloader. Please use the 'Teensy Loader' application to flash CircuitPython. Make sure you downloaded the CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="365" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="363" />
       <source>Start 'Teensy Loader'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="366" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="364" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="395" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="393" />
       <source>unknown</source>
       <translation type="unfinished">bilinmeyen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="414" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="412" />
       <source>&lt;h4&gt;CircuitPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="422" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="420" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="426" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="424" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="446" />
       <source>The device volume "&lt;b&gt;{0}&lt;/b&gt;" is not available. Ensure it is mounted properly and try again.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="474" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="506" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="504" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="510" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="508" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -19954,66 +19959,6 @@
   <context>
     <name>EspBackupRestoreFirmwareDialog</name>
     <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware Size:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the firmware size</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to auto detect. size.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.py" line="107" />
       <source>Firmware Files (*.img);;All Files (*)</source>
       <translation type="unfinished" />
@@ -20028,143 +19973,203 @@
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware Size:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the firmware size</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to auto detect. size.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="72" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="73" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="128" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="129" />
       <source>ESP32 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="405" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="131" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="132" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="222" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="136" />
+      <source>Erase Flash</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="259" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="139" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="296" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="143" />
+      <source>Flash Additional Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="332" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="147" />
+      <source>Backup Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="150" />
+      <source>Restore Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="154" />
+      <source>Show Chip ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="157" />
+      <source>Show Flash ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="160" />
+      <source>Show MAC Address</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="164" />
+      <source>Reset Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="167" />
+      <source>Install 'esptool.py'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="209" />
+      <source>Shall the flash of the selected device really be erased?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="221" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="207" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="135" />
-      <source>Erase Flash</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="138" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="142" />
-      <source>Flash Additional Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="146" />
-      <source>Backup Firmware</source>
+      <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="384" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="149" />
-      <source>Restore Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="153" />
-      <source>Show Chip ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="156" />
-      <source>Show Flash ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="159" />
-      <source>Show MAC Address</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="163" />
-      <source>Reset Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="166" />
-      <source>Install 'esptool.py'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
-      <source>Shall the flash of the selected device really be erased?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="220" />
-      <source>'esptool erase_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="383" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="294" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="257" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
       <source>'esptool read_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="407" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="434" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="435" />
       <source>unknown</source>
       <translation type="unfinished">bilinmeyen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="446" />
       <source>&lt;h4&gt;{0} Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="453" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="454" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="458" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -20172,80 +20177,80 @@
   <context>
     <name>EspFirmwareSelectionDialog</name>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Address:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Enter the flash addres in the hexadecimal form</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware is CircuitPython</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.py" line="68" />
       <source>Firmware Files (*.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Address:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the flash addres in the hexadecimal form</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
+      <source>Firmware is CircuitPython</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -21997,12 +22002,12 @@
   <context>
     <name>GenericMicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="196" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="194" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="197" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="195" />
       <source>Python files for this generic board can be edited in place, if the device volume is locally available. A volume named '{0}' was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
@@ -49041,14 +49046,6 @@
     </message>
   </context>
   <context>
-    <name>MicroPythonCommandsInterface</name>
-    <message>
-      <location filename="../MicroPython/MicroPythonCommandsInterface.py" line="322" />
-      <source>Detected an error without indications.</source>
-      <translation type="unfinished" />
-    </message>
-  </context>
-  <context>
     <name>MicroPythonDevice</name>
     <message>
       <location filename="../MicroPython/Devices/__init__.py" line="260" />
@@ -49085,35 +49082,35 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="386" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="306" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="384" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="304" />
       <source>{1}Adding &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="450" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="355" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="446" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="353" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a directory and destination &lt;b&gt;{1}&lt;/b&gt; is a file. Ignoring it.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="459" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="364" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="455" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="362" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a file and destination &lt;b&gt;{1}&lt;/b&gt; is a directory. Ignoring it.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="373" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="371" />
       <source>Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="414" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="412" />
       <source>{1}Removing &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="468" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="464" />
       <source>{1}Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
@@ -49217,171 +49214,171 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="977" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="806" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="980" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="809" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="145" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="124" />
+      <source>Change Directory</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1000" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="845" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="833" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
-      <source>Change Directory</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="997" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="842" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="830" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="151" />
+      <source>Create Directory</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1055" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="883" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="872" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
-      <source>Create Directory</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1052" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="880" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="869" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="158" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="133" />
       <source>Delete Directory Tree</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1079" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="918" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="907" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1082" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="921" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="910" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="159" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="134" />
+      <source>Delete File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="162" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="137" />
-      <source>Delete File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="165" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="140" />
       <source>Show Hidden Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1024" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1027" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="152" />
       <source>Delete Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="172" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="169" />
       <source>Show Filesystem Info</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="219" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="216" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="220" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="217" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="486" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="483" />
       <source>Put File As</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="724" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="551" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="484" />
+      <source>Enter a new name for the file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="497" />
+      <source>Copy File to Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="742" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="498" />
+      <source>The given file exists already (Enter file name only).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="550" />
+      <source>Get File As</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="564" />
+      <source>Copy File from Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="565" />
+      <source>The given file exists already.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="741" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="554" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="487" />
-      <source>Enter a new name for the file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="500" />
-      <source>Copy File to Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="735" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="501" />
-      <source>The given file exists already (Enter file name only).</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="553" />
-      <source>Get File As</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="567" />
-      <source>Copy File from Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="568" />
-      <source>The given file exists already.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="734" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="722" />
       <source>Save File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="807" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="810" />
       <source>Select Directory</source>
       <translation type="unfinished">Dizin Seçiniz</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="998" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="831" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1001" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="834" />
       <source>Enter directory name:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="843" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="846" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1053" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="870" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1056" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="873" />
       <source>Do you really want to delete this directory tree?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="881" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="884" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1080" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="908" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1083" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="911" />
       <source>Do you really want to delete this file?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="919" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="922" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="978" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="981" />
       <source>Enter the directory path on the device:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1025" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1028" />
       <source>Do you really want to delete this directory?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1113" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1116" />
       <source>&lt;h3&gt;Filesystem Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1115" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1118" />
       <source>&lt;h4&gt;{0}&lt;/h4&lt;table&gt;&lt;tr&gt;&lt;td&gt;Total Size: &lt;/td&gt;&lt;td align='right'&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Used Size: &lt;/td&gt;&lt;td align='right'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Free Size: &lt;/td&gt;&lt;td align='right'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1128" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1131" />
       <source>Filesystem Information</source>
       <translation type="unfinished" />
     </message>
@@ -49726,17 +49723,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="231" />
       <source>MicroPython Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="288" />
       <source>&lt;h3&gt;The QtSerialPort package is not available.&lt;br/&gt;MicroPython support is deactivated.&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="329" />
       <source>%n supported device(s) detected.</source>
       <translation type="unfinished">
         <numerusform />
@@ -49744,18 +49741,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="343" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="363" />
       <source>No supported devices detected.</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="367" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation type="unfinished">
@@ -49764,70 +49761,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="374" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="437" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="408" />
       <source>Unknown MicroPython Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="409" />
       <source>&lt;p&gt;Detected these unknown serial devices&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please report them together with the board name and a short description to &lt;a href="mailto:{1}"&gt; the eric bug reporting address&lt;/a&gt; if it is a MicroPython board.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="421" />
       <source>{0} (0x{1:04x}/0x{2:04x})</source>
       <comment>description, VId, PId</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="438" />
       <source>Would you like to add them to the list of manually configured devices?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="564" />
       <source>Clear</source>
       <translation type="unfinished">Temizle</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="569" />
       <source>Copy</source>
       <translation type="unfinished">Kopyala</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="575" />
       <source>Paste</source>
       <translation type="unfinished">Yapıştır</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="582" />
       <source>Select All</source>
       <translation type="unfinished">Hepsini Seç</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="608" />
       <source>Press to disconnect the current device</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="613" />
       <source>Press to connect the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="640" />
       <source>No device attached</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="641" />
       <source>Please ensure the device is plugged into your computer and selected.
 
 It must have a version of MicroPython (or CircuitPython) flashed onto it before anything will work.
@@ -49836,328 +49833,318 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="670" />
       <source>Start REPL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="671" />
       <source>&lt;p&gt;The REPL cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1180" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1169" />
       <source>Serial Device Connect</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1170" />
       <source>&lt;p&gt;The device at serial port &lt;b&gt;{0}&lt;/b&gt; does not respond. It may not have a MicroPython firmware flashed.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1186" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1181" />
       <source>&lt;p&gt;Cannot connect to device at serial port &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1237" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1228" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1219" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1239" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1221" />
       <source>Run Script</source>
       <translation type="unfinished">Betiği Çalıştır</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1222" />
       <source>There is no editor open. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1231" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1240" />
       <source>&lt;p&gt;Cannot run script.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
-      <source>Open Python File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
-      <source>Python3 Files (*.py);;All Files (*)</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1276" />
+      <source>Start Chart</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1277" />
+      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1292" />
+      <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
-      <source>Start Chart</source>
+      <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1310" />
-      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
-      <source>µPy Chart</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
-      <source>Unsaved Chart Data</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1343" />
       <source>The chart contains unsaved data.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1358" />
       <source>Start File Manager</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1359" />
       <source>&lt;p&gt;The File Manager cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1378" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1414" />
       <source>Downloads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1429" />
       <source>Show Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1432" />
       <source>Show Implementation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1440" />
       <source>Synchronize Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1443" />
       <source>Show Device Time</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <source>Show Local Time</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <source>Show Time</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1452" />
+      <source>Show Builtin Modules</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1458" />
+      <source>Compile Python File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1840" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1831" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <source>Compile Current Editor</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1471" />
+      <source>Download Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
-      <source>Show Local Time</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
-      <source>Show Time</source>
+      <source>Show Documentation</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1482" />
+      <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1485" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1849" />
+      <source>Manage Unknown Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1488" />
+      <source>Ignored Serial Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1491" />
-      <source>Compile Python File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1873" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1864" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1495" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1504" />
-      <source>Download Firmware</source>
+      <source>Configure</source>
+      <translation type="unfinished">Yapılandırma</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1500" />
+      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1511" />
-      <source>Show Documentation</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
-      <source>Flash UF2 Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
-      <source>Manage Unknown Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
-      <source>Ignored Serial Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
-      <source>Configure</source>
-      <translation type="unfinished">Yapılandırma</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
-      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1507" />
+      <source>Device Version Information</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1512" />
+      <source>No version information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1531" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1527" />
+      <source>unknown</source>
+      <translation type="unfinished">bilinmeyen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1536" />
+      <source> ({0})</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1552" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1543" />
+      <source>Device Implementation Information</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1544" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1540" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1545" />
-      <source>No version information available.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1564" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1560" />
-      <source>unknown</source>
-      <translation type="unfinished">bilinmeyen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1569" />
-      <source> ({0})</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1585" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1576" />
-      <source>Device Implementation Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1577" />
       <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}{2}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1553" />
       <source>No device implementation information available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1593" />
       <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1615" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1623" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1639" />
       <source>Device Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
       <source>Local Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
       <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1693" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
       <source>Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1694" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1718" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1761" />
       <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1787" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished">Python Dosyaları (*.py);;Tüm Dosyalar (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
       <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1806" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50168,16 +50155,6 @@
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to open a file of the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to save the current editor to the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
       <source>Press to run the current script on the selected device</source>
       <translation type="unfinished" />
     </message>
@@ -50200,194 +50177,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="86" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="87" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="89" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="188" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="190" />
       <source>BBC micro:bit/Calliope Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="401" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="389" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="372" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="191" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="403" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="391" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="374" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="193" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="195" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="197" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="198" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="200" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="202" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="491" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="204" />
       <source>Save Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="205" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="207" />
       <source>Save the current script to the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="210" />
       <source>Save Script as 'main.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="211" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="213" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="217" />
       <source>Reset {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="355" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="346" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="332" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="315" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="302" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="282" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="357" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="334" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="317" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="304" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="284" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="285" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed and plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;See the &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="303" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="305" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MICROBIT is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="316" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="318" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed an plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="333" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="335" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MINI is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="350" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="356" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="358" />
       <source>There are multiple devices ready for flashing. Please make sure, that only one device is prepared.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="373" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="375" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="390" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="392" />
       <source>&lt;p&gt;The BBC micro:bit generation cannot be determined. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="402" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="404" />
       <source>&lt;p&gt;The firmware URL for the device type &lt;b&gt;{0}&lt;/b&gt; is not known. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="429" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="431" />
       <source>unknown</source>
       <translation type="unfinished">bilinmeyen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="447" />
       <source>Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="450" />
       <source>&lt;h4&gt;{0} Version Information&lt;br/&gt;(BBC micro:bit v{1})&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="459" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="461" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="463" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="523" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="487" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="525" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
       <source>Save Script as '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="498" />
       <source>The current editor does not contain a Python script. Write it anyway?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="507" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="509" />
       <source>The script is empty. Aborting.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="518" />
       <source>Enter a file name on the device:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="539" />
       <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" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="597" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="599" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="629" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="616" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="601" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="631" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="618" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="603" />
       <source>DAPLink Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="608" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="610" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="612" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="614" />
       <source>CircuitPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="625" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="627" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -62380,131 +62357,131 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="82" />
       <source>PyBoard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="199" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="197" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="200" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="198" />
       <source>Python files for PyBoard can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="232" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="230" />
       <source>PyBoard Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="438" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="235" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="436" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="233" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="239" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="237" />
       <source>Activate Bootloader</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="242" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="240" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="421" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="244" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="249" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="247" />
       <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="306" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="309" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="307" />
       <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="329" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="327" />
       <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="339" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="337" />
       <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="343" />
       <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="346" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="359" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="357" />
       <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="365" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="420" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="418" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="410" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="439" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="437" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="466" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="464" />
       <source>unknown</source>
       <translation type="unfinished">bilinmeyen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="472" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="470" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="480" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="478" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="484" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="482" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67542,78 +67519,78 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="70" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="71" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="126" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="127" />
       <source>RP2040 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="198" />
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="129" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="133" />
-      <source>Activate Bootloader</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="136" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/RP2040Devices.py" line="199" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="130" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="134" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="137" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="200" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="231" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="232" />
       <source>unknown</source>
       <translation type="unfinished">bilinmeyen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="238" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="247" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="255" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="256" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="259" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="260" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="282" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="283" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="286" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="287" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="289" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="290" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="293" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="294" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -81543,74 +81520,74 @@
   <context>
     <name>TeensyDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="69" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="70" />
       <source>Teensy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="143" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="144" />
       <source>Teensy Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="184" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="146" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="150" />
-      <source>MicroPython Flash Instructions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="240" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="153" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="156" />
-      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="185" />
-      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="212" />
-      <source>unknown</source>
-      <translation type="unfinished">bilinmeyen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="218" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="226" />
-      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="230" />
-      <source>MicroPython Version</source>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="147" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="151" />
+      <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="241" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="154" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="157" />
+      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="186" />
+      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="213" />
+      <source>unknown</source>
+      <translation type="unfinished">bilinmeyen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="219" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="227" />
+      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="231" />
+      <source>MicroPython Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="242" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 are flashed using the 'Teensy Loader' application. Make sure you downloaded the MicroPython or CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="260" />
-      <source>Start 'Teensy Loader'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="261" />
+      <source>Start 'Teensy Loader'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="262" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_zh_CN.ts	Tue Feb 14 11:09:49 2023 +0100
+++ b/src/eric7/i18n/eric7_zh_CN.ts	Tue Feb 14 18:10:30 2023 +0100
@@ -1819,50 +1819,55 @@
   <context>
     <name>BaseDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="92" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="95" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="93" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="96" />
       <source>&lt;p&gt;The device data is not available. Try to connect to the device again. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="125" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="140" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="135" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="150" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="154" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="169" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="173" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="188" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="192" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="207" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="237" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="252" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/DeviceBase.py" line="238" />
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="253" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/DeviceBase.py" line="399" />
+      <source>Detected an error without indications.</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>BlackConfigurationDialog</name>
@@ -3858,121 +3863,121 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="89" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="87" />
       <source>CircuitPython</source>
       <translation>CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="213" />
       <source>Workspace Directory</source>
       <translation>工作空间目录</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="214" />
       <source>Python files for CircuitPython can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="244" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="250" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="248" />
       <source>CircuitPython Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="253" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="251" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="262" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="260" />
       <source>CircuitPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="344" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="275" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="266" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="342" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="273" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="264" />
       <source>Flash CircuitPython Firmware</source>
       <translation>刷新 CircuitPython 固件</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="269" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="267" />
       <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="442" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="304" />
-      <source>Install Library Files</source>
-      <translation>安装库文件</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="440" />
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="302" />
+      <source>Install Library Files</source>
+      <translation>安装库文件</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="306" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="314" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="312" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="343" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 do not support the UF2 bootloader. Please use the 'Teensy Loader' application to flash CircuitPython. Make sure you downloaded the CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="365" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="363" />
       <source>Start 'Teensy Loader'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="366" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="364" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="395" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="393" />
       <source>unknown</source>
       <translation type="unfinished">未知</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="414" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="412" />
       <source>&lt;h4&gt;CircuitPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="422" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="420" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="426" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="424" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="446" />
       <source>The device volume "&lt;b&gt;{0}&lt;/b&gt;" is not available. Ensure it is mounted properly and try again.</source>
       <translation>该设备卷 "&lt;b&gt;{0}&lt;/b&gt;" 不可用。确认其已正确挂载后重试。</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="474" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation>编译 Python 文件 (*.mpy);;Python 文件 (*.py);;所有文件 (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="506" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="504" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="510" />
+      <location filename="../MicroPython/Devices/CircuitPythonDevices.py" line="508" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -20014,66 +20019,6 @@
   <context>
     <name>EspBackupRestoreFirmwareDialog</name>
     <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>ESP Chip Type:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware Size:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the firmware size</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to auto detect. size.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Baud Rate:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Flash Mode:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Select the flash mode</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Leave empty to use the default mode.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished">固件:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspBackupRestoreFirmwareDialog.ui" line="0" />
-      <source>Enter the path of the firmware file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.py" line="107" />
       <source>Firmware Files (*.img);;All Files (*)</source>
       <translation type="unfinished" />
@@ -20088,143 +20033,203 @@
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>ESP Chip Type:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the ESP chip type</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware Size:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the firmware size</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to auto detect. size.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Baud Rate:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Flash Mode:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Select the flash mode</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Leave empty to use the default mode.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Firmware:</source>
+      <translation type="unfinished">固件:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspBackupRestoreFirmwareDialog.ui" line="0" />
+      <source>Enter the path of the firmware file</source>
+      <translation type="unfinished" />
+    </message>
   </context>
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="72" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="73" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="128" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="129" />
       <source>ESP32 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="405" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="131" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="132" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="222" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="136" />
+      <source>Erase Flash</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="259" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="139" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="296" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="143" />
+      <source>Flash Additional Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="332" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="147" />
+      <source>Backup Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="150" />
+      <source>Restore Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="154" />
+      <source>Show Chip ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="157" />
+      <source>Show Flash ID</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="160" />
+      <source>Show MAC Address</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="164" />
+      <source>Reset Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="167" />
+      <source>Install 'esptool.py'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDevices.py" line="209" />
+      <source>Shall the flash of the selected device really be erased?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="221" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="207" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="135" />
-      <source>Erase Flash</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="138" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="142" />
-      <source>Flash Additional Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="146" />
-      <source>Backup Firmware</source>
+      <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/EspDevices.py" line="384" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="149" />
-      <source>Restore Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="153" />
-      <source>Show Chip ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="156" />
-      <source>Show Flash ID</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="159" />
-      <source>Show MAC Address</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="163" />
-      <source>Reset Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="166" />
-      <source>Install 'esptool.py'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="208" />
-      <source>Shall the flash of the selected device really be erased?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="220" />
-      <source>'esptool erase_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="383" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="294" />
-      <location filename="../MicroPython/Devices/EspDevices.py" line="257" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="295" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="258" />
       <source>'esptool write_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="330" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="331" />
       <source>'esptool read_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="407" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="434" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="435" />
       <source>unknown</source>
       <translation type="unfinished">未知</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="446" />
       <source>&lt;h4&gt;{0} Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="453" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="454" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="458" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="475" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="476" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="495" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="496" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/EspDevices.py" line="515" />
+      <location filename="../MicroPython/Devices/EspDevices.py" line="516" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -20232,80 +20237,80 @@
   <context>
     <name>EspFirmwareSelectionDialog</name>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.py" line="68" />
+      <source>Firmware Files (*.bin);;All Files (*)</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Baud Rate:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Leave empty to use the default mode.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Address:</source>
       <translation type="unfinished">地址:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Enter the flash addres in the hexadecimal form</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Select the flash mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Flash Mode:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Firmware:</source>
       <translation type="unfinished">固件:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Select the ESP chip type</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Select the baud rate to be used for flashing (default: 115.200 bps)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Enter the path of the firmware file</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>ESP Chip Type:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Check this, if the firware to be loaded is CircuitPython (changes the flash address for some chips).</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
+      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.ui" line="0" />
       <source>Firmware is CircuitPython</source>
       <translation type="unfinished" />
     </message>
-    <message>
-      <location filename="../MicroPython/Devices/EspDialogs/EspFirmwareSelectionDialog.py" line="68" />
-      <source>Firmware Files (*.bin);;All Files (*)</source>
-      <translation type="unfinished" />
-    </message>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -22060,12 +22065,12 @@
   <context>
     <name>GenericMicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="196" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="194" />
       <source>Workspace Directory</source>
       <translation type="unfinished">工作空间目录</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="197" />
+      <location filename="../MicroPython/Devices/GenericMicroPythonDevices.py" line="195" />
       <source>Python files for this generic board can be edited in place, if the device volume is locally available. A volume named '{0}' was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
@@ -49072,14 +49077,6 @@
     </message>
   </context>
   <context>
-    <name>MicroPythonCommandsInterface</name>
-    <message>
-      <location filename="../MicroPython/MicroPythonCommandsInterface.py" line="322" />
-      <source>Detected an error without indications.</source>
-      <translation type="unfinished" />
-    </message>
-  </context>
-  <context>
     <name>MicroPythonDevice</name>
     <message>
       <location filename="../MicroPython/Devices/__init__.py" line="260" />
@@ -49116,35 +49113,35 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="386" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="306" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="384" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="304" />
       <source>{1}Adding &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="450" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="355" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="446" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="353" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a directory and destination &lt;b&gt;{1}&lt;/b&gt; is a file. Ignoring it.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="459" />
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="364" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="455" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="362" />
       <source>Source &lt;b&gt;{0}&lt;/b&gt; is a file and destination &lt;b&gt;{1}&lt;/b&gt; is a directory. Ignoring it.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="373" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="371" />
       <source>Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="414" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="412" />
       <source>{1}Removing &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManager.py" line="468" />
+      <location filename="../MicroPython/MicroPythonFileManager.py" line="464" />
       <source>{1}Updating &lt;b&gt;{0}&lt;/b&gt;...</source>
       <translation type="unfinished" />
     </message>
@@ -49248,171 +49245,171 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="977" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="806" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="980" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="809" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="145" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="124" />
+      <source>Change Directory</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1000" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="845" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="833" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="148" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="127" />
-      <source>Change Directory</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="997" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="842" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="830" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="151" />
+      <source>Create Directory</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1055" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="883" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="872" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="130" />
-      <source>Create Directory</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1052" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="880" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="869" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="158" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="133" />
       <source>Delete Directory Tree</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1079" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="918" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="907" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1082" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="921" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="910" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="159" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="134" />
+      <source>Delete File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="162" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="137" />
-      <source>Delete File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="165" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="140" />
       <source>Show Hidden Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1024" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="155" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1027" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="152" />
       <source>Delete Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="172" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="169" />
       <source>Show Filesystem Info</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="219" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="216" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="220" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="217" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="486" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="483" />
       <source>Put File As</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="724" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="551" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="484" />
+      <source>Enter a new name for the file</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="497" />
+      <source>Copy File to Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="742" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="498" />
+      <source>The given file exists already (Enter file name only).</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="550" />
+      <source>Get File As</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="564" />
+      <source>Copy File from Device</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="565" />
+      <source>The given file exists already.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="741" />
       <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="723" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="554" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="487" />
-      <source>Enter a new name for the file</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="500" />
-      <source>Copy File to Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="735" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="501" />
-      <source>The given file exists already (Enter file name only).</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="553" />
-      <source>Get File As</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="567" />
-      <source>Copy File from Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="568" />
-      <source>The given file exists already.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="734" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="722" />
       <source>Save File As</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="807" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="810" />
       <source>Select Directory</source>
       <translation type="unfinished">选择文件夹</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="998" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="831" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1001" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="834" />
       <source>Enter directory name:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="843" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="846" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be created.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1053" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="870" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1056" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="873" />
       <source>Do you really want to delete this directory tree?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="881" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="884" />
       <source>&lt;p&gt;The directory &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1080" />
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="908" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1083" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="911" />
       <source>Do you really want to delete this file?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="919" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="922" />
       <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; could not be deleted.&lt;/p&gt;&lt;p&gt;Reason: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="978" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="981" />
       <source>Enter the directory path on the device:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1025" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1028" />
       <source>Do you really want to delete this directory?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1113" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1116" />
       <source>&lt;h3&gt;Filesystem Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1115" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1118" />
       <source>&lt;h4&gt;{0}&lt;/h4&lt;table&gt;&lt;tr&gt;&lt;td&gt;Total Size: &lt;/td&gt;&lt;td align='right'&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Used Size: &lt;/td&gt;&lt;td align='right'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Free Size: &lt;/td&gt;&lt;td align='right'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1128" />
+      <location filename="../MicroPython/MicroPythonFileManagerWidget.py" line="1131" />
       <source>Filesystem Information</source>
       <translation type="unfinished" />
     </message>
@@ -49757,35 +49754,35 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="231" />
       <source>MicroPython Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="288" />
       <source>&lt;h3&gt;The QtSerialPort package is not available.&lt;br/&gt;MicroPython support is deactivated.&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="329" />
       <source>%n supported device(s) detected.</source>
       <translation type="unfinished">
         <numerusform />
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="343" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="363" />
       <source>No supported devices detected.</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="367" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation type="unfinished">
@@ -49793,70 +49790,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="374" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="437" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="408" />
       <source>Unknown MicroPython Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="409" />
       <source>&lt;p&gt;Detected these unknown serial devices&lt;/p&gt;&lt;ul&gt;&lt;li&gt;{0}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please report them together with the board name and a short description to &lt;a href="mailto:{1}"&gt; the eric bug reporting address&lt;/a&gt; if it is a MicroPython board.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="421" />
       <source>{0} (0x{1:04x}/0x{2:04x})</source>
       <comment>description, VId, PId</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="438" />
       <source>Would you like to add them to the list of manually configured devices?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="564" />
       <source>Clear</source>
       <translation type="unfinished">清除</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="569" />
       <source>Copy</source>
       <translation type="unfinished">复制</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="575" />
       <source>Paste</source>
       <translation type="unfinished">粘贴</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="582" />
       <source>Select All</source>
       <translation type="unfinished">全选</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="608" />
       <source>Press to disconnect the current device</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="613" />
       <source>Press to connect the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="640" />
       <source>No device attached</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="641" />
       <source>Please ensure the device is plugged into your computer and selected.
 
 It must have a version of MicroPython (or CircuitPython) flashed onto it before anything will work.
@@ -49865,328 +49862,318 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="670" />
       <source>Start REPL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="671" />
       <source>&lt;p&gt;The REPL cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1180" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1169" />
       <source>Serial Device Connect</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1170" />
       <source>&lt;p&gt;The device at serial port &lt;b&gt;{0}&lt;/b&gt; does not respond. It may not have a MicroPython firmware flashed.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1186" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1181" />
       <source>&lt;p&gt;Cannot connect to device at serial port &lt;b&gt;{0}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1237" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1228" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1219" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1239" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1221" />
       <source>Run Script</source>
       <translation type="unfinished">运行脚本</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1222" />
       <source>There is no editor open. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1231" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1240" />
       <source>&lt;p&gt;Cannot run script.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
-      <source>Open Python File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
-      <source>Python3 Files (*.py);;All Files (*)</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1276" />
+      <source>Start Chart</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1277" />
+      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1292" />
+      <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
-      <source>Start Chart</source>
+      <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1310" />
-      <source>&lt;p&gt;The Chart cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
-      <source>µPy Chart</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
-      <source>Unsaved Chart Data</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1343" />
       <source>The chart contains unsaved data.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1358" />
       <source>Start File Manager</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1359" />
       <source>&lt;p&gt;The File Manager cannot be started.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1378" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1414" />
       <source>Downloads</source>
       <translation type="unfinished">下载</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1429" />
       <source>Show Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1432" />
       <source>Show Implementation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1440" />
       <source>Synchronize Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1443" />
       <source>Show Device Time</source>
       <translation type="unfinished" />
     </message>
     <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <source>Show Local Time</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <source>Show Time</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1452" />
+      <source>Show Builtin Modules</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1458" />
+      <source>Compile Python File</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1840" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1831" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
+      <source>Compile Current Editor</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1471" />
+      <source>Download Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
-      <source>Show Local Time</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
-      <source>Show Time</source>
+      <source>Show Documentation</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1482" />
+      <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1485" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1849" />
+      <source>Manage Unknown Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1488" />
+      <source>Ignored Serial Devices</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1491" />
-      <source>Compile Python File</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1873" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1864" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1495" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1504" />
-      <source>Download Firmware</source>
+      <source>Configure</source>
+      <translation type="unfinished">配置</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1500" />
+      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1511" />
-      <source>Show Documentation</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
-      <source>Flash UF2 Device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
-      <source>Manage Unknown Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
-      <source>Ignored Serial Devices</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
-      <source>Configure</source>
-      <translation type="unfinished">配置</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
-      <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1507" />
+      <source>Device Version Information</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1512" />
+      <source>No version information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1531" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1527" />
+      <source>unknown</source>
+      <translation type="unfinished">未知</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1536" />
+      <source> ({0})</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1552" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1543" />
+      <source>Device Implementation Information</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1544" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1540" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1545" />
-      <source>No version information available.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1564" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1560" />
-      <source>unknown</source>
-      <translation type="unfinished">未知</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1569" />
-      <source> ({0})</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1585" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1576" />
-      <source>Device Implementation Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1577" />
       <source>&lt;h3&gt;Device Implementation Information&lt;/h3&gt;&lt;p&gt;This device contains &lt;b&gt;{0} {1}{2}&lt;/b&gt;.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1553" />
       <source>No device implementation information available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1593" />
       <source>&lt;p&gt;The time of the connected device was synchronized with the local time.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1615" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1623" />
       <source>&lt;h3&gt;Device Date and Time&lt;/h3&gt;&lt;p&gt;{0}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1639" />
       <source>Device Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
       <source>Local Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
       <source>&lt;h3&gt;Local Date and Time&lt;/h3&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1693" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
       <source>Date and Time</source>
       <translation type="unfinished">日期和时间</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{0}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/td&gt;&lt;td align='center'&gt;{1}&lt;/td&gt;&lt;td align='center'&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1694" />
       <source>&lt;table&gt;&lt;tr&gt;&lt;th&gt;Local Date and Time&lt;/th&gt;&lt;th&gt;Device Date and Time&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align='center'&gt;{0} {1}&lt;/td&gt;&lt;td align='center'&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1718" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
       <source>&lt;p&gt;There was an error communicating with the connected device.&lt;/p&gt;&lt;p&gt;Method: {0}&lt;/p&gt;&lt;p&gt;Message: {1}&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1761" />
       <source>The MicroPython cross compiler &lt;b&gt;mpy-cross&lt;/b&gt; cannot be found. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1787" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
       <source>The Python file &lt;b&gt;{0}&lt;/b&gt; does not exist. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1806" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50197,16 +50184,6 @@
     </message>
     <message>
       <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to open a file of the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
-      <source>Press to save the current editor to the connected device</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.ui" line="0" />
       <source>Press to run the current script on the selected device</source>
       <translation type="unfinished" />
     </message>
@@ -50229,194 +50206,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="86" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="87" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="89" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="188" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="190" />
       <source>BBC micro:bit/Calliope Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="401" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="389" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="372" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="191" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="403" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="391" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="374" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="193" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="195" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="197" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="198" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="200" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="202" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="491" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="204" />
       <source>Save Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="205" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="207" />
       <source>Save the current script to the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="208" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="210" />
       <source>Save Script as 'main.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="211" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="213" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="215" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="217" />
       <source>Reset {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="355" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="346" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="332" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="315" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="302" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="282" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="357" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="334" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="317" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="304" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="284" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="285" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed and plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;See the &lt;a href="https://microbit.org/guide/firmware/"&gt;micro:bit web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="303" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="305" />
       <source>&lt;p&gt;The BBC micro:bit is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MICROBIT is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="316" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="318" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the DAPLink firmware. Follow these instructions. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;unplug USB cable and any batteries&lt;/li&gt;&lt;li&gt;keep RESET button pressed an plug USB cable back in&lt;/li&gt;&lt;li&gt;a drive called MAINTENANCE should be available&lt;/li&gt;&lt;/ul&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="333" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="335" />
       <source>&lt;p&gt;The "Calliope mini" is not ready for flashing the MicroPython firmware. Please make sure, that a drive called MINI is available.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="350" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="356" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="358" />
       <source>There are multiple devices ready for flashing. Please make sure, that only one device is prepared.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="373" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="375" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython or CircuitPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="390" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="392" />
       <source>&lt;p&gt;The BBC micro:bit generation cannot be determined. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="402" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="404" />
       <source>&lt;p&gt;The firmware URL for the device type &lt;b&gt;{0}&lt;/b&gt; is not known. Aborting...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="429" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="431" />
       <source>unknown</source>
       <translation type="unfinished">未知</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="445" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="447" />
       <source>Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="448" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="450" />
       <source>&lt;h4&gt;{0} Version Information&lt;br/&gt;(BBC micro:bit v{1})&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{3}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="457" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="459" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="461" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="463" />
       <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="523" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="487" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="525" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="489" />
       <source>Save Script as '{0}'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="496" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="498" />
       <source>The current editor does not contain a Python script. Write it anyway?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="507" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="509" />
       <source>The script is empty. Aborting.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="516" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="518" />
       <source>Enter a file name on the device:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="539" />
       <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" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="597" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="599" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="629" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="616" />
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="601" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="631" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="618" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="603" />
       <source>DAPLink Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="608" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="610" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="612" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="614" />
       <source>CircuitPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="625" />
+      <location filename="../MicroPython/Devices/MicrobitDevices.py" line="627" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -62441,131 +62418,131 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="84" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="82" />
       <source>PyBoard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="199" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="197" />
       <source>Workspace Directory</source>
       <translation type="unfinished">工作空间目录</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="200" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="198" />
       <source>Python files for PyBoard can be edited in place, if the device volume is locally available. Such a volume was not found. In place editing will not be available.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="232" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="230" />
       <source>PyBoard Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="438" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="235" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="436" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="233" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="239" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="237" />
       <source>Activate Bootloader</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="242" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="240" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="421" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="246" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="406" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="244" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="249" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="247" />
       <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="308" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="306" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="309" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="307" />
       <source>The dfu-util firmware flashing tool &lt;b&gt;dfu-util&lt;/b&gt; cannot be found or is not executable. Ensure it is in the search path or configure it on the MicroPython configuration page.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="329" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="327" />
       <source>&lt;h3&gt;Enable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect everything from your board&lt;/p&gt;&lt;p&gt;2. Disconnect your board&lt;/p&gt;&lt;p&gt;3. Connect the DFU/BOOT0 pin with a 3.3V pin&lt;/p&gt;&lt;p&gt;4. Re-connect your board&lt;/p&gt;&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="339" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="337" />
       <source>&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; Make sure that all other DFU capable devices except your PyBoard are disconnected.&lt;hr /&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="345" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="343" />
       <source>&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="348" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="346" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="359" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="357" />
       <source>&lt;h3&gt;Disable DFU Mode&lt;/h3&gt;&lt;p&gt;1. Disconnect your board&lt;/p&gt;&lt;p&gt;2. Remove the DFU jumper&lt;/p&gt;&lt;p&gt;3. Re-connect your board&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Press &lt;b&gt;OK&lt;/b&gt; to continue...&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="365" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="420" />
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="418" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="385" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="383" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="410" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="408" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="439" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="437" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="466" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="464" />
       <source>unknown</source>
       <translation type="unfinished">未知</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="472" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="470" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="480" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="478" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="484" />
+      <location filename="../MicroPython/Devices/PyBoardDevices.py" line="482" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67713,78 +67690,78 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="70" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="71" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="126" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="127" />
       <source>RP2040 Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="198" />
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="129" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="133" />
-      <source>Activate Bootloader</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="136" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/RP2040Devices.py" line="199" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="130" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="134" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="137" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="200" />
       <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="231" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="232" />
       <source>unknown</source>
       <translation type="unfinished">未知</translation>
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="238" />
       <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;td&gt;{2}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="247" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="255" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="256" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="259" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="260" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="282" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="283" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="286" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="287" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="289" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="290" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/RP2040Devices.py" line="293" />
+      <location filename="../MicroPython/Devices/RP2040Devices.py" line="294" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -81752,74 +81729,74 @@
   <context>
     <name>TeensyDevice</name>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="69" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="70" />
       <source>Teensy</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="143" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="144" />
       <source>Teensy Functions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="184" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="146" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="150" />
-      <source>MicroPython Flash Instructions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="240" />
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="153" />
-      <source>Flash MicroPython Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="156" />
-      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="185" />
-      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="212" />
-      <source>unknown</source>
-      <translation type="unfinished">未知</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="218" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="226" />
-      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="230" />
-      <source>MicroPython Version</source>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="147" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="151" />
+      <source>MicroPython Flash Instructions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="241" />
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="154" />
+      <source>Flash MicroPython Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="157" />
+      <source>Start the 'Teensy Loader' application to flash the Teensy device.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="186" />
+      <source>The firmware of the connected device cannot be determined or the board does not run MicroPython. Aborting...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="213" />
+      <source>unknown</source>
+      <translation type="unfinished">未知</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="219" />
+      <source>&lt;h4&gt;MicroPython Version Information&lt;/h4&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Installed:&lt;/td&gt;&lt;td&gt;{0}&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Available:&lt;/td&gt;&lt;td&gt;{1}&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="227" />
+      <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="231" />
+      <source>MicroPython Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="242" />
       <source>&lt;p&gt;Teensy 4.0 and Teensy 4.1 are flashed using the 'Teensy Loader' application. Make sure you downloaded the MicroPython or CircuitPython .hex file.&lt;/p&gt;&lt;p&gt;See &lt;a href="{0}"&gt;the PJRC Teensy web site&lt;/a&gt; for details.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/Devices/TeensyDevices.py" line="260" />
-      <source>Start 'Teensy Loader'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/Devices/TeensyDevices.py" line="261" />
+      <source>Start 'Teensy Loader'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/Devices/TeensyDevices.py" line="262" />
       <source>&lt;p&gt;The 'Teensy Loader' application &lt;b&gt;teensy&lt;/b&gt; could not be started. Ensure it is in the application search path or start it manually.&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>

eric ide

mercurial