Updated translations. eric7

Sun, 12 Feb 2023 15:14:28 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 12 Feb 2023 15:14:28 +0100
branch
eric7
changeset 9754
ddf0407d42be
parent 9753
a774e75a45ca
child 9755
1a09700229e7

Updated translations.

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/src/eric7/i18n/eric7_cs.ts	Sat Feb 11 19:53:53 2023 +0100
+++ b/src/eric7/i18n/eric7_cs.ts	Sun Feb 12 15:14:28 2023 +0100
@@ -3776,95 +3776,100 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="90" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="92" />
       <source>CircuitPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="218" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="217" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="219" />
       <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/CircuitPythonDevices.py" line="252" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="249" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="257" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="253" />
+      <source>CircuitPython Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="256" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="324" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="337" />
       <location filename="../MicroPython/CircuitPythonDevices.py" line="260" />
       <source>Flash CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="404" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="277" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="417" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="290" />
       <source>Install Library Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="402" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="281" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="415" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="294" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="287" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="300" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="325" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="338" />
       <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/CircuitPythonDevices.py" line="357" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="370" />
       <source>unknown</source>
       <translation type="unfinished">neznámý</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="376" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="389" />
       <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/CircuitPythonDevices.py" line="384" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="397" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="388" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="401" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="410" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="423" />
       <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/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="451" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="468" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="481" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="472" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="485" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -19965,61 +19970,66 @@
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="69" />
+      <location filename="../MicroPython/EspDevices.py" line="71" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="377" />
-      <location filename="../MicroPython/EspDevices.py" line="132" />
+      <location filename="../MicroPython/EspDevices.py" line="127" />
+      <source>ESP32 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="400" />
+      <location filename="../MicroPython/EspDevices.py" line="130" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="198" />
-      <location filename="../MicroPython/EspDevices.py" line="184" />
+      <location filename="../MicroPython/EspDevices.py" line="220" />
+      <location filename="../MicroPython/EspDevices.py" line="206" />
       <location filename="../MicroPython/EspDevices.py" line="134" />
       <source>Erase Flash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="235" />
-      <location filename="../MicroPython/EspDevices.py" line="138" />
+      <location filename="../MicroPython/EspDevices.py" line="257" />
+      <location filename="../MicroPython/EspDevices.py" line="137" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="272" />
-      <location filename="../MicroPython/EspDevices.py" line="142" />
+      <location filename="../MicroPython/EspDevices.py" line="294" />
+      <location filename="../MicroPython/EspDevices.py" line="141" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="306" />
+      <location filename="../MicroPython/EspDevices.py" line="328" />
       <location filename="../MicroPython/EspDevices.py" line="145" />
       <source>Backup Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="357" />
+      <location filename="../MicroPython/EspDevices.py" line="379" />
       <location filename="../MicroPython/EspDevices.py" line="148" />
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <location filename="../MicroPython/EspDevices.py" line="152" />
       <source>Show Chip ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <location filename="../MicroPython/EspDevices.py" line="155" />
       <source>Show Flash ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <location filename="../MicroPython/EspDevices.py" line="158" />
       <source>Show MAC Address</source>
       <translation type="unfinished" />
@@ -20030,69 +20040,69 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="166" />
+      <location filename="../MicroPython/EspDevices.py" line="165" />
       <source>Install 'esptool.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="185" />
+      <location filename="../MicroPython/EspDevices.py" line="207" />
       <source>Shall the flash of the selected device really be erased?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="197" />
+      <location filename="../MicroPython/EspDevices.py" line="219" />
       <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="356" />
-      <location filename="../MicroPython/EspDevices.py" line="271" />
-      <location filename="../MicroPython/EspDevices.py" line="234" />
-      <source>'esptool write_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="305" />
-      <source>'esptool read_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/EspDevices.py" line="378" />
-      <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/EspDevices.py" line="410" />
+      <location filename="../MicroPython/EspDevices.py" line="293" />
+      <location filename="../MicroPython/EspDevices.py" line="256" />
+      <source>'esptool write_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="327" />
+      <source>'esptool read_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="401" />
+      <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/EspDevices.py" line="429" />
       <source>unknown</source>
       <translation type="unfinished">neznámý</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="416" />
-      <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/EspDevices.py" line="424" />
+      <location filename="../MicroPython/EspDevices.py" line="440" />
+      <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/EspDevices.py" line="448" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="428" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="452" />
+      <source>{0} Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -20111,46 +20121,11 @@
     </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>Select the ESP chip type</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>Enter the path of the firmware file</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>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>Flash Mode:</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>Leave empty to use the default mode.</source>
       <translation type="unfinished" />
     </message>
@@ -20164,6 +20139,51 @@
       <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>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -48975,53 +48995,63 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="269" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="271" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="276" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="404" />
-      <location filename="../MicroPython/MicroPythonDevices.py" line="393" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="408" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="397" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="527" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="549" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonDevices.py" line="550" />
+      <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/MicroPythonDevices.py" line="582" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="537" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="592" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="556" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="611" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="575" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="630" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="594" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="649" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="639" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="694" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="640" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="695" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -49662,17 +49692,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
       <source>MicroPython Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="287" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
       <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="328" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
       <source>%n supported device(s) detected.</source>
       <translation type="unfinished">
         <numerusform />
@@ -49681,18 +49711,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="341" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="358" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
       <source>No supported devices detected.</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="362" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation type="unfinished">
@@ -49702,70 +49732,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="431" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="402" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
       <source>Unknown MicroPython Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="403" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
       <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="415" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
       <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="432" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
       <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="561" />
-      <source>Clear</source>
-      <translation type="unfinished">Vyčistit</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="566" />
-      <source>Copy</source>
-      <translation type="unfinished">Kopírovat</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <source>Clear</source>
+      <translation type="unfinished">Vyčistit</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <source>Copy</source>
+      <translation type="unfinished">Kopírovat</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
       <source>Paste</source>
       <translation type="unfinished">Vložit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="579" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
       <source>Select All</source>
       <translation type="unfinished">Vybrat vše</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="605" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
       <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="610" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
       <source>Press to connect the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="637" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
       <source>No device attached</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="638" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
       <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.
@@ -49774,321 +49804,328 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="667" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
       <source>Start REPL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="668" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
       <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="1151" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1140" />
-      <source>Serial Device Connect</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1141" />
-      <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="1152" />
-      <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="1202" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1193" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1184" />
-      <source>Run Script</source>
-      <translation type="unfinished">Spustit skript</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <source>Serial Device Connect</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <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" />
+      <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" />
+      <source>Run Script</source>
+      <translation type="unfinished">Spustit skript</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
       <source>There is no editor open. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1194" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1203" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
       <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="1228" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
       <source>Open Python File</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
       <source>Python3 Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1274" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
       <source>Start Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1275" />
+      <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="1290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
       <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1307" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
       <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1308" />
+      <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="1356" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
       <source>Start File Manager</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1357" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
       <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="1376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1412" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
       <source>Downloads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1427" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
       <source>Show Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1431" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
       <source>Show Implementation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1441" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
       <source>Synchronize Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
       <source>Show Device Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
       <source>Show Local Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1451" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
       <source>Show Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1456" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
-      <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="1466" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1477" />
-      <source>Download Firmware</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" />
+      <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>
+      <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="1490" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
       <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1493" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
       <source>Manage Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1496" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
       <source>Ignored Serial Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1499" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
       <source>Configure</source>
       <translation type="unfinished">Konfigurovat</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1509" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
       <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
-      <source>No version information available.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1519" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1539" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1535" />
-      <source>unknown</source>
-      <translation type="unfinished">neznámý</translation>
-    </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="1551" />
+      <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="1552" />
+      <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="1593" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <source>No device implementation information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
       <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="1615" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
       <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="1623" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
       <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="1639" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
       <source>Device Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
       <source>Local Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
       <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="1693" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
       <source>Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
       <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="1694" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
       <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="1718" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
       <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="1761" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
       <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="1787" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
       <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="1797" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
       <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="1806" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50131,178 +50168,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="73" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="83" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="76" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="86" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="338" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="328" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="311" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="150" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="187" />
+      <source>BBC micro:bit/Calliope Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="400" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="388" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="190" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="153" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="194" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="156" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="197" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="418" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="159" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="488" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="201" />
       <source>Save Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="160" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="204" />
       <source>Save the current script to the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="162" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="207" />
       <source>Save Script as 'main.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="164" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="210" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="169" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="214" />
       <source>Reset {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="290" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="354" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="345" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="331" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="314" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="301" />
       <location filename="../MicroPython/MicrobitDevices.py" line="281" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="267" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="250" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="237" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="217" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="218" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="282" />
       <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/MicrobitDevices.py" line="238" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="302" />
       <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/MicrobitDevices.py" line="251" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="315" />
       <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/MicrobitDevices.py" line="268" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="332" />
       <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/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="347" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="291" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="355" />
       <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/MicrobitDevices.py" line="312" />
-      <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/MicrobitDevices.py" line="329" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="372" />
+      <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/MicrobitDevices.py" line="389" />
       <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/MicrobitDevices.py" line="339" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="401" />
       <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/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="428" />
       <source>unknown</source>
       <translation type="unfinished">neznámý</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="377" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;br/&gt;(BBC micro:bit v{2})&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/MicrobitDevices.py" line="386" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="444" />
+      <source>Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="447" />
+      <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/MicrobitDevices.py" line="456" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="390" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="452" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="416" />
-      <source>Save Script as '{0}'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="425" />
-      <source>The current editor does not contain a Python script. Write it anyway?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="436" />
-      <source>The script is empty. Aborting.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="445" />
-      <source>Enter a file name on the device:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="466" />
-      <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>
+      <location filename="../MicroPython/MicrobitDevices.py" line="460" />
+      <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicrobitDevices.py" line="522" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="486" />
+      <source>Save Script as '{0}'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="495" />
+      <source>The current editor does not contain a Python script. Write it anyway?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="506" />
+      <source>The script is empty. Aborting.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="515" />
+      <source>Enter a file name on the device:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="536" />
+      <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/MicrobitDevices.py" line="596" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="526" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="628" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="615" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="600" />
+      <source>DAPLink Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="607" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="541" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="530" />
-      <source>DAPLink Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="611" />
+      <source>CircuitPython Firmware for BBC micro:bit V2</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="624" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -62293,39 +62346,44 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="80" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="83" />
       <source>PyBoard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="195" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="198" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="196" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="199" />
       <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/PyBoardDevices.py" line="235" />
-      <source>Activate Bootloader</source>
+      <location filename="../MicroPython/PyBoardDevices.py" line="231" />
+      <source>PyBoard Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="437" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="234" />
+      <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/PyBoardDevices.py" line="238" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="241" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="423" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="242" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="403" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="390" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="420" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="407" />
       <location filename="../MicroPython/PyBoardDevices.py" line="245" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
@@ -62336,83 +62394,83 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="290" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="307" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="291" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="308" />
       <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/PyBoardDevices.py" line="311" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="328" />
       <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/PyBoardDevices.py" line="321" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="338" />
       <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/PyBoardDevices.py" line="327" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="344" />
       <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/PyBoardDevices.py" line="330" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="347" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="341" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="358" />
       <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/PyBoardDevices.py" line="349" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="366" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="402" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="392" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="409" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="424" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="438" />
       <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/PyBoardDevices.py" line="456" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="465" />
       <source>unknown</source>
       <translation type="unfinished">neznámý</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="462" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="471" />
       <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/PyBoardDevices.py" line="470" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="479" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="474" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="483" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67538,13 +67596,18 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="66" />
+      <location filename="../MicroPython/RP2040Devices.py" line="69" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="184" />
-      <location filename="../MicroPython/RP2040Devices.py" line="129" />
+      <location filename="../MicroPython/RP2040Devices.py" line="125" />
+      <source>RP2040 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/RP2040Devices.py" line="197" />
+      <location filename="../MicroPython/RP2040Devices.py" line="128" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
@@ -67559,52 +67622,52 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="185" />
+      <location filename="../MicroPython/RP2040Devices.py" line="198" />
       <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/RP2040Devices.py" line="222" />
+      <location filename="../MicroPython/RP2040Devices.py" line="230" />
       <source>unknown</source>
       <translation type="unfinished">neznámý</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="228" />
+      <location filename="../MicroPython/RP2040Devices.py" line="236" />
       <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/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/RP2040Devices.py" line="245" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/RP2040Devices.py" line="254" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="250" />
+      <location filename="../MicroPython/RP2040Devices.py" line="258" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="273" />
+      <location filename="../MicroPython/RP2040Devices.py" line="281" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="277" />
+      <location filename="../MicroPython/RP2040Devices.py" line="285" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="280" />
+      <location filename="../MicroPython/RP2040Devices.py" line="288" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="284" />
+      <location filename="../MicroPython/RP2040Devices.py" line="292" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
Binary file src/eric7/i18n/eric7_de.qm has changed
--- a/src/eric7/i18n/eric7_de.ts	Sat Feb 11 19:53:53 2023 +0100
+++ b/src/eric7/i18n/eric7_de.ts	Sun Feb 12 15:14:28 2023 +0100
@@ -3717,95 +3717,100 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="90" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="92" />
       <source>CircuitPython</source>
       <translation>CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="218" />
       <source>Workspace Directory</source>
       <translation>Arbeitsverzeichnis</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="217" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="219" />
       <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/CircuitPythonDevices.py" line="252" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="249" />
       <source>Library Management</source>
       <translation>Bibliotheksverwaltung</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="257" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="253" />
+      <source>CircuitPython Functions</source>
+      <translation>CircuitPython Funktionen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="256" />
       <source>Show CircuitPython Versions</source>
       <translation>Zeige CircuitPython Versionen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="324" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="337" />
       <location filename="../MicroPython/CircuitPythonDevices.py" line="260" />
       <source>Flash CircuitPython Firmware</source>
       <translation>CircuitPython Firmware flashen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="404" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="277" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="417" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="290" />
       <source>Install Library Files</source>
       <translation>Bibliotheksdateien installieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="402" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="281" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="415" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="294" />
       <source>Install Library Package</source>
       <translation>Bibliothekspaket installieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="287" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="300" />
       <source>Install 'circup' Package</source>
       <translation>'circup' Paket installieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="325" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="338" />
       <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/CircuitPythonDevices.py" line="357" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="370" />
       <source>unknown</source>
       <translation>unbekannt</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="376" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="389" />
       <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/CircuitPythonDevices.py" line="384" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="397" />
       <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/CircuitPythonDevices.py" line="388" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="401" />
       <source>CircuitPython Version</source>
       <translation>CircuitPython Version</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="410" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="423" />
       <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/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="451" />
       <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/CircuitPythonDevices.py" line="468" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="481" />
       <source>CircuitPython Firmware</source>
       <translation>CircuitPython Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="472" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="485" />
       <source>CircuitPython Libraries</source>
       <translation>CircuitPython Bibliotheken</translation>
     </message>
@@ -19889,61 +19894,66 @@
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="69" />
+      <location filename="../MicroPython/EspDevices.py" line="71" />
       <source>ESP8266, ESP32</source>
       <translation>ESP8266, ESP32</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="377" />
-      <location filename="../MicroPython/EspDevices.py" line="132" />
+      <location filename="../MicroPython/EspDevices.py" line="127" />
+      <source>ESP32 Functions</source>
+      <translation>ESP32 Funktionen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="400" />
+      <location filename="../MicroPython/EspDevices.py" line="130" />
       <source>Show MicroPython Versions</source>
       <translation>Zeige MicroPython Versionen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="198" />
-      <location filename="../MicroPython/EspDevices.py" line="184" />
+      <location filename="../MicroPython/EspDevices.py" line="220" />
+      <location filename="../MicroPython/EspDevices.py" line="206" />
       <location filename="../MicroPython/EspDevices.py" line="134" />
       <source>Erase Flash</source>
       <translation>Flash löschen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="235" />
-      <location filename="../MicroPython/EspDevices.py" line="138" />
+      <location filename="../MicroPython/EspDevices.py" line="257" />
+      <location filename="../MicroPython/EspDevices.py" line="137" />
       <source>Flash MicroPython Firmware</source>
       <translation>MicroPython Firmware flashen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="272" />
-      <location filename="../MicroPython/EspDevices.py" line="142" />
+      <location filename="../MicroPython/EspDevices.py" line="294" />
+      <location filename="../MicroPython/EspDevices.py" line="141" />
       <source>Flash Additional Firmware</source>
       <translation>Zusätzliche Firmware flashen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="306" />
+      <location filename="../MicroPython/EspDevices.py" line="328" />
       <location filename="../MicroPython/EspDevices.py" line="145" />
       <source>Backup Firmware</source>
       <translation>Firmware sichern</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="357" />
+      <location filename="../MicroPython/EspDevices.py" line="379" />
       <location filename="../MicroPython/EspDevices.py" line="148" />
       <source>Restore Firmware</source>
       <translation>Firmware zurückspielen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <location filename="../MicroPython/EspDevices.py" line="152" />
       <source>Show Chip ID</source>
       <translation>Chip ID anzeigen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <location filename="../MicroPython/EspDevices.py" line="155" />
       <source>Show Flash ID</source>
       <translation>Flash ID anzeigen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <location filename="../MicroPython/EspDevices.py" line="158" />
       <source>Show MAC Address</source>
       <translation>MAC Adresse anzeigen</translation>
@@ -19954,69 +19964,69 @@
       <translation>Gerät zurücksetzen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="166" />
+      <location filename="../MicroPython/EspDevices.py" line="165" />
       <source>Install 'esptool.py'</source>
       <translation>'esptool.py' installieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="185" />
+      <location filename="../MicroPython/EspDevices.py" line="207" />
       <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/EspDevices.py" line="197" />
+      <location filename="../MicroPython/EspDevices.py" line="219" />
       <source>'esptool erase_flash' Output</source>
       <translation>Ausgabe von 'esptool erase_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="356" />
-      <location filename="../MicroPython/EspDevices.py" line="271" />
-      <location filename="../MicroPython/EspDevices.py" line="234" />
-      <source>'esptool write_flash' Output</source>
-      <translation>Ausgabe von 'esptool write_flash'</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="305" />
-      <source>'esptool read_flash' Output</source>
-      <translation>Ausgabe von 'esptool read_flash'</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/EspDevices.py" line="378" />
-      <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/EspDevices.py" line="410" />
+      <location filename="../MicroPython/EspDevices.py" line="293" />
+      <location filename="../MicroPython/EspDevices.py" line="256" />
+      <source>'esptool write_flash' Output</source>
+      <translation>Ausgabe von 'esptool write_flash'</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="327" />
+      <source>'esptool read_flash' Output</source>
+      <translation>Ausgabe von 'esptool read_flash'</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="401" />
+      <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/EspDevices.py" line="429" />
       <source>unknown</source>
       <translation>unbekannt</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="416" />
-      <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/EspDevices.py" line="424" />
+      <location filename="../MicroPython/EspDevices.py" line="440" />
+      <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/EspDevices.py" line="448" />
       <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/EspDevices.py" line="428" />
-      <source>MicroPython Version</source>
-      <translation>MicroPython Version</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="452" />
+      <source>{0} Version</source>
+      <translation>{0} Version</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <source>'esptool chip_id' Output</source>
       <translation>Ausgabe von 'esptool chip_id'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <source>'esptool flash_id' Output</source>
       <translation>Ausgabe von 'esptool flash_id'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <source>'esptool read_mac' Output</source>
       <translation>Ausgabe von 'esptool read_mac'</translation>
     </message>
@@ -20035,46 +20045,11 @@
     </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>Select the ESP chip type</source>
-      <translation>Wähle den ESP Chiptyp</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>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>Baud Rate:</source>
       <translation>Baudrate:</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>Flash Mode:</source>
-      <translation>Flash Modus:</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>Leave empty to use the default mode.</source>
       <translation>Leer lassen, um den Standardmodus zu verwenden.</translation>
     </message>
@@ -20088,6 +20063,51 @@
       <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>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -48852,53 +48872,63 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="269" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="271" />
       <source>RP2040 based</source>
       <translation>RP2040 basiert</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="276" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Generic Board</source>
       <translation>Generisches Board</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="404" />
-      <location filename="../MicroPython/MicroPythonDevices.py" line="393" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="408" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="397" />
       <source>Unknown Device</source>
       <translation>Unbekanntes Gerät</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="527" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="549" />
+      <source>Show MicroPython Versions</source>
+      <translation>Zeige MicroPython Versionen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonDevices.py" line="550" />
+      <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/MicroPythonDevices.py" line="582" />
       <source>Unsupported Device</source>
       <translation>Nicht unterstütztes Gerät</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="537" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="592" />
       <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/MicroPythonDevices.py" line="556" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="611" />
       <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/MicroPythonDevices.py" line="575" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="630" />
       <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/MicroPythonDevices.py" line="594" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="649" />
       <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/MicroPythonDevices.py" line="639" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="694" />
       <source>Select Device Directory</source>
       <translation>Auswahl des Geräteverzeichnis</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="640" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="695" />
       <source>Select the directory for the connected device:</source>
       <translation>Wähle das Verzeichnis für das verbundene Gerät:</translation>
     </message>
@@ -49539,17 +49569,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
       <source>MicroPython Menu</source>
       <translation>MicroPython MenÜ</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="287" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
       <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="328" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
       <source>%n supported device(s) detected.</source>
       <translation>
         <numerusform>%n unterstütztes Gerät gefunden.</numerusform>
@@ -49557,18 +49587,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="341" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
       <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="358" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
       <source>No supported devices detected.</source>
       <translation>Keine unterstützten Geräte gefunden.</translation>
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="362" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation>
@@ -49579,70 +49609,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
       <source>Manual Selection</source>
       <translation>Manuelle Auswahl</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="431" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="402" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
       <source>Unknown MicroPython Device</source>
       <translation>Unbekanntes MicroPython Gerät</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="403" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
       <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="415" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
       <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="432" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
       <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="561" />
-      <source>Clear</source>
-      <translation>Löschen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="566" />
-      <source>Copy</source>
-      <translation>Kopieren</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <source>Clear</source>
+      <translation>Löschen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <source>Copy</source>
+      <translation>Kopieren</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
       <source>Paste</source>
       <translation>Einfügen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="579" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
       <source>Select All</source>
       <translation>Alles auswählen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="605" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
       <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="610" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
       <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="637" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
       <source>No device attached</source>
       <translation>Kein Gerät angeschlossen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="638" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
       <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.
@@ -49655,321 +49685,328 @@
 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="667" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
       <source>Start REPL</source>
       <translation>REPL starten</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="668" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
       <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="1151" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1140" />
-      <source>Serial Device Connect</source>
-      <translation>Serielle Verbindung</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1141" />
-      <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="1152" />
-      <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="1202" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1193" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1184" />
-      <source>Run Script</source>
-      <translation>Skript ausführen</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <source>Serial Device Connect</source>
+      <translation>Serielle Verbindung</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <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" />
+      <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" />
+      <source>Run Script</source>
+      <translation>Skript ausführen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
       <source>There is no editor open. Abort...</source>
       <translation>Es ist kein Editor offen. Abbruch...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1194" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
       <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="1203" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
       <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="1228" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
       <source>Open Python File</source>
       <translation>Pythondatei öffnen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
       <source>Python3 Files (*.py);;All Files (*)</source>
       <translation>Python3 Dateien (*.py);;Alle Dateien (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1274" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
       <source>Start Chart</source>
       <translation>Chart starten</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1275" />
+      <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="1290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
       <source>µPy Chart</source>
       <translation>µPy Chart</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1307" />
+      <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="1308" />
+      <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="1356" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
       <source>Start File Manager</source>
       <translation>Dateimanager starten</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1357" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
       <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="1376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
       <source>µPy Files</source>
       <translation>µPy Dateien</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1412" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
       <source>Downloads</source>
       <translation>Downloads</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1427" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
       <source>Show Version</source>
       <translation>Version anzeigen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1431" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
       <source>Show Implementation</source>
       <translation>Implementierung anzeigen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
       <source>Show Board Data</source>
       <translation>Board Daten anzeigen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1441" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
       <source>Synchronize Time</source>
       <translation>Zeit synchronisieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
       <source>Show Device Time</source>
       <translation>Gerätezeit anzeigen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <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="1451" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
       <source>Show Time</source>
       <translation>Zeit anzeigen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1456" />
-      <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="1462" />
-      <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="1466" />
-      <source>Compile Current Editor</source>
-      <translation>Aktuellen Editor übersetzen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1477" />
-      <source>Download Firmware</source>
-      <translation>Firmware herunterladen</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" />
+      <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>
+    </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="1490" />
+      <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="1493" />
+      <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="1496" />
+      <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="1499" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
       <source>Configure</source>
       <translation>Einstellungen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1509" />
+      <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>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
-      <source>No version information available.</source>
-      <translation>Keine Versionsinformationen verfügbar.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1519" />
-      <source>Device Version Information</source>
-      <translation>Versionsinformationen des Gerätes</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1539" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1535" />
-      <source>unknown</source>
-      <translation>unbekannt</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="1551" />
+      <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="1552" />
+      <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="1593" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <source>No device implementation information available.</source>
+      <translation>Keine Informationen zur Implementierung verfügbar.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
       <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="1615" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
       <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="1623" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
       <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="1639" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
       <source>Device Date and Time</source>
       <translation>Datum und Zeit des Gerätes</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
       <source>Local Date and Time</source>
       <translation>Lokales Datum und Zeit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
       <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="1693" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
       <source>Date and Time</source>
       <translation>Datum und Zeit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
       <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="1694" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
       <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="1718" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
       <source>Error handling device</source>
       <translation>Fehler bei Gerätekommunikation</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
       <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="1761" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
       <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="1787" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation>Python-Dateien (*.py);;Alle Dateien (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
       <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="1806" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
       <source>'mpy-cross' Output</source>
       <translation>'mpy-cross' Ausgabe</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
       <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="1924" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
       <source>Add Unknown Devices</source>
       <translation>Unbekannte Geräte hinzufügen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
       <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="1966" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
       <source>Plus any modules on the filesystem.</source>
       <translation>Zusätzlich alle Module im Dateisystem.</translation>
     </message>
@@ -50012,178 +50049,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="73" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="83" />
       <source>BBC micro:bit</source>
       <translation>BBC micro:bit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="76" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="86" />
       <source>Calliope mini</source>
       <translation>Calliope mini</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="338" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="328" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="311" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="150" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="187" />
+      <source>BBC micro:bit/Calliope Functions</source>
+      <translation>BBC micro:bit/Calliope Funktionen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="400" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="388" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="190" />
       <source>Show MicroPython Versions</source>
       <translation>Zeige MicroPython Versionen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="153" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="194" />
       <source>Flash MicroPython</source>
       <translation>MicroPython flashen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="156" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="197" />
       <source>Flash Firmware</source>
       <translation>Firmware flashen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="418" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="159" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="488" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="201" />
       <source>Save Script</source>
       <translation>Skript speichern</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="160" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="204" />
       <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/MicrobitDevices.py" line="162" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="207" />
       <source>Save Script as 'main.py'</source>
       <translation>Skript als 'main.py' speichern</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="164" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="210" />
       <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/MicrobitDevices.py" line="169" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="214" />
       <source>Reset {0}</source>
       <translation>{0} zurücksetzen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="290" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="354" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="345" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="331" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="314" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="301" />
       <location filename="../MicroPython/MicrobitDevices.py" line="281" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="267" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="250" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="237" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="217" />
       <source>Flash MicroPython/Firmware</source>
       <translation>MicroPython/Firmware flashen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="218" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="282" />
       <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/MicrobitDevices.py" line="238" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="302" />
       <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/MicrobitDevices.py" line="251" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="315" />
       <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/MicrobitDevices.py" line="268" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="332" />
       <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/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="347" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation>MicroPython/Firmware Dateien (*.hex *.bin);;Alle Dateien (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="291" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="355" />
       <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/MicrobitDevices.py" line="312" />
-      <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/MicrobitDevices.py" line="329" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="372" />
+      <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/MicrobitDevices.py" line="389" />
       <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/MicrobitDevices.py" line="339" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="401" />
       <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/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="428" />
       <source>unknown</source>
       <translation>unbekannt</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="377" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;br/&gt;(BBC micro:bit v{2})&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;br/&gt;(BBC micro:bit v{2})&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/MicrobitDevices.py" line="386" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="444" />
+      <source>Firmware</source>
+      <translation>Firmware</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="447" />
+      <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/MicrobitDevices.py" line="456" />
       <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/MicrobitDevices.py" line="390" />
-      <source>MicroPython Version</source>
-      <translation>MicroPython Version</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="452" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="416" />
-      <source>Save Script as '{0}'</source>
-      <translation>Skript als '{0}' speichern</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="425" />
-      <source>The current editor does not contain a Python script. Write it anyway?</source>
-      <translation>Der aktuelle Editor enthält kein Python Skript. Trotzdem schreiben?</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="436" />
-      <source>The script is empty. Aborting.</source>
-      <translation>Das Skript ist leer. Abbruch.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="445" />
-      <source>Enter a file name on the device:</source>
-      <translation>Gib einen Dateinamen auf dem Gerät ein:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="466" />
-      <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>
+      <location filename="../MicroPython/MicrobitDevices.py" line="460" />
+      <source>{0} Version</source>
+      <translation>{0} Version</translation>
     </message>
     <message>
       <location filename="../MicroPython/MicrobitDevices.py" line="522" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="486" />
+      <source>Save Script as '{0}'</source>
+      <translation>Skript als '{0}' speichern</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="495" />
+      <source>The current editor does not contain a Python script. Write it anyway?</source>
+      <translation>Der aktuelle Editor enthält kein Python Skript. Trotzdem schreiben?</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="506" />
+      <source>The script is empty. Aborting.</source>
+      <translation>Das Skript ist leer. Abbruch.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="515" />
+      <source>Enter a file name on the device:</source>
+      <translation>Gib einen Dateinamen auf dem Gerät ein:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="536" />
+      <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Das Skript konnte nicht auf dem Gerät gespeichert werden&lt;/p&gt;&lt;p&gt;Ursache: {0}&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="596" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation>MicroPython Firmware für  BBC micro:bit V1</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="526" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="628" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="615" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="600" />
+      <source>DAPLink Firmware</source>
+      <translation>DAPLink Firmware</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="607" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation>MicroPython Firmware für  BBC micro:bit V2</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="541" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="530" />
-      <source>DAPLink Firmware</source>
-      <translation>DAPLink Firmware</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="611" />
+      <source>CircuitPython Firmware for BBC micro:bit V2</source>
+      <translation>CircuitPython Firmware für  BBC micro:bit V2</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="624" />
       <source>MicroPython Firmware</source>
       <translation>MicroPython Firmware</translation>
     </message>
@@ -61933,39 +61986,44 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="80" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="83" />
       <source>PyBoard</source>
       <translation>PyBoard</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="195" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="198" />
       <source>Workspace Directory</source>
       <translation>Arbeitsverzeichnis</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="196" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="199" />
       <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/PyBoardDevices.py" line="235" />
-      <source>Activate Bootloader</source>
-      <translation>Bootloader aktivieren</translation>
+      <location filename="../MicroPython/PyBoardDevices.py" line="231" />
+      <source>PyBoard Functions</source>
+      <translation>PyBoard Funktionen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="437" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="234" />
+      <source>Show MicroPython Versions</source>
+      <translation>Zeige MicroPython Versionen</translation>
     </message>
     <message>
       <location filename="../MicroPython/PyBoardDevices.py" line="238" />
+      <source>Activate Bootloader</source>
+      <translation>Bootloader aktivieren</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="241" />
       <source>List DFU-capable Devices</source>
       <translation>Liste der DFU fähigen Geräte</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="423" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="242" />
-      <source>Show MicroPython Versions</source>
-      <translation>Zeige MicroPython Versionen</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="403" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="390" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="420" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="407" />
       <location filename="../MicroPython/PyBoardDevices.py" line="245" />
       <source>Flash MicroPython Firmware</source>
       <translation>MicroPython Firmware flashen</translation>
@@ -61976,83 +62034,83 @@
       <translation>MicroPython Flashanweisungen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="290" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="307" />
       <source>dfu-util not available</source>
       <translation>dfu-util ist nicht verfügbar</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="291" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="308" />
       <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/PyBoardDevices.py" line="311" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="328" />
       <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/PyBoardDevices.py" line="321" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="338" />
       <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/PyBoardDevices.py" line="327" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="344" />
       <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/PyBoardDevices.py" line="330" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="347" />
       <source>Enable DFU mode</source>
       <translation>DFU Modus aktivieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="341" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="358" />
       <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/PyBoardDevices.py" line="349" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="366" />
       <source>Disable DFU mode</source>
       <translation>DFU Modus deaktivieren</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="402" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>'dfu-util' Output</source>
       <translation>'dfu-util' Ausgabe</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>List DFU capable Devices</source>
       <translation>Liste der DFU fähigen Geräte</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="392" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="409" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation>MicroPython Firmwaredateien (*.dfu);;Alle Dateien (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="424" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="438" />
       <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/PyBoardDevices.py" line="456" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="465" />
       <source>unknown</source>
       <translation>unbekannt</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="462" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="471" />
       <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/PyBoardDevices.py" line="470" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="479" />
       <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/PyBoardDevices.py" line="474" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="483" />
       <source>MicroPython Version</source>
       <translation>MicroPython Version</translation>
     </message>
@@ -67218,13 +67276,18 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="66" />
+      <location filename="../MicroPython/RP2040Devices.py" line="69" />
       <source>RP2040</source>
       <translation>RP2040</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="184" />
-      <location filename="../MicroPython/RP2040Devices.py" line="129" />
+      <location filename="../MicroPython/RP2040Devices.py" line="125" />
+      <source>RP2040 Functions</source>
+      <translation>RP2040 Funktionen</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/RP2040Devices.py" line="197" />
+      <location filename="../MicroPython/RP2040Devices.py" line="128" />
       <source>Show MicroPython Versions</source>
       <translation>Zeige MicroPython Versionen</translation>
     </message>
@@ -67239,52 +67302,52 @@
       <translation>MicroPython Firmware flashen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="185" />
+      <location filename="../MicroPython/RP2040Devices.py" line="198" />
       <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/RP2040Devices.py" line="222" />
+      <location filename="../MicroPython/RP2040Devices.py" line="230" />
       <source>unknown</source>
       <translation>unbekannt</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="228" />
+      <location filename="../MicroPython/RP2040Devices.py" line="236" />
       <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/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/RP2040Devices.py" line="245" />
       <source>({0})</source>
       <translation>({0})</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/RP2040Devices.py" line="254" />
       <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/RP2040Devices.py" line="250" />
+      <location filename="../MicroPython/RP2040Devices.py" line="258" />
       <source>MicroPython Version</source>
       <translation>MicroPython Version</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="273" />
+      <location filename="../MicroPython/RP2040Devices.py" line="281" />
       <source>MicroPython Firmware</source>
       <translation>MicroPython Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="277" />
+      <location filename="../MicroPython/RP2040Devices.py" line="285" />
       <source>Pimoroni Pico Firmware</source>
       <translation>Pimoroni Pico Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="280" />
+      <location filename="../MicroPython/RP2040Devices.py" line="288" />
       <source>CircuitPython Firmware</source>
       <translation>CircuitPython Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="284" />
+      <location filename="../MicroPython/RP2040Devices.py" line="292" />
       <source>CircuitPython Libraries</source>
       <translation>CircuitPython Bibliotheken</translation>
     </message>
--- a/src/eric7/i18n/eric7_empty.ts	Sat Feb 11 19:53:53 2023 +0100
+++ b/src/eric7/i18n/eric7_empty.ts	Sun Feb 12 15:14:28 2023 +0100
@@ -3683,95 +3683,100 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="90" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="92" />
       <source>CircuitPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="218" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="217" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="219" />
       <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/CircuitPythonDevices.py" line="252" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="249" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="257" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="253" />
+      <source>CircuitPython Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="256" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="324" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="337" />
       <location filename="../MicroPython/CircuitPythonDevices.py" line="260" />
       <source>Flash CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="404" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="277" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="417" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="290" />
       <source>Install Library Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="402" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="281" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="415" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="294" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="287" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="300" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="325" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="338" />
       <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/CircuitPythonDevices.py" line="357" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="370" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="376" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="389" />
       <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/CircuitPythonDevices.py" line="384" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="397" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="388" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="401" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="410" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="423" />
       <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/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="451" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="468" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="481" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="472" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="485" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -19770,61 +19775,66 @@
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="69" />
+      <location filename="../MicroPython/EspDevices.py" line="71" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="377" />
-      <location filename="../MicroPython/EspDevices.py" line="132" />
+      <location filename="../MicroPython/EspDevices.py" line="127" />
+      <source>ESP32 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="400" />
+      <location filename="../MicroPython/EspDevices.py" line="130" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="198" />
-      <location filename="../MicroPython/EspDevices.py" line="184" />
+      <location filename="../MicroPython/EspDevices.py" line="220" />
+      <location filename="../MicroPython/EspDevices.py" line="206" />
       <location filename="../MicroPython/EspDevices.py" line="134" />
       <source>Erase Flash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="235" />
-      <location filename="../MicroPython/EspDevices.py" line="138" />
+      <location filename="../MicroPython/EspDevices.py" line="257" />
+      <location filename="../MicroPython/EspDevices.py" line="137" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="272" />
-      <location filename="../MicroPython/EspDevices.py" line="142" />
+      <location filename="../MicroPython/EspDevices.py" line="294" />
+      <location filename="../MicroPython/EspDevices.py" line="141" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="306" />
+      <location filename="../MicroPython/EspDevices.py" line="328" />
       <location filename="../MicroPython/EspDevices.py" line="145" />
       <source>Backup Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="357" />
+      <location filename="../MicroPython/EspDevices.py" line="379" />
       <location filename="../MicroPython/EspDevices.py" line="148" />
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <location filename="../MicroPython/EspDevices.py" line="152" />
       <source>Show Chip ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <location filename="../MicroPython/EspDevices.py" line="155" />
       <source>Show Flash ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <location filename="../MicroPython/EspDevices.py" line="158" />
       <source>Show MAC Address</source>
       <translation type="unfinished" />
@@ -19835,69 +19845,69 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="166" />
+      <location filename="../MicroPython/EspDevices.py" line="165" />
       <source>Install 'esptool.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="185" />
+      <location filename="../MicroPython/EspDevices.py" line="207" />
       <source>Shall the flash of the selected device really be erased?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="197" />
+      <location filename="../MicroPython/EspDevices.py" line="219" />
       <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="356" />
-      <location filename="../MicroPython/EspDevices.py" line="271" />
-      <location filename="../MicroPython/EspDevices.py" line="234" />
-      <source>'esptool write_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="305" />
-      <source>'esptool read_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/EspDevices.py" line="378" />
-      <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/EspDevices.py" line="410" />
+      <location filename="../MicroPython/EspDevices.py" line="293" />
+      <location filename="../MicroPython/EspDevices.py" line="256" />
+      <source>'esptool write_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="327" />
+      <source>'esptool read_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="401" />
+      <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/EspDevices.py" line="429" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="416" />
-      <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/EspDevices.py" line="424" />
+      <location filename="../MicroPython/EspDevices.py" line="440" />
+      <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/EspDevices.py" line="448" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="428" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="452" />
+      <source>{0} Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -19916,46 +19926,11 @@
     </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>Select the ESP chip type</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>Enter the path of the firmware file</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>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>Flash Mode:</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>Leave empty to use the default mode.</source>
       <translation type="unfinished" />
     </message>
@@ -19969,6 +19944,51 @@
       <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>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -48617,53 +48637,63 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="269" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="271" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="276" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="404" />
-      <location filename="../MicroPython/MicroPythonDevices.py" line="393" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="408" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="397" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="527" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="549" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonDevices.py" line="550" />
+      <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/MicroPythonDevices.py" line="582" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="537" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="592" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="556" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="611" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="575" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="630" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="594" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="649" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="639" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="694" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="640" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="695" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -49304,35 +49334,35 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
       <source>MicroPython Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="287" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
       <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="328" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
       <source>%n supported device(s) detected.</source>
       <translation type="unfinished">
         <numerusform />
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="341" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="358" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
       <source>No supported devices detected.</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="362" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation type="unfinished">
@@ -49340,70 +49370,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="431" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="402" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
       <source>Unknown MicroPython Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="403" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
       <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="415" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
       <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="432" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
       <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="561" />
-      <source>Clear</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="566" />
-      <source>Copy</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <source>Clear</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <source>Copy</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
       <source>Paste</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="579" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
       <source>Select All</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="605" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
       <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="610" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
       <source>Press to connect the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="637" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
       <source>No device attached</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="638" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
       <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.
@@ -49412,321 +49442,328 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="667" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
       <source>Start REPL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="668" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
       <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="1151" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1140" />
-      <source>Serial Device Connect</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1141" />
-      <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="1152" />
-      <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="1202" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1193" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1184" />
-      <source>Run Script</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <source>Serial Device Connect</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <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" />
+      <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" />
+      <source>Run Script</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
       <source>There is no editor open. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1194" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1203" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
       <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="1228" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
       <source>Open Python File</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
       <source>Python3 Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1274" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
       <source>Start Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1275" />
+      <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="1290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
       <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1307" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
       <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1308" />
+      <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="1356" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
       <source>Start File Manager</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1357" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
       <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="1376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1412" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
       <source>Downloads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1427" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
       <source>Show Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1431" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
       <source>Show Implementation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1441" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
       <source>Synchronize Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
       <source>Show Device Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
       <source>Show Local Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1451" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
       <source>Show Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1456" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
-      <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="1466" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1477" />
-      <source>Download Firmware</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" />
+      <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>
+      <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="1490" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
       <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1493" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
       <source>Manage Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1496" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
       <source>Ignored Serial Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1499" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
       <source>Configure</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1509" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
       <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
-      <source>No version information available.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1519" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1539" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1535" />
-      <source>unknown</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="1551" />
+      <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="1552" />
+      <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="1593" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <source>No device implementation information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
       <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="1615" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
       <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="1623" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
       <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="1639" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
       <source>Device Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
       <source>Local Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
       <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="1693" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
       <source>Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
       <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="1694" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
       <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="1718" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
       <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="1761" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
       <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="1787" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
       <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="1806" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -49769,178 +49806,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="73" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="83" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="76" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="86" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="338" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="328" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="311" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="150" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="187" />
+      <source>BBC micro:bit/Calliope Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="400" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="388" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="190" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="153" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="194" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="156" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="197" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="418" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="159" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="488" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="201" />
       <source>Save Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="160" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="204" />
       <source>Save the current script to the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="162" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="207" />
       <source>Save Script as 'main.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="164" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="210" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="169" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="214" />
       <source>Reset {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="290" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="354" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="345" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="331" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="314" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="301" />
       <location filename="../MicroPython/MicrobitDevices.py" line="281" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="267" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="250" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="237" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="217" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="218" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="282" />
       <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/MicrobitDevices.py" line="238" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="302" />
       <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/MicrobitDevices.py" line="251" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="315" />
       <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/MicrobitDevices.py" line="268" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="332" />
       <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/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="347" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="291" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="355" />
       <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/MicrobitDevices.py" line="312" />
-      <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/MicrobitDevices.py" line="329" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="372" />
+      <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/MicrobitDevices.py" line="389" />
       <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/MicrobitDevices.py" line="339" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="401" />
       <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/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="428" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="377" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;br/&gt;(BBC micro:bit v{2})&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/MicrobitDevices.py" line="386" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="444" />
+      <source>Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="447" />
+      <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/MicrobitDevices.py" line="456" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="390" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="452" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="416" />
-      <source>Save Script as '{0}'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="425" />
-      <source>The current editor does not contain a Python script. Write it anyway?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="436" />
-      <source>The script is empty. Aborting.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="445" />
-      <source>Enter a file name on the device:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="466" />
-      <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>
+      <location filename="../MicroPython/MicrobitDevices.py" line="460" />
+      <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicrobitDevices.py" line="522" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="486" />
+      <source>Save Script as '{0}'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="495" />
+      <source>The current editor does not contain a Python script. Write it anyway?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="506" />
+      <source>The script is empty. Aborting.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="515" />
+      <source>Enter a file name on the device:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="536" />
+      <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/MicrobitDevices.py" line="596" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="526" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="628" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="615" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="600" />
+      <source>DAPLink Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="607" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="541" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="530" />
-      <source>DAPLink Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="611" />
+      <source>CircuitPython Firmware for BBC micro:bit V2</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="624" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -61661,39 +61714,44 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="80" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="83" />
       <source>PyBoard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="195" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="198" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="196" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="199" />
       <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/PyBoardDevices.py" line="235" />
-      <source>Activate Bootloader</source>
+      <location filename="../MicroPython/PyBoardDevices.py" line="231" />
+      <source>PyBoard Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="437" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="234" />
+      <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/PyBoardDevices.py" line="238" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="241" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="423" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="242" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="403" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="390" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="420" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="407" />
       <location filename="../MicroPython/PyBoardDevices.py" line="245" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
@@ -61704,83 +61762,83 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="290" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="307" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="291" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="308" />
       <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/PyBoardDevices.py" line="311" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="328" />
       <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/PyBoardDevices.py" line="321" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="338" />
       <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/PyBoardDevices.py" line="327" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="344" />
       <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/PyBoardDevices.py" line="330" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="347" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="341" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="358" />
       <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/PyBoardDevices.py" line="349" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="366" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="402" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="392" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="409" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="424" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="438" />
       <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/PyBoardDevices.py" line="456" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="465" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="462" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="471" />
       <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/PyBoardDevices.py" line="470" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="479" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="474" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="483" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -66813,13 +66871,18 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="66" />
+      <location filename="../MicroPython/RP2040Devices.py" line="69" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="184" />
-      <location filename="../MicroPython/RP2040Devices.py" line="129" />
+      <location filename="../MicroPython/RP2040Devices.py" line="125" />
+      <source>RP2040 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/RP2040Devices.py" line="197" />
+      <location filename="../MicroPython/RP2040Devices.py" line="128" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
@@ -66834,52 +66897,52 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="185" />
+      <location filename="../MicroPython/RP2040Devices.py" line="198" />
       <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/RP2040Devices.py" line="222" />
+      <location filename="../MicroPython/RP2040Devices.py" line="230" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="228" />
+      <location filename="../MicroPython/RP2040Devices.py" line="236" />
       <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/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/RP2040Devices.py" line="245" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/RP2040Devices.py" line="254" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="250" />
+      <location filename="../MicroPython/RP2040Devices.py" line="258" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="273" />
+      <location filename="../MicroPython/RP2040Devices.py" line="281" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="277" />
+      <location filename="../MicroPython/RP2040Devices.py" line="285" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="280" />
+      <location filename="../MicroPython/RP2040Devices.py" line="288" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="284" />
+      <location filename="../MicroPython/RP2040Devices.py" line="292" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_en.ts	Sat Feb 11 19:53:53 2023 +0100
+++ b/src/eric7/i18n/eric7_en.ts	Sun Feb 12 15:14:28 2023 +0100
@@ -3683,95 +3683,100 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="90" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="92" />
       <source>CircuitPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="218" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="217" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="219" />
       <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/CircuitPythonDevices.py" line="252" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="249" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="257" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="253" />
+      <source>CircuitPython Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="256" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="324" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="337" />
       <location filename="../MicroPython/CircuitPythonDevices.py" line="260" />
       <source>Flash CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="404" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="277" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="417" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="290" />
       <source>Install Library Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="402" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="281" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="415" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="294" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="287" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="300" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="325" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="338" />
       <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/CircuitPythonDevices.py" line="357" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="370" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="376" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="389" />
       <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/CircuitPythonDevices.py" line="384" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="397" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="388" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="401" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="410" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="423" />
       <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/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="451" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="468" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="481" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="472" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="485" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -19785,61 +19790,66 @@
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="69" />
+      <location filename="../MicroPython/EspDevices.py" line="71" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="377" />
-      <location filename="../MicroPython/EspDevices.py" line="132" />
+      <location filename="../MicroPython/EspDevices.py" line="127" />
+      <source>ESP32 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="400" />
+      <location filename="../MicroPython/EspDevices.py" line="130" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="198" />
-      <location filename="../MicroPython/EspDevices.py" line="184" />
+      <location filename="../MicroPython/EspDevices.py" line="220" />
+      <location filename="../MicroPython/EspDevices.py" line="206" />
       <location filename="../MicroPython/EspDevices.py" line="134" />
       <source>Erase Flash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="235" />
-      <location filename="../MicroPython/EspDevices.py" line="138" />
+      <location filename="../MicroPython/EspDevices.py" line="257" />
+      <location filename="../MicroPython/EspDevices.py" line="137" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="272" />
-      <location filename="../MicroPython/EspDevices.py" line="142" />
+      <location filename="../MicroPython/EspDevices.py" line="294" />
+      <location filename="../MicroPython/EspDevices.py" line="141" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="306" />
+      <location filename="../MicroPython/EspDevices.py" line="328" />
       <location filename="../MicroPython/EspDevices.py" line="145" />
       <source>Backup Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="357" />
+      <location filename="../MicroPython/EspDevices.py" line="379" />
       <location filename="../MicroPython/EspDevices.py" line="148" />
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <location filename="../MicroPython/EspDevices.py" line="152" />
       <source>Show Chip ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <location filename="../MicroPython/EspDevices.py" line="155" />
       <source>Show Flash ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <location filename="../MicroPython/EspDevices.py" line="158" />
       <source>Show MAC Address</source>
       <translation type="unfinished" />
@@ -19850,69 +19860,69 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="166" />
+      <location filename="../MicroPython/EspDevices.py" line="165" />
       <source>Install 'esptool.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="185" />
+      <location filename="../MicroPython/EspDevices.py" line="207" />
       <source>Shall the flash of the selected device really be erased?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="197" />
+      <location filename="../MicroPython/EspDevices.py" line="219" />
       <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="356" />
-      <location filename="../MicroPython/EspDevices.py" line="271" />
-      <location filename="../MicroPython/EspDevices.py" line="234" />
-      <source>'esptool write_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="305" />
-      <source>'esptool read_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/EspDevices.py" line="378" />
-      <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/EspDevices.py" line="410" />
+      <location filename="../MicroPython/EspDevices.py" line="293" />
+      <location filename="../MicroPython/EspDevices.py" line="256" />
+      <source>'esptool write_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="327" />
+      <source>'esptool read_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="401" />
+      <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/EspDevices.py" line="429" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="416" />
-      <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/EspDevices.py" line="424" />
+      <location filename="../MicroPython/EspDevices.py" line="440" />
+      <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/EspDevices.py" line="448" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="428" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="452" />
+      <source>{0} Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -19931,46 +19941,11 @@
     </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>Select the ESP chip type</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>Enter the path of the firmware file</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>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>Flash Mode:</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>Leave empty to use the default mode.</source>
       <translation type="unfinished" />
     </message>
@@ -19984,8 +19959,53 @@
       <source>Enter the flash addres in the hexadecimal form</source>
       <translation type="unfinished" />
     </message>
-  </context>
-  <context>
+    <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>
+  </context>
+  <context>
     <name>ExceptionLogger</name>
     <message>
       <location filename="../Debugger/ExceptionLogger.py" line="39" />
@@ -48658,53 +48678,63 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="269" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="271" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="276" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="404" />
-      <location filename="../MicroPython/MicroPythonDevices.py" line="393" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="408" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="397" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="527" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="549" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonDevices.py" line="550" />
+      <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/MicroPythonDevices.py" line="582" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="537" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="592" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="556" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="611" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="575" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="630" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="594" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="649" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="639" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="694" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="640" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="695" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -49345,17 +49375,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
       <source>MicroPython Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="287" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
       <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="328" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
       <source>%n supported device(s) detected.</source>
       <translation>
         <numerusform>%n supported device detected.</numerusform>
@@ -49363,18 +49393,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="341" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="358" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
       <source>No supported devices detected.</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="362" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation>
@@ -49385,70 +49415,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="431" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="402" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
       <source>Unknown MicroPython Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="403" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
       <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="415" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
       <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="432" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
       <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="561" />
-      <source>Clear</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="566" />
-      <source>Copy</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <source>Clear</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <source>Copy</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
       <source>Paste</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="579" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
       <source>Select All</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="605" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
       <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="610" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
       <source>Press to connect the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="637" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
       <source>No device attached</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="638" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
       <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.
@@ -49457,321 +49487,328 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="667" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
       <source>Start REPL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="668" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
       <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="1151" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1140" />
-      <source>Serial Device Connect</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1141" />
-      <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="1152" />
-      <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="1202" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1193" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1184" />
-      <source>Run Script</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <source>Serial Device Connect</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <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" />
+      <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" />
+      <source>Run Script</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
       <source>There is no editor open. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1194" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1203" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
       <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="1228" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
       <source>Open Python File</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
       <source>Python3 Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1274" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
       <source>Start Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1275" />
+      <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="1290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
       <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1307" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
       <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1308" />
+      <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="1356" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
       <source>Start File Manager</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1357" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
       <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="1376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1412" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
       <source>Downloads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1427" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
       <source>Show Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1431" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
       <source>Show Implementation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1441" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
       <source>Synchronize Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
       <source>Show Device Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
       <source>Show Local Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1451" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
       <source>Show Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1456" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
-      <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="1466" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1477" />
-      <source>Download Firmware</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" />
+      <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>
+      <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="1490" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
       <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1493" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
       <source>Manage Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1496" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
       <source>Ignored Serial Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1499" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
       <source>Configure</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1509" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
       <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
-      <source>No version information available.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1519" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1539" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1535" />
-      <source>unknown</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="1551" />
+      <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="1552" />
+      <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="1593" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <source>No device implementation information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
       <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="1615" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
       <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="1623" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
       <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="1639" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
       <source>Device Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
       <source>Local Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
       <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="1693" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
       <source>Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
       <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="1694" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
       <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="1718" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
       <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="1761" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
       <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="1787" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
       <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="1806" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -49814,178 +49851,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="73" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="83" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="76" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="86" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="338" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="328" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="311" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="150" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="187" />
+      <source>BBC micro:bit/Calliope Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="400" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="388" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="190" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="153" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="194" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="156" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="197" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="418" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="159" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="488" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="201" />
       <source>Save Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="160" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="204" />
       <source>Save the current script to the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="162" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="207" />
       <source>Save Script as 'main.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="164" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="210" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="169" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="214" />
       <source>Reset {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="290" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="354" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="345" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="331" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="314" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="301" />
       <location filename="../MicroPython/MicrobitDevices.py" line="281" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="267" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="250" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="237" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="217" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="218" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="282" />
       <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/MicrobitDevices.py" line="238" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="302" />
       <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/MicrobitDevices.py" line="251" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="315" />
       <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/MicrobitDevices.py" line="268" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="332" />
       <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/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="347" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="291" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="355" />
       <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/MicrobitDevices.py" line="312" />
-      <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/MicrobitDevices.py" line="329" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="372" />
+      <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/MicrobitDevices.py" line="389" />
       <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/MicrobitDevices.py" line="339" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="401" />
       <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/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="428" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="377" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;br/&gt;(BBC micro:bit v{2})&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/MicrobitDevices.py" line="386" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="444" />
+      <source>Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="447" />
+      <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/MicrobitDevices.py" line="456" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="390" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="452" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="416" />
-      <source>Save Script as '{0}'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="425" />
-      <source>The current editor does not contain a Python script. Write it anyway?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="436" />
-      <source>The script is empty. Aborting.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="445" />
-      <source>Enter a file name on the device:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="466" />
-      <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>
+      <location filename="../MicroPython/MicrobitDevices.py" line="460" />
+      <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicrobitDevices.py" line="522" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="486" />
+      <source>Save Script as '{0}'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="495" />
+      <source>The current editor does not contain a Python script. Write it anyway?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="506" />
+      <source>The script is empty. Aborting.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="515" />
+      <source>Enter a file name on the device:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="536" />
+      <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/MicrobitDevices.py" line="596" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="526" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="628" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="615" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="600" />
+      <source>DAPLink Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="607" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="541" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="530" />
-      <source>DAPLink Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="611" />
+      <source>CircuitPython Firmware for BBC micro:bit V2</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="624" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -61710,39 +61763,44 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="80" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="83" />
       <source>PyBoard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="195" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="198" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="196" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="199" />
       <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/PyBoardDevices.py" line="235" />
-      <source>Activate Bootloader</source>
+      <location filename="../MicroPython/PyBoardDevices.py" line="231" />
+      <source>PyBoard Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="437" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="234" />
+      <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/PyBoardDevices.py" line="238" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="241" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="423" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="242" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="403" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="390" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="420" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="407" />
       <location filename="../MicroPython/PyBoardDevices.py" line="245" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
@@ -61753,83 +61811,83 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="290" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="307" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="291" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="308" />
       <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/PyBoardDevices.py" line="311" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="328" />
       <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/PyBoardDevices.py" line="321" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="338" />
       <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/PyBoardDevices.py" line="327" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="344" />
       <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/PyBoardDevices.py" line="330" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="347" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="341" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="358" />
       <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/PyBoardDevices.py" line="349" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="366" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="402" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="392" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="409" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="424" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="438" />
       <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/PyBoardDevices.py" line="456" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="465" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="462" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="471" />
       <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/PyBoardDevices.py" line="470" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="479" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="474" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="483" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -66863,13 +66921,18 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="66" />
+      <location filename="../MicroPython/RP2040Devices.py" line="69" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="184" />
-      <location filename="../MicroPython/RP2040Devices.py" line="129" />
+      <location filename="../MicroPython/RP2040Devices.py" line="125" />
+      <source>RP2040 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/RP2040Devices.py" line="197" />
+      <location filename="../MicroPython/RP2040Devices.py" line="128" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
@@ -66884,52 +66947,52 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="185" />
+      <location filename="../MicroPython/RP2040Devices.py" line="198" />
       <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/RP2040Devices.py" line="222" />
+      <location filename="../MicroPython/RP2040Devices.py" line="230" />
       <source>unknown</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="228" />
+      <location filename="../MicroPython/RP2040Devices.py" line="236" />
       <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/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/RP2040Devices.py" line="245" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/RP2040Devices.py" line="254" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="250" />
+      <location filename="../MicroPython/RP2040Devices.py" line="258" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="273" />
+      <location filename="../MicroPython/RP2040Devices.py" line="281" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="277" />
+      <location filename="../MicroPython/RP2040Devices.py" line="285" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="280" />
+      <location filename="../MicroPython/RP2040Devices.py" line="288" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="284" />
+      <location filename="../MicroPython/RP2040Devices.py" line="292" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_es.ts	Sat Feb 11 19:53:53 2023 +0100
+++ b/src/eric7/i18n/eric7_es.ts	Sun Feb 12 15:14:28 2023 +0100
@@ -3718,95 +3718,100 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="90" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="92" />
       <source>CircuitPython</source>
       <translation>CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="218" />
       <source>Workspace Directory</source>
       <translation>Directorio del espacio de trabajo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="217" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="219" />
       <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/CircuitPythonDevices.py" line="252" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="249" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="257" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="253" />
+      <source>CircuitPython Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="256" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="324" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="337" />
       <location filename="../MicroPython/CircuitPythonDevices.py" line="260" />
       <source>Flash CircuitPython Firmware</source>
       <translation>Flashear Firmware de CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="404" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="277" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="417" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="290" />
       <source>Install Library Files</source>
       <translation>Instalar Archivos de Biblioteca</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="402" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="281" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="415" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="294" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="287" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="300" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="325" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="338" />
       <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/CircuitPythonDevices.py" line="357" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="370" />
       <source>unknown</source>
       <translation type="unfinished">desconocido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="376" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="389" />
       <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/CircuitPythonDevices.py" line="384" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="397" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="388" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="401" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="410" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="423" />
       <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/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="451" />
       <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/CircuitPythonDevices.py" line="468" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="481" />
       <source>CircuitPython Firmware</source>
       <translation>Firmware de CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="472" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="485" />
       <source>CircuitPython Libraries</source>
       <translation>Bibliotecas de CircuitPython</translation>
     </message>
@@ -19898,61 +19903,66 @@
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="69" />
+      <location filename="../MicroPython/EspDevices.py" line="71" />
       <source>ESP8266, ESP32</source>
       <translation>ESP8266, ESP32</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="377" />
-      <location filename="../MicroPython/EspDevices.py" line="132" />
+      <location filename="../MicroPython/EspDevices.py" line="127" />
+      <source>ESP32 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="400" />
+      <location filename="../MicroPython/EspDevices.py" line="130" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="198" />
-      <location filename="../MicroPython/EspDevices.py" line="184" />
+      <location filename="../MicroPython/EspDevices.py" line="220" />
+      <location filename="../MicroPython/EspDevices.py" line="206" />
       <location filename="../MicroPython/EspDevices.py" line="134" />
       <source>Erase Flash</source>
       <translation>Borrar Flash</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="235" />
-      <location filename="../MicroPython/EspDevices.py" line="138" />
+      <location filename="../MicroPython/EspDevices.py" line="257" />
+      <location filename="../MicroPython/EspDevices.py" line="137" />
       <source>Flash MicroPython Firmware</source>
       <translation>Flash MicroPython Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="272" />
-      <location filename="../MicroPython/EspDevices.py" line="142" />
+      <location filename="../MicroPython/EspDevices.py" line="294" />
+      <location filename="../MicroPython/EspDevices.py" line="141" />
       <source>Flash Additional Firmware</source>
       <translation>Flash Additional Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="306" />
+      <location filename="../MicroPython/EspDevices.py" line="328" />
       <location filename="../MicroPython/EspDevices.py" line="145" />
       <source>Backup Firmware</source>
       <translation>Copia de Seguridad de Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="357" />
+      <location filename="../MicroPython/EspDevices.py" line="379" />
       <location filename="../MicroPython/EspDevices.py" line="148" />
       <source>Restore Firmware</source>
       <translation>Restaurar Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <location filename="../MicroPython/EspDevices.py" line="152" />
       <source>Show Chip ID</source>
       <translation>Mostrar ID de Chip</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <location filename="../MicroPython/EspDevices.py" line="155" />
       <source>Show Flash ID</source>
       <translation>Mostrar ID de Flash</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <location filename="../MicroPython/EspDevices.py" line="158" />
       <source>Show MAC Address</source>
       <translation>Mostrar dirección MAC</translation>
@@ -19963,69 +19973,69 @@
       <translation>Resetear Dispositivo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="166" />
+      <location filename="../MicroPython/EspDevices.py" line="165" />
       <source>Install 'esptool.py'</source>
       <translation>Instalar 'esptool.py'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="185" />
+      <location filename="../MicroPython/EspDevices.py" line="207" />
       <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/EspDevices.py" line="197" />
+      <location filename="../MicroPython/EspDevices.py" line="219" />
       <source>'esptool erase_flash' Output</source>
       <translation>Salida de 'esptool erase_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="356" />
-      <location filename="../MicroPython/EspDevices.py" line="271" />
-      <location filename="../MicroPython/EspDevices.py" line="234" />
-      <source>'esptool write_flash' Output</source>
-      <translation>Salida de 'esptool write_flash'</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="305" />
-      <source>'esptool read_flash' Output</source>
-      <translation>Salida de 'esptool read_flash'</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/EspDevices.py" line="378" />
-      <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/EspDevices.py" line="410" />
+      <location filename="../MicroPython/EspDevices.py" line="293" />
+      <location filename="../MicroPython/EspDevices.py" line="256" />
+      <source>'esptool write_flash' Output</source>
+      <translation>Salida de 'esptool write_flash'</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="327" />
+      <source>'esptool read_flash' Output</source>
+      <translation>Salida de 'esptool read_flash'</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="401" />
+      <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/EspDevices.py" line="429" />
       <source>unknown</source>
       <translation type="unfinished">desconocido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="416" />
-      <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/EspDevices.py" line="424" />
+      <location filename="../MicroPython/EspDevices.py" line="440" />
+      <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/EspDevices.py" line="448" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="428" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="452" />
+      <source>{0} Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <source>'esptool chip_id' Output</source>
       <translation>Salida de 'esptool chip_id'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <source>'esptool flash_id' Output</source>
       <translation>Salida de 'esptool flash_id'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <source>'esptool read_mac' Output</source>
       <translation>Salida de 'esptool read_mac'</translation>
     </message>
@@ -20044,46 +20054,11 @@
     </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>Select the ESP chip type</source>
-      <translation>Seleccionar el tipo de chiop ESP</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>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>Baud Rate:</source>
       <translation>Tasa de Baudios:</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>Flash Mode:</source>
-      <translation>Flash Mode:</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>Leave empty to use the default mode.</source>
       <translation>Dejar en blanco para usar el modo por defecto.</translation>
     </message>
@@ -20097,6 +20072,51 @@
       <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>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -48860,53 +48880,63 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="269" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="271" />
       <source>RP2040 based</source>
       <translation>Basada en RP2040</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="276" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Generic Board</source>
       <translation>Placa Genérica</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="404" />
-      <location filename="../MicroPython/MicroPythonDevices.py" line="393" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="408" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="397" />
       <source>Unknown Device</source>
       <translation>Dispositivo Desconocido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="527" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="549" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonDevices.py" line="550" />
+      <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/MicroPythonDevices.py" line="582" />
       <source>Unsupported Device</source>
       <translation>Dispositivo no soportado</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="537" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="592" />
       <source>REPL is not supported by this device.</source>
       <translation>REPL no soportado por este dispositivo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="556" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="611" />
       <source>Plotter is not supported by this device.</source>
       <translation>Plotter no soportado por este dispositivo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="575" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="630" />
       <source>Running scripts is not supported by this device.</source>
       <translation>La ejecución de scripts no está soportada por este dispositivo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="594" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="649" />
       <source>File Manager is not supported by this device.</source>
       <translation>El Gestor de Archovos no está soportado por este dispositivo.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="639" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="694" />
       <source>Select Device Directory</source>
       <translation>Seleccionar Directorio para Dispositivo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="640" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="695" />
       <source>Select the directory for the connected device:</source>
       <translation>Seleccionar el directorio para el dispositivo conectado:</translation>
     </message>
@@ -49547,17 +49577,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
       <source>MicroPython Menu</source>
       <translation>Menú de MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="287" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
       <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="328" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
       <source>%n supported device(s) detected.</source>
       <translation>
         <numerusform>%n dispositivo soportado detectado.</numerusform>
@@ -49565,18 +49595,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="341" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
       <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="358" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
       <source>No supported devices detected.</source>
       <translation>No se han detectado dispositivos soportados.</translation>
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="362" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation>
@@ -49587,70 +49617,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
       <source>Manual Selection</source>
       <translation>Selección Manual</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="431" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="402" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
       <source>Unknown MicroPython Device</source>
       <translation>Dispositivo MicroPython Desconocido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="403" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
       <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="415" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
       <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="432" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
       <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="561" />
-      <source>Clear</source>
-      <translation>Limpiar</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="566" />
-      <source>Copy</source>
-      <translation>Copiar</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <source>Clear</source>
+      <translation>Limpiar</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <source>Copy</source>
+      <translation>Copiar</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
       <source>Paste</source>
       <translation>Pegar</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="579" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
       <source>Select All</source>
       <translation>Seleccionar todo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="605" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
       <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="610" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
       <source>Press to connect the selected device</source>
       <translation>Pulsar para conectar el dispositivo seleccionado</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="637" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
       <source>No device attached</source>
       <translation>No hay dispositivo conectado</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="638" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
       <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.
@@ -49663,321 +49693,328 @@
 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="667" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
       <source>Start REPL</source>
       <translation>Iniciar REPL</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="668" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
       <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="1151" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1140" />
-      <source>Serial Device Connect</source>
-      <translation>Conexión de Dispositivo en Serie</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1141" />
-      <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="1152" />
-      <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="1202" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1193" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1184" />
-      <source>Run Script</source>
-      <translation>Ejecutar Script</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <source>Serial Device Connect</source>
+      <translation>Conexión de Dispositivo en Serie</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <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" />
+      <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" />
+      <source>Run Script</source>
+      <translation>Ejecutar Script</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
       <source>There is no editor open. Abort...</source>
       <translation>No hay editor abierto. Abortando...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1194" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
       <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="1203" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
       <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="1228" />
+      <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="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
       <source>Python3 Files (*.py);;All Files (*)</source>
       <translation>Archivos de Python3 (*.py);;Todos los Archivos (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1274" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
       <source>Start Chart</source>
       <translation>Iniciar Gráfica</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1275" />
+      <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="1290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
       <source>µPy Chart</source>
       <translation>Gráfico µPy</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1307" />
+      <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="1308" />
+      <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="1356" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
       <source>Start File Manager</source>
       <translation>Comenzar Gestor de Archivos</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1357" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
       <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="1376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
       <source>µPy Files</source>
       <translation>Archivos µPy</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1412" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
       <source>Downloads</source>
       <translation>Descargas</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1427" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
       <source>Show Version</source>
       <translation>Mostrar Versión</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1431" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
       <source>Show Implementation</source>
       <translation>Mostrar Implementación</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
       <source>Show Board Data</source>
       <translation>Mostrar Datos de Microprocesador</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1441" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
       <source>Synchronize Time</source>
       <translation>Sincronizar Hora</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
       <source>Show Device Time</source>
       <translation>Mostrar Hora del Dispositivo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <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="1451" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
       <source>Show Time</source>
       <translation>Mostrar Tiempo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1456" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
-      <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="1466" />
-      <source>Compile Current Editor</source>
-      <translation>Compilar Editor Actual</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1477" />
-      <source>Download Firmware</source>
-      <translation>Descargar Firmware</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" />
+      <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>
+    </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="1490" />
+      <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="1493" />
+      <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="1496" />
+      <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="1499" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
       <source>Configure</source>
       <translation>Configurar</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1509" />
+      <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>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
-      <source>No version information available.</source>
-      <translation>No hay información de versión disponible.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1519" />
-      <source>Device Version Information</source>
-      <translation>Información de Versión de Dispositivo</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1539" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1535" />
-      <source>unknown</source>
-      <translation>desconocido</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="1551" />
+      <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="1552" />
+      <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="1593" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <source>No device implementation information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
       <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="1615" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
       <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="1623" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
       <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="1639" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
       <source>Device Date and Time</source>
       <translation>Fecha y Hora del Dispositivo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
       <source>Local Date and Time</source>
       <translation>Fecha y Hora Local</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
       <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="1693" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
       <source>Date and Time</source>
       <translation>Fecha y Hora</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
       <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="1694" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
       <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="1718" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
       <source>Error handling device</source>
       <translation>Error de gestión del dispositivo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
       <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="1761" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
       <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="1787" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation>Archivos Python (*.py);;Todos los Archivos (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
       <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="1806" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
       <source>'mpy-cross' Output</source>
       <translation>Salida de 'mpy-cross'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
       <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="1924" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
       <source>Add Unknown Devices</source>
       <translation>Añadir Dispositivos Desconocidos</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
       <source>Select the devices to be added:</source>
       <translation>Seleccionar los dispositivos a añadir:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50024,178 +50061,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="73" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="83" />
       <source>BBC micro:bit</source>
       <translation>BBC micro:bit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="76" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="86" />
       <source>Calliope mini</source>
       <translation>Calliope mini</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="338" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="328" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="311" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="150" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="187" />
+      <source>BBC micro:bit/Calliope Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="400" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="388" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="190" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="153" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="194" />
       <source>Flash MicroPython</source>
       <translation>Flash MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="156" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="197" />
       <source>Flash Firmware</source>
       <translation>Flash Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="418" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="159" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="488" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="201" />
       <source>Save Script</source>
       <translation>Guardar Script</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="160" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="204" />
       <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/MicrobitDevices.py" line="162" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="207" />
       <source>Save Script as 'main.py'</source>
       <translation>Guardar Script como 'main.py'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="164" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="210" />
       <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/MicrobitDevices.py" line="169" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="214" />
       <source>Reset {0}</source>
       <translation>Restablecer {0}</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="290" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="354" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="345" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="331" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="314" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="301" />
       <location filename="../MicroPython/MicrobitDevices.py" line="281" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="267" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="250" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="237" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="217" />
       <source>Flash MicroPython/Firmware</source>
       <translation>Flash MicroPython/Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="218" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="282" />
       <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/MicrobitDevices.py" line="238" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="302" />
       <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/MicrobitDevices.py" line="251" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="315" />
       <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/MicrobitDevices.py" line="268" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="332" />
       <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/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="347" />
       <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/MicrobitDevices.py" line="291" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="355" />
       <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/MicrobitDevices.py" line="312" />
-      <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/MicrobitDevices.py" line="329" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="372" />
+      <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/MicrobitDevices.py" line="389" />
       <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/MicrobitDevices.py" line="339" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="401" />
       <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/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="428" />
       <source>unknown</source>
       <translation type="unfinished">desconocido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="377" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;br/&gt;(BBC micro:bit v{2})&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/MicrobitDevices.py" line="386" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="444" />
+      <source>Firmware</source>
+      <translation type="unfinished">Firmware</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="447" />
+      <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/MicrobitDevices.py" line="456" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="390" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="452" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="416" />
-      <source>Save Script as '{0}'</source>
-      <translation>Guardar Script como '{0}'</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="425" />
-      <source>The current editor does not contain a Python script. Write it anyway?</source>
-      <translation>El editor actual no contiene un script Python. ¿Escribir de todos modos?</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="436" />
-      <source>The script is empty. Aborting.</source>
-      <translation>Script vacío. Abortando.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="445" />
-      <source>Enter a file name on the device:</source>
-      <translation>Introducir un nombre de archivo para el dispositivo:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="466" />
-      <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>
+      <location filename="../MicroPython/MicrobitDevices.py" line="460" />
+      <source>{0} Version</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicrobitDevices.py" line="522" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="486" />
+      <source>Save Script as '{0}'</source>
+      <translation>Guardar Script como '{0}'</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="495" />
+      <source>The current editor does not contain a Python script. Write it anyway?</source>
+      <translation>El editor actual no contiene un script Python. ¿Escribir de todos modos?</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="506" />
+      <source>The script is empty. Aborting.</source>
+      <translation>Script vacío. Abortando.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="515" />
+      <source>Enter a file name on the device:</source>
+      <translation>Introducir un nombre de archivo para el dispositivo:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="536" />
+      <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+      <translation>&lt;p&gt;El script no se ha podido guardar al dispositivo.&lt;/p&gt;&lt;p&gt;Razón: {0}&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="596" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation>Firmware MicroPython para BBC micro:bit V1</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="526" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="628" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="615" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="600" />
+      <source>DAPLink Firmware</source>
+      <translation>Firmware DAPLink</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="607" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation>Firmware MicroPython para BBC micro:bit V2</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="541" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="530" />
-      <source>DAPLink Firmware</source>
-      <translation>Firmware DAPLink</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="611" />
+      <source>CircuitPython Firmware for BBC micro:bit V2</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="624" />
       <source>MicroPython Firmware</source>
       <translation>Firmware MicroPython</translation>
     </message>
@@ -61945,39 +61998,44 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="80" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="83" />
       <source>PyBoard</source>
       <translation>PyBoard</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="195" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="198" />
       <source>Workspace Directory</source>
       <translation>Directorio del Workspace</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="196" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="199" />
       <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/PyBoardDevices.py" line="235" />
-      <source>Activate Bootloader</source>
-      <translation>Activar Bootloader</translation>
+      <location filename="../MicroPython/PyBoardDevices.py" line="231" />
+      <source>PyBoard Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="437" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="234" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/PyBoardDevices.py" line="238" />
+      <source>Activate Bootloader</source>
+      <translation>Activar Bootloader</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="241" />
       <source>List DFU-capable Devices</source>
       <translation>Listar Dispositivos con capacidad DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="423" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="242" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="403" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="390" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="420" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="407" />
       <location filename="../MicroPython/PyBoardDevices.py" line="245" />
       <source>Flash MicroPython Firmware</source>
       <translation>Flash MicroPython Firmware</translation>
@@ -61988,83 +62046,83 @@
       <translation>Instrucciones para MicroPython Flash</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="290" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="307" />
       <source>dfu-util not available</source>
       <translation>dfu-util no está disponible</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="291" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="308" />
       <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/PyBoardDevices.py" line="311" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="328" />
       <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/PyBoardDevices.py" line="321" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="338" />
       <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/PyBoardDevices.py" line="327" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="344" />
       <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/PyBoardDevices.py" line="330" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="347" />
       <source>Enable DFU mode</source>
       <translation>Habilitar modo DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="341" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="358" />
       <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/PyBoardDevices.py" line="349" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="366" />
       <source>Disable DFU mode</source>
       <translation>Deshabilitar modo DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="402" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>'dfu-util' Output</source>
       <translation>Salida de 'dfu-util'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>List DFU capable Devices</source>
       <translation>Listar Dispositivos con capacidad DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="392" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="409" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation>Archivos de Firmware MicroPython (*.dfu);;Todos los Archivos (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="424" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="438" />
       <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/PyBoardDevices.py" line="456" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="465" />
       <source>unknown</source>
       <translation type="unfinished">desconocido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="462" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="471" />
       <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/PyBoardDevices.py" line="470" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="479" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="474" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="483" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67201,13 +67259,18 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="66" />
+      <location filename="../MicroPython/RP2040Devices.py" line="69" />
       <source>RP2040</source>
       <translation>RP2040</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="184" />
-      <location filename="../MicroPython/RP2040Devices.py" line="129" />
+      <location filename="../MicroPython/RP2040Devices.py" line="125" />
+      <source>RP2040 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/RP2040Devices.py" line="197" />
+      <location filename="../MicroPython/RP2040Devices.py" line="128" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
@@ -67222,52 +67285,52 @@
       <translation type="unfinished">Flash MicroPython Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="185" />
+      <location filename="../MicroPython/RP2040Devices.py" line="198" />
       <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/RP2040Devices.py" line="222" />
+      <location filename="../MicroPython/RP2040Devices.py" line="230" />
       <source>unknown</source>
       <translation type="unfinished">desconocido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="228" />
+      <location filename="../MicroPython/RP2040Devices.py" line="236" />
       <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/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/RP2040Devices.py" line="245" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/RP2040Devices.py" line="254" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="250" />
+      <location filename="../MicroPython/RP2040Devices.py" line="258" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="273" />
+      <location filename="../MicroPython/RP2040Devices.py" line="281" />
       <source>MicroPython Firmware</source>
       <translation>MicroPython Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="277" />
+      <location filename="../MicroPython/RP2040Devices.py" line="285" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="280" />
+      <location filename="../MicroPython/RP2040Devices.py" line="288" />
       <source>CircuitPython Firmware</source>
       <translation>CircuitPython Firmware</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="284" />
+      <location filename="../MicroPython/RP2040Devices.py" line="292" />
       <source>CircuitPython Libraries</source>
       <translation>Bibliotecas de CircuitPython</translation>
     </message>
--- a/src/eric7/i18n/eric7_fr.ts	Sat Feb 11 19:53:53 2023 +0100
+++ b/src/eric7/i18n/eric7_fr.ts	Sun Feb 12 15:14:28 2023 +0100
@@ -3813,95 +3813,100 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="90" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="92" />
       <source>CircuitPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="218" />
       <source>Workspace Directory</source>
       <translation>Répertoire de travail</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="217" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="219" />
       <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/CircuitPythonDevices.py" line="252" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="249" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="257" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="253" />
+      <source>CircuitPython Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="256" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="324" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="337" />
       <location filename="../MicroPython/CircuitPythonDevices.py" line="260" />
       <source>Flash CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="404" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="277" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="417" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="290" />
       <source>Install Library Files</source>
       <translation>Installer les fichiers librairies</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="402" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="281" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="415" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="294" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="287" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="300" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="325" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="338" />
       <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/CircuitPythonDevices.py" line="357" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="370" />
       <source>unknown</source>
       <translation type="unfinished">inconnu</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="376" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="389" />
       <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/CircuitPythonDevices.py" line="384" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="397" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="388" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="401" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="410" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="423" />
       <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/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="451" />
       <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/CircuitPythonDevices.py" line="468" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="481" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="472" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="485" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -20049,61 +20054,66 @@
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="69" />
+      <location filename="../MicroPython/EspDevices.py" line="71" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="377" />
-      <location filename="../MicroPython/EspDevices.py" line="132" />
+      <location filename="../MicroPython/EspDevices.py" line="127" />
+      <source>ESP32 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="400" />
+      <location filename="../MicroPython/EspDevices.py" line="130" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="198" />
-      <location filename="../MicroPython/EspDevices.py" line="184" />
+      <location filename="../MicroPython/EspDevices.py" line="220" />
+      <location filename="../MicroPython/EspDevices.py" line="206" />
       <location filename="../MicroPython/EspDevices.py" line="134" />
       <source>Erase Flash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="235" />
-      <location filename="../MicroPython/EspDevices.py" line="138" />
+      <location filename="../MicroPython/EspDevices.py" line="257" />
+      <location filename="../MicroPython/EspDevices.py" line="137" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="272" />
-      <location filename="../MicroPython/EspDevices.py" line="142" />
+      <location filename="../MicroPython/EspDevices.py" line="294" />
+      <location filename="../MicroPython/EspDevices.py" line="141" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="306" />
+      <location filename="../MicroPython/EspDevices.py" line="328" />
       <location filename="../MicroPython/EspDevices.py" line="145" />
       <source>Backup Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="357" />
+      <location filename="../MicroPython/EspDevices.py" line="379" />
       <location filename="../MicroPython/EspDevices.py" line="148" />
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <location filename="../MicroPython/EspDevices.py" line="152" />
       <source>Show Chip ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <location filename="../MicroPython/EspDevices.py" line="155" />
       <source>Show Flash ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <location filename="../MicroPython/EspDevices.py" line="158" />
       <source>Show MAC Address</source>
       <translation type="unfinished" />
@@ -20114,69 +20124,69 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="166" />
+      <location filename="../MicroPython/EspDevices.py" line="165" />
       <source>Install 'esptool.py'</source>
       <translation>Installer 'esptool.py'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="185" />
+      <location filename="../MicroPython/EspDevices.py" line="207" />
       <source>Shall the flash of the selected device really be erased?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="197" />
+      <location filename="../MicroPython/EspDevices.py" line="219" />
       <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="356" />
-      <location filename="../MicroPython/EspDevices.py" line="271" />
-      <location filename="../MicroPython/EspDevices.py" line="234" />
-      <source>'esptool write_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="305" />
-      <source>'esptool read_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/EspDevices.py" line="378" />
-      <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/EspDevices.py" line="410" />
+      <location filename="../MicroPython/EspDevices.py" line="293" />
+      <location filename="../MicroPython/EspDevices.py" line="256" />
+      <source>'esptool write_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="327" />
+      <source>'esptool read_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="401" />
+      <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/EspDevices.py" line="429" />
       <source>unknown</source>
       <translation type="unfinished">inconnu</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="416" />
-      <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/EspDevices.py" line="424" />
+      <location filename="../MicroPython/EspDevices.py" line="440" />
+      <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/EspDevices.py" line="448" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="428" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="452" />
+      <source>{0} Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -20195,46 +20205,11 @@
     </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>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished">Micrologiciel :</translation>
-    </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>Baud Rate:</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>Flash Mode:</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>Leave empty to use the default mode.</source>
       <translation type="unfinished" />
     </message>
@@ -20248,6 +20223,51 @@
       <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">Micrologiciel :</translation>
+    </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>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -49095,53 +49115,63 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="269" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="271" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="276" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="404" />
-      <location filename="../MicroPython/MicroPythonDevices.py" line="393" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="408" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="397" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="527" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="549" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonDevices.py" line="550" />
+      <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/MicroPythonDevices.py" line="582" />
       <source>Unsupported Device</source>
       <translation>Matériel non supporté</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="537" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="592" />
       <source>REPL is not supported by this device.</source>
       <translation>REPL n'est pas supporté pour ce matériel.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="556" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="611" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="575" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="630" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="594" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="649" />
       <source>File Manager is not supported by this device.</source>
       <translation>Le gestionnaire de fichier n'est pas supporté pour ce matériel.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="639" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="694" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="640" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="695" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -49782,17 +49812,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
       <source>MicroPython Menu</source>
       <translation>Menu MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="287" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
       <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="328" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
       <source>%n supported device(s) detected.</source>
       <translation>
         <numerusform>%n matériel supporté détecté.</numerusform>
@@ -49800,18 +49830,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="341" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="358" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
       <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="362" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation type="unfinished">
@@ -49820,70 +49850,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="431" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="402" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
       <source>Unknown MicroPython Device</source>
       <translation>Matériel MicroPython inconnu</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="403" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
       <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="415" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
       <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="432" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
       <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="561" />
-      <source>Clear</source>
-      <translation>Effacer</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="566" />
-      <source>Copy</source>
-      <translation>Copier</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <source>Clear</source>
+      <translation>Effacer</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <source>Copy</source>
+      <translation>Copier</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
       <source>Paste</source>
       <translation>Coller</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="579" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
       <source>Select All</source>
       <translation type="unfinished">Tout sélectionner</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="605" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
       <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="610" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
       <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="637" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
       <source>No device attached</source>
       <translation>Pas de matériel relié</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="638" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
       <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.
@@ -49892,321 +49922,328 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="667" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
       <source>Start REPL</source>
       <translation>Démarrer REPL</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="668" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
       <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="1151" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1140" />
-      <source>Serial Device Connect</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1141" />
-      <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="1152" />
-      <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="1202" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1193" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1184" />
-      <source>Run Script</source>
-      <translation>Lancer le script</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <source>Serial Device Connect</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <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" />
+      <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" />
+      <source>Run Script</source>
+      <translation>Lancer le script</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
       <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="1194" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
       <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="1203" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
       <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="1228" />
+      <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="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
       <source>Python3 Files (*.py);;All Files (*)</source>
       <translation>Fichiers Python3 (*.py);;Tous les fichiers (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1274" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
       <source>Start Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1275" />
+      <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="1290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
       <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1307" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
       <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1308" />
+      <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="1356" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
       <source>Start File Manager</source>
       <translation>Démarrer le gestionnaire de fichier</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1357" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
       <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="1376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1412" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
       <source>Downloads</source>
       <translation type="unfinished">Téléchargements</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1427" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
       <source>Show Version</source>
       <translation>Montrer la version</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1431" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
       <source>Show Implementation</source>
       <translation>Montrer l'implémentation</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1441" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
       <source>Synchronize Time</source>
       <translation>Synchroniser le temps</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
       <source>Show Device Time</source>
       <translation>Montrer l'horloge matériel</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <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="1451" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
       <source>Show Time</source>
       <translation>Montrer l'horloge</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1456" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
-      <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="1466" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1477" />
-      <source>Download Firmware</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" />
+      <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>
+      <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="1490" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
       <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1493" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
       <source>Manage Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1496" />
+      <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="1499" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
       <source>Configure</source>
       <translation>Configuration</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1509" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
       <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
-      <source>No version information available.</source>
-      <translation>Pas d'information de version disponible.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1519" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1539" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1535" />
-      <source>unknown</source>
-      <translation>inconnu</translation>
-    </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="1551" />
+      <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="1552" />
+      <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="1593" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <source>No device implementation information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
       <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="1615" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
       <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="1623" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
       <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="1639" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
       <source>Device Date and Time</source>
       <translation>Date et heure matériel</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
       <source>Local Date and Time</source>
       <translation>Date et heure locales</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
       <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="1693" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
       <source>Date and Time</source>
       <translation>Date et heure</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
       <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="1694" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
       <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="1718" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
       <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="1761" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
       <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="1787" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation>Fichiers Python (*.py);;Tous les fichiers (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
       <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="1806" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
       <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="1924" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50249,178 +50286,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="73" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="83" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="76" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="86" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="338" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="328" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="311" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="150" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="187" />
+      <source>BBC micro:bit/Calliope Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="400" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="388" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="190" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="153" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="194" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="156" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="197" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="418" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="159" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="488" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="201" />
       <source>Save Script</source>
       <translation>Enregistrer le script</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="160" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="204" />
       <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/MicrobitDevices.py" line="162" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="207" />
       <source>Save Script as 'main.py'</source>
       <translation>Enregistrer le script en tant que 'main.py'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="164" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="210" />
       <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/MicrobitDevices.py" line="169" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="214" />
       <source>Reset {0}</source>
       <translation>Réinitialiser {0}</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="290" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="354" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="345" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="331" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="314" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="301" />
       <location filename="../MicroPython/MicrobitDevices.py" line="281" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="267" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="250" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="237" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="217" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="218" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="282" />
       <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/MicrobitDevices.py" line="238" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="302" />
       <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/MicrobitDevices.py" line="251" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="315" />
       <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/MicrobitDevices.py" line="268" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="332" />
       <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/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="347" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="291" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="355" />
       <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/MicrobitDevices.py" line="312" />
-      <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/MicrobitDevices.py" line="329" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="372" />
+      <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/MicrobitDevices.py" line="389" />
       <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/MicrobitDevices.py" line="339" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="401" />
       <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/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="428" />
       <source>unknown</source>
       <translation type="unfinished">inconnu</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="377" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;br/&gt;(BBC micro:bit v{2})&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/MicrobitDevices.py" line="386" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="444" />
+      <source>Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="447" />
+      <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/MicrobitDevices.py" line="456" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="390" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="452" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="416" />
-      <source>Save Script as '{0}'</source>
-      <translation>Enregistrer le script en tant que '{0}'</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="425" />
-      <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/MicrobitDevices.py" line="436" />
-      <source>The script is empty. Aborting.</source>
-      <translation>Le script est vide. Annulation.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="445" />
-      <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/MicrobitDevices.py" line="466" />
-      <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>
+      <location filename="../MicroPython/MicrobitDevices.py" line="460" />
+      <source>{0} Version</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicrobitDevices.py" line="522" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="486" />
+      <source>Save Script as '{0}'</source>
+      <translation>Enregistrer le script en tant que '{0}'</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="495" />
+      <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/MicrobitDevices.py" line="506" />
+      <source>The script is empty. Aborting.</source>
+      <translation>Le script est vide. Annulation.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="515" />
+      <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/MicrobitDevices.py" line="536" />
+      <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/MicrobitDevices.py" line="596" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="526" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="628" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="615" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="600" />
+      <source>DAPLink Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="607" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="541" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="530" />
-      <source>DAPLink Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="611" />
+      <source>CircuitPython Firmware for BBC micro:bit V2</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="624" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -62484,39 +62537,44 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="80" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="83" />
       <source>PyBoard</source>
       <translation>PyBoard</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="195" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="198" />
       <source>Workspace Directory</source>
       <translation>Répertoire de travail</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="196" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="199" />
       <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/PyBoardDevices.py" line="235" />
-      <source>Activate Bootloader</source>
+      <location filename="../MicroPython/PyBoardDevices.py" line="231" />
+      <source>PyBoard Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="437" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="234" />
+      <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/PyBoardDevices.py" line="238" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="241" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="423" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="242" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="403" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="390" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="420" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="407" />
       <location filename="../MicroPython/PyBoardDevices.py" line="245" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
@@ -62527,83 +62585,83 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="290" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="307" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="291" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="308" />
       <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/PyBoardDevices.py" line="311" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="328" />
       <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/PyBoardDevices.py" line="321" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="338" />
       <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/PyBoardDevices.py" line="327" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="344" />
       <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/PyBoardDevices.py" line="330" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="347" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="341" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="358" />
       <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/PyBoardDevices.py" line="349" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="366" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="402" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="392" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="409" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="424" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="438" />
       <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/PyBoardDevices.py" line="456" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="465" />
       <source>unknown</source>
       <translation type="unfinished">inconnu</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="462" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="471" />
       <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/PyBoardDevices.py" line="470" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="479" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="474" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="483" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67748,13 +67806,18 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="66" />
+      <location filename="../MicroPython/RP2040Devices.py" line="69" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="184" />
-      <location filename="../MicroPython/RP2040Devices.py" line="129" />
+      <location filename="../MicroPython/RP2040Devices.py" line="125" />
+      <source>RP2040 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/RP2040Devices.py" line="197" />
+      <location filename="../MicroPython/RP2040Devices.py" line="128" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
@@ -67769,52 +67832,52 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="185" />
+      <location filename="../MicroPython/RP2040Devices.py" line="198" />
       <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/RP2040Devices.py" line="222" />
+      <location filename="../MicroPython/RP2040Devices.py" line="230" />
       <source>unknown</source>
       <translation type="unfinished">inconnu</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="228" />
+      <location filename="../MicroPython/RP2040Devices.py" line="236" />
       <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/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/RP2040Devices.py" line="245" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/RP2040Devices.py" line="254" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="250" />
+      <location filename="../MicroPython/RP2040Devices.py" line="258" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="273" />
+      <location filename="../MicroPython/RP2040Devices.py" line="281" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="277" />
+      <location filename="../MicroPython/RP2040Devices.py" line="285" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="280" />
+      <location filename="../MicroPython/RP2040Devices.py" line="288" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="284" />
+      <location filename="../MicroPython/RP2040Devices.py" line="292" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_it.ts	Sat Feb 11 19:53:53 2023 +0100
+++ b/src/eric7/i18n/eric7_it.ts	Sun Feb 12 15:14:28 2023 +0100
@@ -3784,95 +3784,100 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="90" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="92" />
       <source>CircuitPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="218" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="217" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="219" />
       <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/CircuitPythonDevices.py" line="252" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="249" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="257" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="253" />
+      <source>CircuitPython Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="256" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="324" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="337" />
       <location filename="../MicroPython/CircuitPythonDevices.py" line="260" />
       <source>Flash CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="404" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="277" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="417" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="290" />
       <source>Install Library Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="402" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="281" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="415" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="294" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="287" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="300" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="325" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="338" />
       <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/CircuitPythonDevices.py" line="357" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="370" />
       <source>unknown</source>
       <translation type="unfinished">sconosciuto</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="376" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="389" />
       <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/CircuitPythonDevices.py" line="384" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="397" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="388" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="401" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="410" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="423" />
       <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/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="451" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="468" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="481" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="472" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="485" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -20011,61 +20016,66 @@
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="69" />
+      <location filename="../MicroPython/EspDevices.py" line="71" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="377" />
-      <location filename="../MicroPython/EspDevices.py" line="132" />
+      <location filename="../MicroPython/EspDevices.py" line="127" />
+      <source>ESP32 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="400" />
+      <location filename="../MicroPython/EspDevices.py" line="130" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="198" />
-      <location filename="../MicroPython/EspDevices.py" line="184" />
+      <location filename="../MicroPython/EspDevices.py" line="220" />
+      <location filename="../MicroPython/EspDevices.py" line="206" />
       <location filename="../MicroPython/EspDevices.py" line="134" />
       <source>Erase Flash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="235" />
-      <location filename="../MicroPython/EspDevices.py" line="138" />
+      <location filename="../MicroPython/EspDevices.py" line="257" />
+      <location filename="../MicroPython/EspDevices.py" line="137" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="272" />
-      <location filename="../MicroPython/EspDevices.py" line="142" />
+      <location filename="../MicroPython/EspDevices.py" line="294" />
+      <location filename="../MicroPython/EspDevices.py" line="141" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="306" />
+      <location filename="../MicroPython/EspDevices.py" line="328" />
       <location filename="../MicroPython/EspDevices.py" line="145" />
       <source>Backup Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="357" />
+      <location filename="../MicroPython/EspDevices.py" line="379" />
       <location filename="../MicroPython/EspDevices.py" line="148" />
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <location filename="../MicroPython/EspDevices.py" line="152" />
       <source>Show Chip ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <location filename="../MicroPython/EspDevices.py" line="155" />
       <source>Show Flash ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <location filename="../MicroPython/EspDevices.py" line="158" />
       <source>Show MAC Address</source>
       <translation type="unfinished" />
@@ -20076,69 +20086,69 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="166" />
+      <location filename="../MicroPython/EspDevices.py" line="165" />
       <source>Install 'esptool.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="185" />
+      <location filename="../MicroPython/EspDevices.py" line="207" />
       <source>Shall the flash of the selected device really be erased?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="197" />
+      <location filename="../MicroPython/EspDevices.py" line="219" />
       <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="356" />
-      <location filename="../MicroPython/EspDevices.py" line="271" />
-      <location filename="../MicroPython/EspDevices.py" line="234" />
-      <source>'esptool write_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="305" />
-      <source>'esptool read_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/EspDevices.py" line="378" />
-      <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/EspDevices.py" line="410" />
+      <location filename="../MicroPython/EspDevices.py" line="293" />
+      <location filename="../MicroPython/EspDevices.py" line="256" />
+      <source>'esptool write_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="327" />
+      <source>'esptool read_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="401" />
+      <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/EspDevices.py" line="429" />
       <source>unknown</source>
       <translation type="unfinished">sconosciuto</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="416" />
-      <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/EspDevices.py" line="424" />
+      <location filename="../MicroPython/EspDevices.py" line="440" />
+      <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/EspDevices.py" line="448" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="428" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="452" />
+      <source>{0} Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -20157,46 +20167,11 @@
     </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>Select the ESP chip type</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>Enter the path of the firmware file</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>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>Flash Mode:</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>Leave empty to use the default mode.</source>
       <translation type="unfinished" />
     </message>
@@ -20210,6 +20185,51 @@
       <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>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -49025,53 +49045,63 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="269" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="271" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="276" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="404" />
-      <location filename="../MicroPython/MicroPythonDevices.py" line="393" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="408" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="397" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="527" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="549" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonDevices.py" line="550" />
+      <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/MicroPythonDevices.py" line="582" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="537" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="592" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="556" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="611" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="575" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="630" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="594" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="649" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="639" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="694" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="640" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="695" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -49712,17 +49742,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
       <source>MicroPython Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="287" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
       <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="328" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
       <source>%n supported device(s) detected.</source>
       <translation type="unfinished">
         <numerusform />
@@ -49730,18 +49760,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="341" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="358" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
       <source>No supported devices detected.</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="362" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation type="unfinished">
@@ -49750,70 +49780,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="431" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="402" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
       <source>Unknown MicroPython Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="403" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
       <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="415" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
       <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="432" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
       <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="561" />
-      <source>Clear</source>
-      <translation type="unfinished">Pulisci</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="566" />
-      <source>Copy</source>
-      <translation type="unfinished">Copia</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <source>Clear</source>
+      <translation type="unfinished">Pulisci</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <source>Copy</source>
+      <translation type="unfinished">Copia</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
       <source>Paste</source>
       <translation type="unfinished">Incolla</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="579" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
       <source>Select All</source>
       <translation type="unfinished">Seleziona tutti</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="605" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
       <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="610" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
       <source>Press to connect the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="637" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
       <source>No device attached</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="638" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
       <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.
@@ -49822,321 +49852,328 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="667" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
       <source>Start REPL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="668" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
       <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="1151" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1140" />
-      <source>Serial Device Connect</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1141" />
-      <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="1152" />
-      <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="1202" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1193" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1184" />
-      <source>Run Script</source>
-      <translation type="unfinished">Esegui Script</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
-      <source>There is no editor open. Abort...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1194" />
-      <source>The current editor does not contain a script. Abort...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1203" />
-      <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="1174" />
+      <source>Serial Device Connect</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <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" />
+      <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" />
+      <source>Run Script</source>
+      <translation type="unfinished">Esegui Script</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
+      <source>There is no editor open. Abort...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
+      <source>The current editor does not contain a script. Abort...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
+      <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="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
       <source>Python3 Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1274" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
       <source>Start Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1275" />
+      <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="1290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
       <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1307" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
       <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1308" />
+      <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="1356" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
       <source>Start File Manager</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1357" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
       <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="1376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1412" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
       <source>Downloads</source>
       <translation type="unfinished">Downloads</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1427" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
       <source>Show Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1431" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
       <source>Show Implementation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1441" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
       <source>Synchronize Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
       <source>Show Device Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
       <source>Show Local Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1451" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
       <source>Show Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1456" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
-      <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="1466" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1477" />
-      <source>Download Firmware</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" />
+      <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>
+      <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="1490" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
       <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1493" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
       <source>Manage Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1496" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
       <source>Ignored Serial Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1499" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
       <source>Configure</source>
       <translation type="unfinished">Configura</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1509" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
       <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
-      <source>No version information available.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1519" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1539" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1535" />
-      <source>unknown</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="1551" />
+      <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="1552" />
+      <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="1593" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <source>No device implementation information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
       <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="1615" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
       <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="1623" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
       <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="1639" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
       <source>Device Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
       <source>Local Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
       <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="1693" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
       <source>Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
       <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="1694" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
       <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="1718" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
       <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="1761" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
       <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="1787" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
       <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="1797" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
       <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="1806" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50179,178 +50216,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="73" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="83" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="76" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="86" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="338" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="328" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="311" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="150" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="187" />
+      <source>BBC micro:bit/Calliope Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="400" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="388" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="190" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="153" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="194" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="156" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="197" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="418" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="159" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="488" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="201" />
       <source>Save Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="160" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="204" />
       <source>Save the current script to the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="162" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="207" />
       <source>Save Script as 'main.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="164" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="210" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="169" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="214" />
       <source>Reset {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="290" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="354" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="345" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="331" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="314" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="301" />
       <location filename="../MicroPython/MicrobitDevices.py" line="281" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="267" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="250" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="237" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="217" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="218" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="282" />
       <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/MicrobitDevices.py" line="238" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="302" />
       <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/MicrobitDevices.py" line="251" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="315" />
       <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/MicrobitDevices.py" line="268" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="332" />
       <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/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="347" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="291" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="355" />
       <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/MicrobitDevices.py" line="312" />
-      <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/MicrobitDevices.py" line="329" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="372" />
+      <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/MicrobitDevices.py" line="389" />
       <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/MicrobitDevices.py" line="339" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="401" />
       <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/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="428" />
       <source>unknown</source>
       <translation type="unfinished">sconosciuto</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="377" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;br/&gt;(BBC micro:bit v{2})&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/MicrobitDevices.py" line="386" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="444" />
+      <source>Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="447" />
+      <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/MicrobitDevices.py" line="456" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="390" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="452" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="416" />
-      <source>Save Script as '{0}'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="425" />
-      <source>The current editor does not contain a Python script. Write it anyway?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="436" />
-      <source>The script is empty. Aborting.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="445" />
-      <source>Enter a file name on the device:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="466" />
-      <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>
+      <location filename="../MicroPython/MicrobitDevices.py" line="460" />
+      <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicrobitDevices.py" line="522" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="486" />
+      <source>Save Script as '{0}'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="495" />
+      <source>The current editor does not contain a Python script. Write it anyway?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="506" />
+      <source>The script is empty. Aborting.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="515" />
+      <source>Enter a file name on the device:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="536" />
+      <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/MicrobitDevices.py" line="596" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="526" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="628" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="615" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="600" />
+      <source>DAPLink Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="607" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="541" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="530" />
-      <source>DAPLink Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="611" />
+      <source>CircuitPython Firmware for BBC micro:bit V2</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="624" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -62350,39 +62403,44 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="80" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="83" />
       <source>PyBoard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="195" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="198" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="196" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="199" />
       <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/PyBoardDevices.py" line="235" />
-      <source>Activate Bootloader</source>
+      <location filename="../MicroPython/PyBoardDevices.py" line="231" />
+      <source>PyBoard Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="437" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="234" />
+      <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/PyBoardDevices.py" line="238" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="241" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="423" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="242" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="403" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="390" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="420" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="407" />
       <location filename="../MicroPython/PyBoardDevices.py" line="245" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
@@ -62393,83 +62451,83 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="290" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="307" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="291" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="308" />
       <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/PyBoardDevices.py" line="311" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="328" />
       <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/PyBoardDevices.py" line="321" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="338" />
       <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/PyBoardDevices.py" line="327" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="344" />
       <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/PyBoardDevices.py" line="330" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="347" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="341" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="358" />
       <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/PyBoardDevices.py" line="349" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="366" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="402" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="392" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="409" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="424" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="438" />
       <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/PyBoardDevices.py" line="456" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="465" />
       <source>unknown</source>
       <translation type="unfinished">sconosciuto</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="462" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="471" />
       <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/PyBoardDevices.py" line="470" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="479" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="474" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="483" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67596,13 +67654,18 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="66" />
+      <location filename="../MicroPython/RP2040Devices.py" line="69" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="184" />
-      <location filename="../MicroPython/RP2040Devices.py" line="129" />
+      <location filename="../MicroPython/RP2040Devices.py" line="125" />
+      <source>RP2040 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/RP2040Devices.py" line="197" />
+      <location filename="../MicroPython/RP2040Devices.py" line="128" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
@@ -67617,52 +67680,52 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="185" />
+      <location filename="../MicroPython/RP2040Devices.py" line="198" />
       <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/RP2040Devices.py" line="222" />
+      <location filename="../MicroPython/RP2040Devices.py" line="230" />
       <source>unknown</source>
       <translation type="unfinished">sconosciuto</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="228" />
+      <location filename="../MicroPython/RP2040Devices.py" line="236" />
       <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/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/RP2040Devices.py" line="245" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/RP2040Devices.py" line="254" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="250" />
+      <location filename="../MicroPython/RP2040Devices.py" line="258" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="273" />
+      <location filename="../MicroPython/RP2040Devices.py" line="281" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="277" />
+      <location filename="../MicroPython/RP2040Devices.py" line="285" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="280" />
+      <location filename="../MicroPython/RP2040Devices.py" line="288" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="284" />
+      <location filename="../MicroPython/RP2040Devices.py" line="292" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_pt.ts	Sat Feb 11 19:53:53 2023 +0100
+++ b/src/eric7/i18n/eric7_pt.ts	Sun Feb 12 15:14:28 2023 +0100
@@ -3790,95 +3790,100 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="90" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="92" />
       <source>CircuitPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="218" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="217" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="219" />
       <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/CircuitPythonDevices.py" line="252" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="249" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="257" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="253" />
+      <source>CircuitPython Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="256" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="324" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="337" />
       <location filename="../MicroPython/CircuitPythonDevices.py" line="260" />
       <source>Flash CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="404" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="277" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="417" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="290" />
       <source>Install Library Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="402" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="281" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="415" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="294" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="287" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="300" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="325" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="338" />
       <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/CircuitPythonDevices.py" line="357" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="370" />
       <source>unknown</source>
       <translation type="unfinished">desconhecido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="376" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="389" />
       <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/CircuitPythonDevices.py" line="384" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="397" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="388" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="401" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="410" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="423" />
       <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/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="451" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="468" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="481" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="472" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="485" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -20025,61 +20030,66 @@
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="69" />
+      <location filename="../MicroPython/EspDevices.py" line="71" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="377" />
-      <location filename="../MicroPython/EspDevices.py" line="132" />
+      <location filename="../MicroPython/EspDevices.py" line="127" />
+      <source>ESP32 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="400" />
+      <location filename="../MicroPython/EspDevices.py" line="130" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="198" />
-      <location filename="../MicroPython/EspDevices.py" line="184" />
+      <location filename="../MicroPython/EspDevices.py" line="220" />
+      <location filename="../MicroPython/EspDevices.py" line="206" />
       <location filename="../MicroPython/EspDevices.py" line="134" />
       <source>Erase Flash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="235" />
-      <location filename="../MicroPython/EspDevices.py" line="138" />
+      <location filename="../MicroPython/EspDevices.py" line="257" />
+      <location filename="../MicroPython/EspDevices.py" line="137" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="272" />
-      <location filename="../MicroPython/EspDevices.py" line="142" />
+      <location filename="../MicroPython/EspDevices.py" line="294" />
+      <location filename="../MicroPython/EspDevices.py" line="141" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="306" />
+      <location filename="../MicroPython/EspDevices.py" line="328" />
       <location filename="../MicroPython/EspDevices.py" line="145" />
       <source>Backup Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="357" />
+      <location filename="../MicroPython/EspDevices.py" line="379" />
       <location filename="../MicroPython/EspDevices.py" line="148" />
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <location filename="../MicroPython/EspDevices.py" line="152" />
       <source>Show Chip ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <location filename="../MicroPython/EspDevices.py" line="155" />
       <source>Show Flash ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <location filename="../MicroPython/EspDevices.py" line="158" />
       <source>Show MAC Address</source>
       <translation type="unfinished" />
@@ -20090,69 +20100,69 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="166" />
+      <location filename="../MicroPython/EspDevices.py" line="165" />
       <source>Install 'esptool.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="185" />
+      <location filename="../MicroPython/EspDevices.py" line="207" />
       <source>Shall the flash of the selected device really be erased?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="197" />
+      <location filename="../MicroPython/EspDevices.py" line="219" />
       <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="356" />
-      <location filename="../MicroPython/EspDevices.py" line="271" />
-      <location filename="../MicroPython/EspDevices.py" line="234" />
-      <source>'esptool write_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="305" />
-      <source>'esptool read_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/EspDevices.py" line="378" />
-      <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/EspDevices.py" line="410" />
+      <location filename="../MicroPython/EspDevices.py" line="293" />
+      <location filename="../MicroPython/EspDevices.py" line="256" />
+      <source>'esptool write_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="327" />
+      <source>'esptool read_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="401" />
+      <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/EspDevices.py" line="429" />
       <source>unknown</source>
       <translation type="unfinished">desconhecido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="416" />
-      <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/EspDevices.py" line="424" />
+      <location filename="../MicroPython/EspDevices.py" line="440" />
+      <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/EspDevices.py" line="448" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="428" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="452" />
+      <source>{0} Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -20171,46 +20181,11 @@
     </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>Select the ESP chip type</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>Enter the path of the firmware file</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>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>Flash Mode:</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>Leave empty to use the default mode.</source>
       <translation type="unfinished" />
     </message>
@@ -20224,6 +20199,51 @@
       <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>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -49015,53 +49035,63 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="269" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="271" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="276" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="404" />
-      <location filename="../MicroPython/MicroPythonDevices.py" line="393" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="408" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="397" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="527" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="549" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonDevices.py" line="550" />
+      <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/MicroPythonDevices.py" line="582" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="537" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="592" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="556" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="611" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="575" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="630" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="594" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="649" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="639" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="694" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="640" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="695" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -49702,17 +49732,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
       <source>MicroPython Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="287" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
       <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="328" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
       <source>%n supported device(s) detected.</source>
       <translation type="unfinished">
         <numerusform />
@@ -49720,18 +49750,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="341" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="358" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
       <source>No supported devices detected.</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="362" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation type="unfinished">
@@ -49740,70 +49770,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="431" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="402" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
       <source>Unknown MicroPython Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="403" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
       <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="415" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
       <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="432" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
       <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="561" />
-      <source>Clear</source>
-      <translation type="unfinished">Limpar</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="566" />
-      <source>Copy</source>
-      <translation type="unfinished">Copiar</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <source>Clear</source>
+      <translation type="unfinished">Limpar</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <source>Copy</source>
+      <translation type="unfinished">Copiar</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
       <source>Paste</source>
       <translation type="unfinished">Colar</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="579" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
       <source>Select All</source>
       <translation type="unfinished">Selecionar Tudo</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="605" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
       <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="610" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
       <source>Press to connect the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="637" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
       <source>No device attached</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="638" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
       <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.
@@ -49812,321 +49842,328 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="667" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
       <source>Start REPL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="668" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
       <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="1151" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1140" />
-      <source>Serial Device Connect</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1141" />
-      <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="1152" />
-      <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="1202" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1193" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1184" />
-      <source>Run Script</source>
-      <translation type="unfinished">Executar Script</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
-      <source>There is no editor open. Abort...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1194" />
-      <source>The current editor does not contain a script. Abort...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1203" />
-      <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="1174" />
+      <source>Serial Device Connect</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <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" />
+      <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" />
+      <source>Run Script</source>
+      <translation type="unfinished">Executar Script</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
+      <source>There is no editor open. Abort...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
+      <source>The current editor does not contain a script. Abort...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
+      <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="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
       <source>Python3 Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1274" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
       <source>Start Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1275" />
+      <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="1290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
       <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1307" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
       <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1308" />
+      <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="1356" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
       <source>Start File Manager</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1357" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
       <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="1376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1412" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
       <source>Downloads</source>
       <translation type="unfinished">Descargas</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1427" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
       <source>Show Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1431" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
       <source>Show Implementation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1441" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
       <source>Synchronize Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
       <source>Show Device Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
       <source>Show Local Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1451" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
       <source>Show Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1456" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
-      <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="1466" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1477" />
-      <source>Download Firmware</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" />
+      <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>
+      <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="1490" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
       <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1493" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
       <source>Manage Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1496" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
       <source>Ignored Serial Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1499" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
       <source>Configure</source>
       <translation type="unfinished">Configurar</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1509" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
       <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
-      <source>No version information available.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1519" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1539" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1535" />
-      <source>unknown</source>
-      <translation type="unfinished">desconhecido</translation>
-    </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="1551" />
+      <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="1552" />
+      <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="1593" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <source>No device implementation information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
       <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="1615" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
       <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="1623" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
       <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="1639" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
       <source>Device Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
       <source>Local Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
       <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="1693" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
       <source>Date and Time</source>
       <translation type="unfinished">Data e Hora</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
       <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="1694" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
       <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="1718" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
       <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="1761" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
       <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="1787" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished">Ficheiros Python (*.py);;Ficheiros Todos (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
       <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="1806" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50169,178 +50206,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="73" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="83" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="76" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="86" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="338" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="328" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="311" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="150" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="187" />
+      <source>BBC micro:bit/Calliope Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="400" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="388" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="190" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="153" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="194" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="156" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="197" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="418" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="159" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="488" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="201" />
       <source>Save Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="160" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="204" />
       <source>Save the current script to the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="162" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="207" />
       <source>Save Script as 'main.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="164" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="210" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="169" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="214" />
       <source>Reset {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="290" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="354" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="345" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="331" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="314" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="301" />
       <location filename="../MicroPython/MicrobitDevices.py" line="281" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="267" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="250" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="237" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="217" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="218" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="282" />
       <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/MicrobitDevices.py" line="238" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="302" />
       <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/MicrobitDevices.py" line="251" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="315" />
       <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/MicrobitDevices.py" line="268" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="332" />
       <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/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="347" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="291" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="355" />
       <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/MicrobitDevices.py" line="312" />
-      <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/MicrobitDevices.py" line="329" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="372" />
+      <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/MicrobitDevices.py" line="389" />
       <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/MicrobitDevices.py" line="339" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="401" />
       <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/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="428" />
       <source>unknown</source>
       <translation type="unfinished">desconhecido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="377" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;br/&gt;(BBC micro:bit v{2})&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/MicrobitDevices.py" line="386" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="444" />
+      <source>Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="447" />
+      <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/MicrobitDevices.py" line="456" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="390" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="452" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="416" />
-      <source>Save Script as '{0}'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="425" />
-      <source>The current editor does not contain a Python script. Write it anyway?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="436" />
-      <source>The script is empty. Aborting.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="445" />
-      <source>Enter a file name on the device:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="466" />
-      <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>
+      <location filename="../MicroPython/MicrobitDevices.py" line="460" />
+      <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicrobitDevices.py" line="522" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="486" />
+      <source>Save Script as '{0}'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="495" />
+      <source>The current editor does not contain a Python script. Write it anyway?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="506" />
+      <source>The script is empty. Aborting.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="515" />
+      <source>Enter a file name on the device:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="536" />
+      <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/MicrobitDevices.py" line="596" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="526" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="628" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="615" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="600" />
+      <source>DAPLink Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="607" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="541" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="530" />
-      <source>DAPLink Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="611" />
+      <source>CircuitPython Firmware for BBC micro:bit V2</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="624" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -62297,39 +62350,44 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="80" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="83" />
       <source>PyBoard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="195" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="198" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="196" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="199" />
       <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/PyBoardDevices.py" line="235" />
-      <source>Activate Bootloader</source>
+      <location filename="../MicroPython/PyBoardDevices.py" line="231" />
+      <source>PyBoard Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="437" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="234" />
+      <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/PyBoardDevices.py" line="238" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="241" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="423" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="242" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="403" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="390" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="420" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="407" />
       <location filename="../MicroPython/PyBoardDevices.py" line="245" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
@@ -62340,83 +62398,83 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="290" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="307" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="291" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="308" />
       <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/PyBoardDevices.py" line="311" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="328" />
       <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/PyBoardDevices.py" line="321" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="338" />
       <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/PyBoardDevices.py" line="327" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="344" />
       <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/PyBoardDevices.py" line="330" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="347" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="341" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="358" />
       <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/PyBoardDevices.py" line="349" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="366" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="402" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="392" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="409" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="424" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="438" />
       <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/PyBoardDevices.py" line="456" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="465" />
       <source>unknown</source>
       <translation type="unfinished">desconhecido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="462" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="471" />
       <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/PyBoardDevices.py" line="470" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="479" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="474" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="483" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67458,13 +67516,18 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="66" />
+      <location filename="../MicroPython/RP2040Devices.py" line="69" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="184" />
-      <location filename="../MicroPython/RP2040Devices.py" line="129" />
+      <location filename="../MicroPython/RP2040Devices.py" line="125" />
+      <source>RP2040 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/RP2040Devices.py" line="197" />
+      <location filename="../MicroPython/RP2040Devices.py" line="128" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
@@ -67479,52 +67542,52 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="185" />
+      <location filename="../MicroPython/RP2040Devices.py" line="198" />
       <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/RP2040Devices.py" line="222" />
+      <location filename="../MicroPython/RP2040Devices.py" line="230" />
       <source>unknown</source>
       <translation type="unfinished">desconhecido</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="228" />
+      <location filename="../MicroPython/RP2040Devices.py" line="236" />
       <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/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/RP2040Devices.py" line="245" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/RP2040Devices.py" line="254" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="250" />
+      <location filename="../MicroPython/RP2040Devices.py" line="258" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="273" />
+      <location filename="../MicroPython/RP2040Devices.py" line="281" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="277" />
+      <location filename="../MicroPython/RP2040Devices.py" line="285" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="280" />
+      <location filename="../MicroPython/RP2040Devices.py" line="288" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="284" />
+      <location filename="../MicroPython/RP2040Devices.py" line="292" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_ru.ts	Sat Feb 11 19:53:53 2023 +0100
+++ b/src/eric7/i18n/eric7_ru.ts	Sun Feb 12 15:14:28 2023 +0100
@@ -3721,95 +3721,100 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="90" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="92" />
       <source>CircuitPython</source>
       <translation>CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="218" />
       <source>Workspace Directory</source>
       <translation>Директория рабочей области</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="217" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="219" />
       <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/CircuitPythonDevices.py" line="252" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="249" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="257" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="253" />
+      <source>CircuitPython Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="256" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="324" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="337" />
       <location filename="../MicroPython/CircuitPythonDevices.py" line="260" />
       <source>Flash CircuitPython Firmware</source>
       <translation>Прошить микрокод CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="404" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="277" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="417" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="290" />
       <source>Install Library Files</source>
       <translation>Установить файлы библиотек</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="402" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="281" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="415" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="294" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="287" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="300" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="325" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="338" />
       <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/CircuitPythonDevices.py" line="357" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="370" />
       <source>unknown</source>
       <translation type="unfinished">неизвестный</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="376" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="389" />
       <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/CircuitPythonDevices.py" line="384" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="397" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="388" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="401" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="410" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="423" />
       <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/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="451" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation>Компилированные файлы Python (*.mpy);;Файлы Python (*.py);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="468" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="481" />
       <source>CircuitPython Firmware</source>
       <translation>Микрокод CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="472" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="485" />
       <source>CircuitPython Libraries</source>
       <translation>Библиотеки CircuitPython</translation>
     </message>
@@ -19935,61 +19940,66 @@
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="69" />
+      <location filename="../MicroPython/EspDevices.py" line="71" />
       <source>ESP8266, ESP32</source>
       <translation>ESP8266, ESP32</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="377" />
-      <location filename="../MicroPython/EspDevices.py" line="132" />
+      <location filename="../MicroPython/EspDevices.py" line="127" />
+      <source>ESP32 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="400" />
+      <location filename="../MicroPython/EspDevices.py" line="130" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="198" />
-      <location filename="../MicroPython/EspDevices.py" line="184" />
+      <location filename="../MicroPython/EspDevices.py" line="220" />
+      <location filename="../MicroPython/EspDevices.py" line="206" />
       <location filename="../MicroPython/EspDevices.py" line="134" />
       <source>Erase Flash</source>
       <translation>Очистить Flash-память</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="235" />
-      <location filename="../MicroPython/EspDevices.py" line="138" />
+      <location filename="../MicroPython/EspDevices.py" line="257" />
+      <location filename="../MicroPython/EspDevices.py" line="137" />
       <source>Flash MicroPython Firmware</source>
       <translation>Прошить микрокод MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="272" />
-      <location filename="../MicroPython/EspDevices.py" line="142" />
+      <location filename="../MicroPython/EspDevices.py" line="294" />
+      <location filename="../MicroPython/EspDevices.py" line="141" />
       <source>Flash Additional Firmware</source>
       <translation>Прошить дополнительный микрокод</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="306" />
+      <location filename="../MicroPython/EspDevices.py" line="328" />
       <location filename="../MicroPython/EspDevices.py" line="145" />
       <source>Backup Firmware</source>
       <translation>Резервировать микрокод</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="357" />
+      <location filename="../MicroPython/EspDevices.py" line="379" />
       <location filename="../MicroPython/EspDevices.py" line="148" />
       <source>Restore Firmware</source>
       <translation>Восстановить микрокод</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <location filename="../MicroPython/EspDevices.py" line="152" />
       <source>Show Chip ID</source>
       <translation>Показать ID чипа</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <location filename="../MicroPython/EspDevices.py" line="155" />
       <source>Show Flash ID</source>
       <translation>Показать ID Flash</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <location filename="../MicroPython/EspDevices.py" line="158" />
       <source>Show MAC Address</source>
       <translation>Показать MAC-адрес</translation>
@@ -20000,69 +20010,69 @@
       <translation>Сбросить устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="166" />
+      <location filename="../MicroPython/EspDevices.py" line="165" />
       <source>Install 'esptool.py'</source>
       <translation>Установить 'esptool.py'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="185" />
+      <location filename="../MicroPython/EspDevices.py" line="207" />
       <source>Shall the flash of the selected device really be erased?</source>
       <translation>Действительно ли flash-память выбранного устройства должна быть очищена?</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="197" />
+      <location filename="../MicroPython/EspDevices.py" line="219" />
       <source>'esptool erase_flash' Output</source>
       <translation>Вывод команды 'esptool erase_flash'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="356" />
-      <location filename="../MicroPython/EspDevices.py" line="271" />
-      <location filename="../MicroPython/EspDevices.py" line="234" />
-      <source>'esptool write_flash' Output</source>
-      <translation>Вывод команды 'esptool write_flash'</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="305" />
-      <source>'esptool read_flash' Output</source>
-      <translation>Вывод команды 'esptool read_flash'</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/EspDevices.py" line="378" />
-      <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/EspDevices.py" line="410" />
+      <location filename="../MicroPython/EspDevices.py" line="293" />
+      <location filename="../MicroPython/EspDevices.py" line="256" />
+      <source>'esptool write_flash' Output</source>
+      <translation>Вывод команды 'esptool write_flash'</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="327" />
+      <source>'esptool read_flash' Output</source>
+      <translation>Вывод команды 'esptool read_flash'</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="401" />
+      <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/EspDevices.py" line="429" />
       <source>unknown</source>
       <translation type="unfinished">неизвестный</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="416" />
-      <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/EspDevices.py" line="424" />
+      <location filename="../MicroPython/EspDevices.py" line="440" />
+      <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/EspDevices.py" line="448" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="428" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="452" />
+      <source>{0} Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <source>'esptool chip_id' Output</source>
       <translation>Вывод команды 'esptool chip_id'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <source>'esptool flash_id' Output</source>
       <translation>Вывод команды 'esptool flash_id'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <source>'esptool read_mac' Output</source>
       <translation>Вывод команды 'esptool read_mac'</translation>
     </message>
@@ -20081,46 +20091,11 @@
     </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>Select the ESP chip type</source>
-      <translation>Выберите тип ESP-чипа</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>Enter the path of the firmware file</source>
-      <translation>Введите путь к файлу микрокода</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>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>Flash Mode:</source>
-      <translation>Режим прошивки:</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>Leave empty to use the default mode.</source>
       <translation>Оставьте пустым для режима по умолчанию.</translation>
     </message>
@@ -20134,6 +20109,51 @@
       <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>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -48927,53 +48947,63 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="269" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="271" />
       <source>RP2040 based</source>
       <translation>На базе RP2040</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="276" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Generic Board</source>
       <translation>Универсальная плата</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="404" />
-      <location filename="../MicroPython/MicroPythonDevices.py" line="393" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="408" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="397" />
       <source>Unknown Device</source>
       <translation>Неизвестное устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="527" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="549" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonDevices.py" line="550" />
+      <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/MicroPythonDevices.py" line="582" />
       <source>Unsupported Device</source>
       <translation>Неподдерживаемое устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="537" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="592" />
       <source>REPL is not supported by this device.</source>
       <translation>REPL не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="556" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="611" />
       <source>Plotter is not supported by this device.</source>
       <translation>Плоттер не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="575" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="630" />
       <source>Running scripts is not supported by this device.</source>
       <translation>Выполнение скриптов не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="594" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="649" />
       <source>File Manager is not supported by this device.</source>
       <translation>Менеджер файлов не поддерживается этим устройством.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="639" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="694" />
       <source>Select Device Directory</source>
       <translation>Выберите директорию устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="640" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="695" />
       <source>Select the directory for the connected device:</source>
       <translation>Выберите директорию для подсоединенного устройства:</translation>
     </message>
@@ -49614,17 +49644,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
       <source>MicroPython Menu</source>
       <translation>Меню MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="287" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
       <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="328" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
       <source>%n supported device(s) detected.</source>
       <translation>
         <numerusform>Обнаружено %n поддерживаемое устройство.</numerusform>
@@ -49633,18 +49663,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="341" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
       <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="358" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
       <source>No supported devices detected.</source>
       <translation>Не обнаружены поддерживаемые устройства.</translation>
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="362" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation>
@@ -49657,70 +49687,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
       <source>Manual Selection</source>
       <translation>Ручной выбор</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="431" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="402" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
       <source>Unknown MicroPython Device</source>
       <translation>Неизвестное устройство MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="403" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
       <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="415" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
       <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="432" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
       <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="561" />
-      <source>Clear</source>
-      <translation>Очистить</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="566" />
-      <source>Copy</source>
-      <translation>Копировать</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <source>Clear</source>
+      <translation>Очистить</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <source>Copy</source>
+      <translation>Копировать</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
       <source>Paste</source>
       <translation>Вставить</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="579" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
       <source>Select All</source>
       <translation>Выделить всё</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="605" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
       <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="610" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
       <source>Press to connect the selected device</source>
       <translation>Подключить выбранное устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="637" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
       <source>No device attached</source>
       <translation>Устройство не подключено</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="638" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
       <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.
@@ -49733,321 +49763,328 @@
 И наконец, нажмите кнопку перезагрузки устройства и подождите несколько секунд, прежде чем повторить попытку.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="667" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
       <source>Start REPL</source>
       <translation>Запустить REPL</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="668" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
       <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="1151" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1140" />
-      <source>Serial Device Connect</source>
-      <translation>Подсоединение последовательного устройства</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1141" />
-      <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="1152" />
-      <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="1202" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1193" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1184" />
-      <source>Run Script</source>
-      <translation>Выполнить скрипт</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <source>Serial Device Connect</source>
+      <translation>Подсоединение последовательного устройства</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <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" />
+      <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" />
+      <source>Run Script</source>
+      <translation>Выполнить скрипт</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
       <source>There is no editor open. Abort...</source>
       <translation>Редактор не открыт. Прерывание...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1194" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation>Текущий редактор не содержит скрипт. Прервать...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1203" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
       <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="1228" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
       <source>Open Python File</source>
       <translation>Открыть файл Python</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
       <source>Python3 Files (*.py);;All Files (*)</source>
       <translation>Файлы Python3 (*.py);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1274" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
       <source>Start Chart</source>
       <translation>Построить диаграмму</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1275" />
+      <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="1290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
       <source>µPy Chart</source>
       <translation>µPy диаграммы</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1307" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
       <source>Unsaved Chart Data</source>
       <translation>Несохраненные данные диаграммы</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1308" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1343" />
       <source>The chart contains unsaved data.</source>
       <translation>Диаграмма содержит несохраненные данные.</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1356" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
       <source>Start File Manager</source>
       <translation>Запустить менеджер файлов</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1357" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
       <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="1376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
       <source>µPy Files</source>
       <translation>µPy файлы</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1412" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
       <source>Downloads</source>
       <translation>Загрузить микрокод / библиотеки</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1427" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
       <source>Show Version</source>
       <translation>Показать версию</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1431" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
       <source>Show Implementation</source>
       <translation>Показать исполнение</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
       <source>Show Board Data</source>
       <translation>Показать данные платы</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1441" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
       <source>Synchronize Time</source>
       <translation>Синхронизировать время</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
       <source>Show Device Time</source>
       <translation>Показать время устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
       <source>Show Local Time</source>
       <translation>Показать локальное время</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1451" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
       <source>Show Time</source>
       <translation>Показать время</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1456" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
-      <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="1466" />
-      <source>Compile Current Editor</source>
-      <translation>Компилировать текущий редактор</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1477" />
-      <source>Download Firmware</source>
-      <translation>Загрузить микрокод</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" />
+      <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>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1511" />
       <source>Show Documentation</source>
       <translation>Просмотр документации</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1490" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
       <source>Flash UF2 Device</source>
       <translation>Прошивка UF2-устройств</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1493" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
       <source>Manage Unknown Devices</source>
       <translation>Менеджер неизвестных устройств</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1496" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
       <source>Ignored Serial Devices</source>
       <translation>Проигнорированные последовательные устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1499" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
       <source>Configure</source>
       <translation>Настройки</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1509" />
+      <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>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
-      <source>No version information available.</source>
-      <translation>Информация о версии недоступна.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1519" />
-      <source>Device Version Information</source>
-      <translation>Информация о версии устройства</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1539" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1535" />
-      <source>unknown</source>
-      <translation>unknown</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="1551" />
+      <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="1552" />
+      <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="1593" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <source>No device implementation information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
       <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="1615" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
       <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="1623" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
       <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="1639" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
       <source>Device Date and Time</source>
       <translation>Дата и время устройства</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
       <source>Local Date and Time</source>
       <translation>Локальные дата и время</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
       <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="1693" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
       <source>Date and Time</source>
       <translation>Дата и время</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
       <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="1694" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
       <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="1718" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
       <source>Error handling device</source>
       <translation>Ошибка при работе с устройством</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
       <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="1761" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
       <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="1787" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation>Файлы Python (*.py);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
       <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="1806" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
       <source>'mpy-cross' Output</source>
       <translation>Вывод команды 'mpy-cross'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation>Текущий редактор не содержит файл Python. Отмена...</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
       <source>Add Unknown Devices</source>
       <translation>Добавить неизвестное устройство</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
       <source>Select the devices to be added:</source>
       <translation>Выбор устройств для добавления:</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50094,178 +50131,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="73" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="83" />
       <source>BBC micro:bit</source>
       <translation>BBC micro:bit</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="76" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="86" />
       <source>Calliope mini</source>
       <translation>Calliope mini</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="338" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="328" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="311" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="150" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="187" />
+      <source>BBC micro:bit/Calliope Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="400" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="388" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="190" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="153" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="194" />
       <source>Flash MicroPython</source>
       <translation>Прошить MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="156" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="197" />
       <source>Flash Firmware</source>
       <translation>Прошить микрокод</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="418" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="159" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="488" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="201" />
       <source>Save Script</source>
       <translation>Сохранить скрипт</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="160" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="204" />
       <source>Save the current script to the selected device</source>
       <translation>Сохранить текущий скрипт на выбранном устройстве</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="162" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="207" />
       <source>Save Script as 'main.py'</source>
       <translation>Сохранить скрипт как 'main.py'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="164" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="210" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation>Сохранить текущий скрипт как 'main.py' на подключенном устройстве</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="169" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="214" />
       <source>Reset {0}</source>
       <translation>Сбросить {0}</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="290" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="354" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="345" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="331" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="314" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="301" />
       <location filename="../MicroPython/MicrobitDevices.py" line="281" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="267" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="250" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="237" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="217" />
       <source>Flash MicroPython/Firmware</source>
       <translation>Прошить MicroPython/микрокод</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="218" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="282" />
       <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/MicrobitDevices.py" line="238" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="302" />
       <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/MicrobitDevices.py" line="251" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="315" />
       <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/MicrobitDevices.py" line="268" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="332" />
       <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/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="347" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation>Файлы MicroPython/микрокода (*.hex *.bin);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="291" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="355" />
       <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/MicrobitDevices.py" line="312" />
-      <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/MicrobitDevices.py" line="329" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="372" />
+      <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/MicrobitDevices.py" line="389" />
       <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/MicrobitDevices.py" line="339" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="401" />
       <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/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="428" />
       <source>unknown</source>
       <translation type="unfinished">неизвестный</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="377" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;br/&gt;(BBC micro:bit v{2})&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/MicrobitDevices.py" line="386" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="444" />
+      <source>Firmware</source>
+      <translation type="unfinished">Прошивка</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="447" />
+      <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/MicrobitDevices.py" line="456" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="390" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="452" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="416" />
-      <source>Save Script as '{0}'</source>
-      <translation>Сохранить скрипт как '{0}'</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="425" />
-      <source>The current editor does not contain a Python script. Write it anyway?</source>
-      <translation>Текущий редактор не содержит скрипт Python. Все равно записать?</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="436" />
-      <source>The script is empty. Aborting.</source>
-      <translation>Скрипт пуст. Прерывание.</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="445" />
-      <source>Enter a file name on the device:</source>
-      <translation>Введите имя файла на устройстве:</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="466" />
-      <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>
+      <location filename="../MicroPython/MicrobitDevices.py" line="460" />
+      <source>{0} Version</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicrobitDevices.py" line="522" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="486" />
+      <source>Save Script as '{0}'</source>
+      <translation>Сохранить скрипт как '{0}'</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="495" />
+      <source>The current editor does not contain a Python script. Write it anyway?</source>
+      <translation>Текущий редактор не содержит скрипт Python. Все равно записать?</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="506" />
+      <source>The script is empty. Aborting.</source>
+      <translation>Скрипт пуст. Прерывание.</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="515" />
+      <source>Enter a file name on the device:</source>
+      <translation>Введите имя файла на устройстве:</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="536" />
+      <source>&lt;p&gt;The script could not be saved to the device.&lt;/p&gt;&lt;p&gt;Reason: {0}&lt;/p&gt;</source>
+      <translation>&lt;p&gt;Не удается сохранить скрипт на устройстве.&lt;/p&gt;&lt;p&gt;Причина: {0}&lt;/p&gt;</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="596" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation>Микрокод MicroPython для BBC micro:bit V1</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="526" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="628" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="615" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="600" />
+      <source>DAPLink Firmware</source>
+      <translation>Микрокод DAPLink</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="607" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation>Микрокод MicroPython для BBC micro:bit V2</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="541" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="530" />
-      <source>DAPLink Firmware</source>
-      <translation>Микрокод DAPLink</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="611" />
+      <source>CircuitPython Firmware for BBC micro:bit V2</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="624" />
       <source>MicroPython Firmware</source>
       <translation>Микрокод MicroPython</translation>
     </message>
@@ -62057,39 +62110,44 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="80" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="83" />
       <source>PyBoard</source>
       <translation>PyBoard</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="195" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="198" />
       <source>Workspace Directory</source>
       <translation>Директория рабочей области</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="196" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="199" />
       <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/PyBoardDevices.py" line="235" />
-      <source>Activate Bootloader</source>
-      <translation>Активировать загрузчик</translation>
+      <location filename="../MicroPython/PyBoardDevices.py" line="231" />
+      <source>PyBoard Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="437" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="234" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/PyBoardDevices.py" line="238" />
+      <source>Activate Bootloader</source>
+      <translation>Активировать загрузчик</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="241" />
       <source>List DFU-capable Devices</source>
       <translation>Список DFU-устройств</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="423" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="242" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="403" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="390" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="420" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="407" />
       <location filename="../MicroPython/PyBoardDevices.py" line="245" />
       <source>Flash MicroPython Firmware</source>
       <translation>Прошить микрокод MicroPython</translation>
@@ -62100,83 +62158,83 @@
       <translation>Инструкция прошивки MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="290" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="307" />
       <source>dfu-util not available</source>
       <translation>dfu-util не доступна</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="291" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="308" />
       <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/PyBoardDevices.py" line="311" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="328" />
       <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/PyBoardDevices.py" line="321" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="338" />
       <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/PyBoardDevices.py" line="327" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="344" />
       <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/PyBoardDevices.py" line="330" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="347" />
       <source>Enable DFU mode</source>
       <translation>Включить режим DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="341" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="358" />
       <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/PyBoardDevices.py" line="349" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="366" />
       <source>Disable DFU mode</source>
       <translation>Отключить режим DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="402" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>'dfu-util' Output</source>
       <translation>Вывод команды'dfu-util'</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>List DFU capable Devices</source>
       <translation>Список устройств с поддержкой DFU</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="392" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="409" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation>Файлы микрокода MicroPython (*.dfu);;Все файлы (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="424" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="438" />
       <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/PyBoardDevices.py" line="456" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="465" />
       <source>unknown</source>
       <translation type="unfinished">неизвестный</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="462" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="471" />
       <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/PyBoardDevices.py" line="470" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="479" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="474" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="483" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67365,13 +67423,18 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="66" />
+      <location filename="../MicroPython/RP2040Devices.py" line="69" />
       <source>RP2040</source>
       <translation>RP2040</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="184" />
-      <location filename="../MicroPython/RP2040Devices.py" line="129" />
+      <location filename="../MicroPython/RP2040Devices.py" line="125" />
+      <source>RP2040 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/RP2040Devices.py" line="197" />
+      <location filename="../MicroPython/RP2040Devices.py" line="128" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
@@ -67386,52 +67449,52 @@
       <translation type="unfinished">Прошить микрокод MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="185" />
+      <location filename="../MicroPython/RP2040Devices.py" line="198" />
       <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/RP2040Devices.py" line="222" />
+      <location filename="../MicroPython/RP2040Devices.py" line="230" />
       <source>unknown</source>
       <translation type="unfinished">неизвестный</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="228" />
+      <location filename="../MicroPython/RP2040Devices.py" line="236" />
       <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/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/RP2040Devices.py" line="245" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/RP2040Devices.py" line="254" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="250" />
+      <location filename="../MicroPython/RP2040Devices.py" line="258" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="273" />
+      <location filename="../MicroPython/RP2040Devices.py" line="281" />
       <source>MicroPython Firmware</source>
       <translation>Микрокод MicroPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="277" />
+      <location filename="../MicroPython/RP2040Devices.py" line="285" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="280" />
+      <location filename="../MicroPython/RP2040Devices.py" line="288" />
       <source>CircuitPython Firmware</source>
       <translation>Микрокод CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="284" />
+      <location filename="../MicroPython/RP2040Devices.py" line="292" />
       <source>CircuitPython Libraries</source>
       <translation>Библиотеки CircuitPython</translation>
     </message>
--- a/src/eric7/i18n/eric7_tr.ts	Sat Feb 11 19:53:53 2023 +0100
+++ b/src/eric7/i18n/eric7_tr.ts	Sun Feb 12 15:14:28 2023 +0100
@@ -3776,95 +3776,100 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="90" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="92" />
       <source>CircuitPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="218" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="217" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="219" />
       <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/CircuitPythonDevices.py" line="252" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="249" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="257" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="253" />
+      <source>CircuitPython Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="256" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="324" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="337" />
       <location filename="../MicroPython/CircuitPythonDevices.py" line="260" />
       <source>Flash CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="404" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="277" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="417" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="290" />
       <source>Install Library Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="402" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="281" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="415" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="294" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="287" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="300" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="325" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="338" />
       <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/CircuitPythonDevices.py" line="357" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="370" />
       <source>unknown</source>
       <translation type="unfinished">bilinmeyen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="376" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="389" />
       <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/CircuitPythonDevices.py" line="384" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="397" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="388" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="401" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="410" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="423" />
       <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/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="451" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="468" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="481" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="472" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="485" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -19958,61 +19963,66 @@
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="69" />
+      <location filename="../MicroPython/EspDevices.py" line="71" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="377" />
-      <location filename="../MicroPython/EspDevices.py" line="132" />
+      <location filename="../MicroPython/EspDevices.py" line="127" />
+      <source>ESP32 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="400" />
+      <location filename="../MicroPython/EspDevices.py" line="130" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="198" />
-      <location filename="../MicroPython/EspDevices.py" line="184" />
+      <location filename="../MicroPython/EspDevices.py" line="220" />
+      <location filename="../MicroPython/EspDevices.py" line="206" />
       <location filename="../MicroPython/EspDevices.py" line="134" />
       <source>Erase Flash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="235" />
-      <location filename="../MicroPython/EspDevices.py" line="138" />
+      <location filename="../MicroPython/EspDevices.py" line="257" />
+      <location filename="../MicroPython/EspDevices.py" line="137" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="272" />
-      <location filename="../MicroPython/EspDevices.py" line="142" />
+      <location filename="../MicroPython/EspDevices.py" line="294" />
+      <location filename="../MicroPython/EspDevices.py" line="141" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="306" />
+      <location filename="../MicroPython/EspDevices.py" line="328" />
       <location filename="../MicroPython/EspDevices.py" line="145" />
       <source>Backup Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="357" />
+      <location filename="../MicroPython/EspDevices.py" line="379" />
       <location filename="../MicroPython/EspDevices.py" line="148" />
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <location filename="../MicroPython/EspDevices.py" line="152" />
       <source>Show Chip ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <location filename="../MicroPython/EspDevices.py" line="155" />
       <source>Show Flash ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <location filename="../MicroPython/EspDevices.py" line="158" />
       <source>Show MAC Address</source>
       <translation type="unfinished" />
@@ -20023,69 +20033,69 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="166" />
+      <location filename="../MicroPython/EspDevices.py" line="165" />
       <source>Install 'esptool.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="185" />
+      <location filename="../MicroPython/EspDevices.py" line="207" />
       <source>Shall the flash of the selected device really be erased?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="197" />
+      <location filename="../MicroPython/EspDevices.py" line="219" />
       <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="356" />
-      <location filename="../MicroPython/EspDevices.py" line="271" />
-      <location filename="../MicroPython/EspDevices.py" line="234" />
-      <source>'esptool write_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="305" />
-      <source>'esptool read_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/EspDevices.py" line="378" />
-      <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/EspDevices.py" line="410" />
+      <location filename="../MicroPython/EspDevices.py" line="293" />
+      <location filename="../MicroPython/EspDevices.py" line="256" />
+      <source>'esptool write_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="327" />
+      <source>'esptool read_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="401" />
+      <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/EspDevices.py" line="429" />
       <source>unknown</source>
       <translation type="unfinished">bilinmeyen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="416" />
-      <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/EspDevices.py" line="424" />
+      <location filename="../MicroPython/EspDevices.py" line="440" />
+      <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/EspDevices.py" line="448" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="428" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="452" />
+      <source>{0} Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -20104,46 +20114,11 @@
     </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>Select the ESP chip type</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>Enter the path of the firmware file</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>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>Flash Mode:</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>Leave empty to use the default mode.</source>
       <translation type="unfinished" />
     </message>
@@ -20157,6 +20132,51 @@
       <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>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -48962,53 +48982,63 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="269" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="271" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="276" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="404" />
-      <location filename="../MicroPython/MicroPythonDevices.py" line="393" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="408" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="397" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="527" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="549" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonDevices.py" line="550" />
+      <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/MicroPythonDevices.py" line="582" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="537" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="592" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="556" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="611" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="575" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="630" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="594" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="649" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="639" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="694" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="640" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="695" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -49649,17 +49679,17 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
       <source>MicroPython Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="287" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
       <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="328" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
       <source>%n supported device(s) detected.</source>
       <translation type="unfinished">
         <numerusform />
@@ -49667,18 +49697,18 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="341" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="358" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
       <source>No supported devices detected.</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="362" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation type="unfinished">
@@ -49687,70 +49717,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="431" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="402" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
       <source>Unknown MicroPython Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="403" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
       <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="415" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
       <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="432" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
       <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="561" />
-      <source>Clear</source>
-      <translation type="unfinished">Temizle</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="566" />
-      <source>Copy</source>
-      <translation type="unfinished">Kopyala</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <source>Clear</source>
+      <translation type="unfinished">Temizle</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <source>Copy</source>
+      <translation type="unfinished">Kopyala</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
       <source>Paste</source>
       <translation type="unfinished">Yapıştır</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="579" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
       <source>Select All</source>
       <translation type="unfinished">Hepsini Seç</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="605" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
       <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="610" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
       <source>Press to connect the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="637" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
       <source>No device attached</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="638" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
       <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.
@@ -49759,321 +49789,328 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="667" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
       <source>Start REPL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="668" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
       <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="1151" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1140" />
-      <source>Serial Device Connect</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1141" />
-      <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="1152" />
-      <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="1202" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1193" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1184" />
-      <source>Run Script</source>
-      <translation type="unfinished">Betiği Çalıştır</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1174" />
+      <source>Serial Device Connect</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <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" />
+      <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" />
+      <source>Run Script</source>
+      <translation type="unfinished">Betiği Çalıştır</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
       <source>There is no editor open. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1194" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
       <source>The current editor does not contain a script. Abort...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1203" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
       <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="1228" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1263" />
       <source>Open Python File</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
       <source>Python3 Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1274" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
       <source>Start Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1275" />
+      <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="1290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
       <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1307" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
       <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1308" />
+      <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="1356" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
       <source>Start File Manager</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1357" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
       <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="1376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1412" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
       <source>Downloads</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1427" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
       <source>Show Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1431" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
       <source>Show Implementation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1441" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
       <source>Synchronize Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
       <source>Show Device Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
       <source>Show Local Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1451" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
       <source>Show Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1456" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
-      <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="1466" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1477" />
-      <source>Download Firmware</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" />
+      <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>
+      <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="1490" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
       <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1493" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
       <source>Manage Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1496" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
       <source>Ignored Serial Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1499" />
+      <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="1509" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
       <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
-      <source>No version information available.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1519" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1539" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1535" />
-      <source>unknown</source>
-      <translation type="unfinished">bilinmeyen</translation>
-    </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="1551" />
+      <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="1552" />
+      <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="1593" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <source>No device implementation information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
       <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="1615" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
       <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="1623" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
       <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="1639" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
       <source>Device Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
       <source>Local Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
       <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="1693" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
       <source>Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
       <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="1694" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
       <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="1718" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
       <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="1761" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
       <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="1787" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
       <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="1797" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
       <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="1806" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50116,178 +50153,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="73" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="83" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="76" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="86" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="338" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="328" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="311" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="150" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="187" />
+      <source>BBC micro:bit/Calliope Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="400" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="388" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="190" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="153" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="194" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="156" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="197" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="418" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="159" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="488" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="201" />
       <source>Save Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="160" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="204" />
       <source>Save the current script to the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="162" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="207" />
       <source>Save Script as 'main.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="164" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="210" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="169" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="214" />
       <source>Reset {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="290" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="354" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="345" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="331" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="314" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="301" />
       <location filename="../MicroPython/MicrobitDevices.py" line="281" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="267" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="250" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="237" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="217" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="218" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="282" />
       <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/MicrobitDevices.py" line="238" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="302" />
       <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/MicrobitDevices.py" line="251" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="315" />
       <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/MicrobitDevices.py" line="268" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="332" />
       <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/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="347" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="291" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="355" />
       <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/MicrobitDevices.py" line="312" />
-      <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/MicrobitDevices.py" line="329" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="372" />
+      <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/MicrobitDevices.py" line="389" />
       <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/MicrobitDevices.py" line="339" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="401" />
       <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/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="428" />
       <source>unknown</source>
       <translation type="unfinished">bilinmeyen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="377" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;br/&gt;(BBC micro:bit v{2})&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/MicrobitDevices.py" line="386" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="444" />
+      <source>Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="447" />
+      <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/MicrobitDevices.py" line="456" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="390" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="452" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="416" />
-      <source>Save Script as '{0}'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="425" />
-      <source>The current editor does not contain a Python script. Write it anyway?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="436" />
-      <source>The script is empty. Aborting.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="445" />
-      <source>Enter a file name on the device:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="466" />
-      <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>
+      <location filename="../MicroPython/MicrobitDevices.py" line="460" />
+      <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicrobitDevices.py" line="522" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="486" />
+      <source>Save Script as '{0}'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="495" />
+      <source>The current editor does not contain a Python script. Write it anyway?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="506" />
+      <source>The script is empty. Aborting.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="515" />
+      <source>Enter a file name on the device:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="536" />
+      <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/MicrobitDevices.py" line="596" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="526" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="628" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="615" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="600" />
+      <source>DAPLink Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="607" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="541" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="530" />
-      <source>DAPLink Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="611" />
+      <source>CircuitPython Firmware for BBC micro:bit V2</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="624" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -62280,39 +62333,44 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="80" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="83" />
       <source>PyBoard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="195" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="198" />
       <source>Workspace Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="196" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="199" />
       <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/PyBoardDevices.py" line="235" />
-      <source>Activate Bootloader</source>
+      <location filename="../MicroPython/PyBoardDevices.py" line="231" />
+      <source>PyBoard Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="437" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="234" />
+      <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/PyBoardDevices.py" line="238" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="241" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="423" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="242" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="403" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="390" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="420" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="407" />
       <location filename="../MicroPython/PyBoardDevices.py" line="245" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
@@ -62323,83 +62381,83 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="290" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="307" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="291" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="308" />
       <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/PyBoardDevices.py" line="311" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="328" />
       <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/PyBoardDevices.py" line="321" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="338" />
       <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/PyBoardDevices.py" line="327" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="344" />
       <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/PyBoardDevices.py" line="330" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="347" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="341" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="358" />
       <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/PyBoardDevices.py" line="349" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="366" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="402" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="392" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="409" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="424" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="438" />
       <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/PyBoardDevices.py" line="456" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="465" />
       <source>unknown</source>
       <translation type="unfinished">bilinmeyen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="462" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="471" />
       <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/PyBoardDevices.py" line="470" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="479" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="474" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="483" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67437,13 +67495,18 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="66" />
+      <location filename="../MicroPython/RP2040Devices.py" line="69" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="184" />
-      <location filename="../MicroPython/RP2040Devices.py" line="129" />
+      <location filename="../MicroPython/RP2040Devices.py" line="125" />
+      <source>RP2040 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/RP2040Devices.py" line="197" />
+      <location filename="../MicroPython/RP2040Devices.py" line="128" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
@@ -67458,52 +67521,52 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="185" />
+      <location filename="../MicroPython/RP2040Devices.py" line="198" />
       <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/RP2040Devices.py" line="222" />
+      <location filename="../MicroPython/RP2040Devices.py" line="230" />
       <source>unknown</source>
       <translation type="unfinished">bilinmeyen</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="228" />
+      <location filename="../MicroPython/RP2040Devices.py" line="236" />
       <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/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/RP2040Devices.py" line="245" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/RP2040Devices.py" line="254" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="250" />
+      <location filename="../MicroPython/RP2040Devices.py" line="258" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="273" />
+      <location filename="../MicroPython/RP2040Devices.py" line="281" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="277" />
+      <location filename="../MicroPython/RP2040Devices.py" line="285" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="280" />
+      <location filename="../MicroPython/RP2040Devices.py" line="288" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="284" />
+      <location filename="../MicroPython/RP2040Devices.py" line="292" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
--- a/src/eric7/i18n/eric7_zh_CN.ts	Sat Feb 11 19:53:53 2023 +0100
+++ b/src/eric7/i18n/eric7_zh_CN.ts	Sun Feb 12 15:14:28 2023 +0100
@@ -3810,95 +3810,100 @@
   <context>
     <name>CircuitPythonDevice</name>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="90" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="92" />
       <source>CircuitPython</source>
       <translation>CircuitPython</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="216" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="218" />
       <source>Workspace Directory</source>
       <translation>工作空间目录</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="217" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="219" />
       <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/CircuitPythonDevices.py" line="252" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="249" />
       <source>Library Management</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="257" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="253" />
+      <source>CircuitPython Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="256" />
       <source>Show CircuitPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="324" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="337" />
       <location filename="../MicroPython/CircuitPythonDevices.py" line="260" />
       <source>Flash CircuitPython Firmware</source>
       <translation>刷新 CircuitPython 固件</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="404" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="277" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="417" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="290" />
       <source>Install Library Files</source>
       <translation>安装库文件</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="402" />
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="281" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="415" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="294" />
       <source>Install Library Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="287" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="300" />
       <source>Install 'circup' Package</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="325" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="338" />
       <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/CircuitPythonDevices.py" line="357" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="370" />
       <source>unknown</source>
       <translation type="unfinished">未知</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="376" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="389" />
       <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/CircuitPythonDevices.py" line="384" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="397" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="388" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="401" />
       <source>CircuitPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="410" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="423" />
       <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/CircuitPythonDevices.py" line="438" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="451" />
       <source>Compiled Python Files (*.mpy);;Python Files (*.py);;All Files (*)</source>
       <translation>编译 Python 文件 (*.mpy);;Python 文件 (*.py);;所有文件 (*)</translation>
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="468" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="481" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/CircuitPythonDevices.py" line="472" />
+      <location filename="../MicroPython/CircuitPythonDevices.py" line="485" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>
@@ -20018,61 +20023,66 @@
   <context>
     <name>EspDevice</name>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="69" />
+      <location filename="../MicroPython/EspDevices.py" line="71" />
       <source>ESP8266, ESP32</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="377" />
-      <location filename="../MicroPython/EspDevices.py" line="132" />
+      <location filename="../MicroPython/EspDevices.py" line="127" />
+      <source>ESP32 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="400" />
+      <location filename="../MicroPython/EspDevices.py" line="130" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="198" />
-      <location filename="../MicroPython/EspDevices.py" line="184" />
+      <location filename="../MicroPython/EspDevices.py" line="220" />
+      <location filename="../MicroPython/EspDevices.py" line="206" />
       <location filename="../MicroPython/EspDevices.py" line="134" />
       <source>Erase Flash</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="235" />
-      <location filename="../MicroPython/EspDevices.py" line="138" />
+      <location filename="../MicroPython/EspDevices.py" line="257" />
+      <location filename="../MicroPython/EspDevices.py" line="137" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="272" />
-      <location filename="../MicroPython/EspDevices.py" line="142" />
+      <location filename="../MicroPython/EspDevices.py" line="294" />
+      <location filename="../MicroPython/EspDevices.py" line="141" />
       <source>Flash Additional Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="306" />
+      <location filename="../MicroPython/EspDevices.py" line="328" />
       <location filename="../MicroPython/EspDevices.py" line="145" />
       <source>Backup Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="357" />
+      <location filename="../MicroPython/EspDevices.py" line="379" />
       <location filename="../MicroPython/EspDevices.py" line="148" />
       <source>Restore Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <location filename="../MicroPython/EspDevices.py" line="152" />
       <source>Show Chip ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <location filename="../MicroPython/EspDevices.py" line="155" />
       <source>Show Flash ID</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <location filename="../MicroPython/EspDevices.py" line="158" />
       <source>Show MAC Address</source>
       <translation type="unfinished" />
@@ -20083,69 +20093,69 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="166" />
+      <location filename="../MicroPython/EspDevices.py" line="165" />
       <source>Install 'esptool.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="185" />
+      <location filename="../MicroPython/EspDevices.py" line="207" />
       <source>Shall the flash of the selected device really be erased?</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="197" />
+      <location filename="../MicroPython/EspDevices.py" line="219" />
       <source>'esptool erase_flash' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="356" />
-      <location filename="../MicroPython/EspDevices.py" line="271" />
-      <location filename="../MicroPython/EspDevices.py" line="234" />
-      <source>'esptool write_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="305" />
-      <source>'esptool read_flash' Output</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
       <location filename="../MicroPython/EspDevices.py" line="378" />
-      <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/EspDevices.py" line="410" />
+      <location filename="../MicroPython/EspDevices.py" line="293" />
+      <location filename="../MicroPython/EspDevices.py" line="256" />
+      <source>'esptool write_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="327" />
+      <source>'esptool read_flash' Output</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="401" />
+      <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/EspDevices.py" line="429" />
       <source>unknown</source>
       <translation type="unfinished">未知</translation>
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="416" />
-      <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/EspDevices.py" line="424" />
+      <location filename="../MicroPython/EspDevices.py" line="440" />
+      <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/EspDevices.py" line="448" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="428" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspDevices.py" line="446" />
+      <location filename="../MicroPython/EspDevices.py" line="452" />
+      <source>{0} Version</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/EspDevices.py" line="470" />
       <source>'esptool chip_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="466" />
+      <location filename="../MicroPython/EspDevices.py" line="490" />
       <source>'esptool flash_id' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/EspDevices.py" line="486" />
+      <location filename="../MicroPython/EspDevices.py" line="510" />
       <source>'esptool read_mac' Output</source>
       <translation type="unfinished" />
     </message>
@@ -20164,46 +20174,11 @@
     </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>Select the ESP chip type</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/EspFirmwareSelectionDialog.ui" line="0" />
-      <source>Firmware:</source>
-      <translation type="unfinished">固件:</translation>
-    </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>Baud Rate:</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>Flash Mode:</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>Leave empty to use the default mode.</source>
       <translation type="unfinished" />
     </message>
@@ -20217,6 +20192,51 @@
       <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">固件:</translation>
+    </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>
   </context>
   <context>
     <name>ExceptionLogger</name>
@@ -48993,53 +49013,63 @@
   <context>
     <name>MicroPythonDevice</name>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="269" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="271" />
       <source>RP2040 based</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="276" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="278" />
       <source>Generic Board</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="404" />
-      <location filename="../MicroPython/MicroPythonDevices.py" line="393" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="408" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="397" />
       <source>Unknown Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="527" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="549" />
+      <source>Show MicroPython Versions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonDevices.py" line="550" />
+      <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/MicroPythonDevices.py" line="582" />
       <source>Unsupported Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="537" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="592" />
       <source>REPL is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="556" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="611" />
       <source>Plotter is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="575" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="630" />
       <source>Running scripts is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="594" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="649" />
       <source>File Manager is not supported by this device.</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="639" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="694" />
       <source>Select Device Directory</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonDevices.py" line="640" />
+      <location filename="../MicroPython/MicroPythonDevices.py" line="695" />
       <source>Select the directory for the connected device:</source>
       <translation type="unfinished" />
     </message>
@@ -49680,35 +49710,35 @@
   <context>
     <name>MicroPythonWidget</name>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="229" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="230" />
       <source>MicroPython Menu</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="287" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="290" />
       <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="328" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="331" />
       <source>%n supported device(s) detected.</source>
       <translation type="unfinished">
         <numerusform />
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="341" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="345" />
       <source>{0} - {1} ({2})</source>
       <comment>board name, description, port name</comment>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="358" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="365" />
       <source>No supported devices detected.</source>
       <translation type="unfinished" />
     </message>
     <message numerus="yes">
-      <location filename="../MicroPython/MicroPythonWidget.py" line="362" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
       <source>
 %n unknown device(s) for manual selection.</source>
       <translation type="unfinished">
@@ -49716,70 +49746,70 @@
       </translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="369" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="376" />
       <source>Manual Selection</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="431" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="402" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="439" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="410" />
       <source>Unknown MicroPython Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="403" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="411" />
       <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="415" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="423" />
       <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="432" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="440" />
       <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="561" />
-      <source>Clear</source>
-      <translation type="unfinished">清除</translation>
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="566" />
-      <source>Copy</source>
-      <translation type="unfinished">复制</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="572" />
+      <source>Clear</source>
+      <translation type="unfinished">清除</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="577" />
+      <source>Copy</source>
+      <translation type="unfinished">复制</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="583" />
       <source>Paste</source>
       <translation type="unfinished">粘贴</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="579" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="590" />
       <source>Select All</source>
       <translation type="unfinished">全选</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="605" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="616" />
       <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="610" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="621" />
       <source>Press to connect the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="637" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="648" />
       <source>No device attached</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="638" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="649" />
       <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.
@@ -49788,321 +49818,328 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="667" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="678" />
       <source>Start REPL</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="668" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="679" />
       <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="1151" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1140" />
-      <source>Serial Device Connect</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1141" />
-      <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="1152" />
-      <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="1202" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1193" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1184" />
-      <source>Run Script</source>
-      <translation type="unfinished">运行脚本</translation>
-    </message>
-    <message>
       <location filename="../MicroPython/MicroPythonWidget.py" line="1185" />
-      <source>There is no editor open. Abort...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1194" />
-      <source>The current editor does not contain a script. Abort...</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1203" />
-      <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="1174" />
+      <source>Serial Device Connect</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1175" />
+      <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" />
+      <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" />
+      <source>Run Script</source>
+      <translation type="unfinished">运行脚本</translation>
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1220" />
+      <source>There is no editor open. Abort...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1229" />
+      <source>The current editor does not contain a script. Abort...</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1238" />
+      <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="1230" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1265" />
       <source>Python3 Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1274" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1309" />
       <source>Start Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1275" />
+      <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="1290" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1325" />
       <source>µPy Chart</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1307" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1342" />
       <source>Unsaved Chart Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1308" />
+      <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="1356" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1391" />
       <source>Start File Manager</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1357" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1392" />
       <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="1376" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1411" />
       <source>µPy Files</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1412" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1447" />
       <source>Downloads</source>
       <translation type="unfinished">下载</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1427" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
       <source>Show Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1431" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1465" />
       <source>Show Implementation</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1435" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1468" />
       <source>Show Board Data</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1592" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1441" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1625" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1473" />
       <source>Synchronize Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1445" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1476" />
       <source>Show Device Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1448" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1478" />
       <source>Show Local Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1451" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1481" />
       <source>Show Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1456" />
-      <source>Show Builtin Modules</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1816" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1462" />
-      <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="1466" />
-      <source>Compile Current Editor</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1477" />
-      <source>Download Firmware</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" />
+      <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>
+      <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="1490" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1515" />
       <source>Flash UF2 Device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1493" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1518" />
       <source>Manage Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1496" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1521" />
       <source>Ignored Serial Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1499" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1524" />
       <source>Configure</source>
       <translation type="unfinished">配置</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1509" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1533" />
       <source>&lt;h3&gt;Device Version Information&lt;/h3&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1517" />
-      <source>No version information available.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1519" />
-      <source>Device Version Information</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1539" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1535" />
-      <source>unknown</source>
-      <translation type="unfinished">未知</translation>
-    </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="1551" />
+      <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="1552" />
+      <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="1593" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1586" />
+      <source>No device implementation information available.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1626" />
       <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="1615" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1648" />
       <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="1623" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1656" />
       <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="1639" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1672" />
       <source>Device Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1651" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1684" />
       <source>Local Date and Time</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1652" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1685" />
       <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="1693" />
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1676" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1726" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1709" />
       <source>Date and Time</source>
       <translation type="unfinished">日期和时间</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1677" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1710" />
       <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="1694" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1727" />
       <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="1718" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1751" />
       <source>Error handling device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1719" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1752" />
       <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="1761" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1794" />
       <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="1787" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1820" />
       <source>Python Files (*.py);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1797" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1830" />
       <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="1806" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1839" />
       <source>'mpy-cross' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1832" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1865" />
       <source>The current editor does not contain a Python file. Aborting...</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1924" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1957" />
       <source>Add Unknown Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1925" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1958" />
       <source>Select the devices to be added:</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicroPythonWidget.py" line="1966" />
+      <location filename="../MicroPython/MicroPythonWidget.py" line="1999" />
       <source>Plus any modules on the filesystem.</source>
       <translation type="unfinished" />
     </message>
@@ -50145,178 +50182,194 @@
   <context>
     <name>MicrobitDevice</name>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="73" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="83" />
       <source>BBC micro:bit</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="76" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="86" />
       <source>Calliope mini</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="338" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="328" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="311" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="150" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="187" />
+      <source>BBC micro:bit/Calliope Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="400" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="388" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="190" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="153" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="194" />
       <source>Flash MicroPython</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="156" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="197" />
       <source>Flash Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="418" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="159" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="488" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="201" />
       <source>Save Script</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="160" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="204" />
       <source>Save the current script to the selected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="162" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="207" />
       <source>Save Script as 'main.py'</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="164" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="210" />
       <source>Save the current script as 'main.py' on the connected device</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="169" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="214" />
       <source>Reset {0}</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="290" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="354" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="345" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="331" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="314" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="301" />
       <location filename="../MicroPython/MicrobitDevices.py" line="281" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="267" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="250" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="237" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="217" />
       <source>Flash MicroPython/Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="218" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="282" />
       <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/MicrobitDevices.py" line="238" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="302" />
       <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/MicrobitDevices.py" line="251" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="315" />
       <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/MicrobitDevices.py" line="268" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="332" />
       <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/MicrobitDevices.py" line="283" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="347" />
       <source>MicroPython/Firmware Files (*.hex *.bin);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="291" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="355" />
       <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/MicrobitDevices.py" line="312" />
-      <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/MicrobitDevices.py" line="329" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="372" />
+      <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/MicrobitDevices.py" line="389" />
       <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/MicrobitDevices.py" line="339" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="401" />
       <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/MicrobitDevices.py" line="371" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="428" />
       <source>unknown</source>
       <translation type="unfinished">未知</translation>
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="377" />
-      <source>&lt;h4&gt;MicroPython Version Information&lt;br/&gt;(BBC micro:bit v{2})&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/MicrobitDevices.py" line="386" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="444" />
+      <source>Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="447" />
+      <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/MicrobitDevices.py" line="456" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="390" />
-      <source>MicroPython Version</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="452" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="416" />
-      <source>Save Script as '{0}'</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="425" />
-      <source>The current editor does not contain a Python script. Write it anyway?</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="436" />
-      <source>The script is empty. Aborting.</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="445" />
-      <source>Enter a file name on the device:</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="466" />
-      <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>
+      <location filename="../MicroPython/MicrobitDevices.py" line="460" />
+      <source>{0} Version</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/MicrobitDevices.py" line="522" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="486" />
+      <source>Save Script as '{0}'</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="495" />
+      <source>The current editor does not contain a Python script. Write it anyway?</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="506" />
+      <source>The script is empty. Aborting.</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="515" />
+      <source>Enter a file name on the device:</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="536" />
+      <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/MicrobitDevices.py" line="596" />
       <source>MicroPython Firmware for BBC micro:bit V1</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="526" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="628" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="615" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="600" />
+      <source>DAPLink Firmware</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="607" />
       <source>MicroPython Firmware for BBC micro:bit V2</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="541" />
-      <location filename="../MicroPython/MicrobitDevices.py" line="530" />
-      <source>DAPLink Firmware</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/MicrobitDevices.py" line="537" />
+      <location filename="../MicroPython/MicrobitDevices.py" line="611" />
+      <source>CircuitPython Firmware for BBC micro:bit V2</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/MicrobitDevices.py" line="624" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
@@ -62341,39 +62394,44 @@
   <context>
     <name>PyBoardDevice</name>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="80" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="83" />
       <source>PyBoard</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="195" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="198" />
       <source>Workspace Directory</source>
       <translation type="unfinished">工作空间目录</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="196" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="199" />
       <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/PyBoardDevices.py" line="235" />
-      <source>Activate Bootloader</source>
+      <location filename="../MicroPython/PyBoardDevices.py" line="231" />
+      <source>PyBoard Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="437" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="234" />
+      <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
     <message>
       <location filename="../MicroPython/PyBoardDevices.py" line="238" />
+      <source>Activate Bootloader</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/PyBoardDevices.py" line="241" />
       <source>List DFU-capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="423" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="242" />
-      <source>Show MicroPython Versions</source>
-      <translation type="unfinished" />
-    </message>
-    <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="403" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="390" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="420" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="407" />
       <location filename="../MicroPython/PyBoardDevices.py" line="245" />
       <source>Flash MicroPython Firmware</source>
       <translation type="unfinished" />
@@ -62384,83 +62442,83 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="290" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="307" />
       <source>dfu-util not available</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="291" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="308" />
       <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/PyBoardDevices.py" line="311" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="328" />
       <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/PyBoardDevices.py" line="321" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="338" />
       <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/PyBoardDevices.py" line="327" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="344" />
       <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/PyBoardDevices.py" line="330" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="347" />
       <source>Enable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="341" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="358" />
       <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/PyBoardDevices.py" line="349" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="366" />
       <source>Disable DFU mode</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="402" />
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="419" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>'dfu-util' Output</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="367" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="384" />
       <source>List DFU capable Devices</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="392" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="409" />
       <source>MicroPython Firmware Files (*.dfu);;All Files (*)</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="424" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="438" />
       <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/PyBoardDevices.py" line="456" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="465" />
       <source>unknown</source>
       <translation type="unfinished">未知</translation>
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="462" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="471" />
       <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/PyBoardDevices.py" line="470" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="479" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/PyBoardDevices.py" line="474" />
+      <location filename="../MicroPython/PyBoardDevices.py" line="483" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
@@ -67608,13 +67666,18 @@
   <context>
     <name>RP2040Device</name>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="66" />
+      <location filename="../MicroPython/RP2040Devices.py" line="69" />
       <source>RP2040</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="184" />
-      <location filename="../MicroPython/RP2040Devices.py" line="129" />
+      <location filename="../MicroPython/RP2040Devices.py" line="125" />
+      <source>RP2040 Functions</source>
+      <translation type="unfinished" />
+    </message>
+    <message>
+      <location filename="../MicroPython/RP2040Devices.py" line="197" />
+      <location filename="../MicroPython/RP2040Devices.py" line="128" />
       <source>Show MicroPython Versions</source>
       <translation type="unfinished" />
     </message>
@@ -67629,52 +67692,52 @@
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="185" />
+      <location filename="../MicroPython/RP2040Devices.py" line="198" />
       <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/RP2040Devices.py" line="222" />
+      <location filename="../MicroPython/RP2040Devices.py" line="230" />
       <source>unknown</source>
       <translation type="unfinished">未知</translation>
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="228" />
+      <location filename="../MicroPython/RP2040Devices.py" line="236" />
       <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/RP2040Devices.py" line="237" />
+      <location filename="../MicroPython/RP2040Devices.py" line="245" />
       <source>({0})</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="246" />
+      <location filename="../MicroPython/RP2040Devices.py" line="254" />
       <source>&lt;p&gt;&lt;b&gt;Update available!&lt;/b&gt;&lt;/p&gt;</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="250" />
+      <location filename="../MicroPython/RP2040Devices.py" line="258" />
       <source>MicroPython Version</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="273" />
+      <location filename="../MicroPython/RP2040Devices.py" line="281" />
       <source>MicroPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="277" />
+      <location filename="../MicroPython/RP2040Devices.py" line="285" />
       <source>Pimoroni Pico Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="280" />
+      <location filename="../MicroPython/RP2040Devices.py" line="288" />
       <source>CircuitPython Firmware</source>
       <translation type="unfinished" />
     </message>
     <message>
-      <location filename="../MicroPython/RP2040Devices.py" line="284" />
+      <location filename="../MicroPython/RP2040Devices.py" line="292" />
       <source>CircuitPython Libraries</source>
       <translation type="unfinished" />
     </message>

eric ide

mercurial