src/eric7/MicroPython/Devices/CircuitPythonDevices.py

branch
eric7
changeset 9902
a3136eb28587
parent 9898
5bfb3c70e30b
child 9929
4a81ccaa7c7f
--- a/src/eric7/MicroPython/Devices/CircuitPythonDevices.py	Wed Mar 15 16:13:05 2023 +0100
+++ b/src/eric7/MicroPython/Devices/CircuitPythonDevices.py	Wed Mar 15 16:13:35 2023 +0100
@@ -346,6 +346,9 @@
         self.__bootloaderAct = self.__cpyMenu.addAction(
             self.tr("Activate Bootloader"), self.__activateBootloader
         )
+        self.__uf2Act = self.__cpyMenu.addAction(
+            self.tr("Activate UF2 Mode"), self.__activateUF2Boot
+        )
         self.__flashCpyAct = self.__cpyMenu.addMenu(self.__flashMenu)
         self.__cpyMenu.addSeparator()
         self.__cpyMenu.addMenu(self.__libraryMenu)
@@ -409,6 +412,7 @@
         self.__flashCpyAct.setEnabled(not linkConnected)
         self.__resetAct.setEnabled(connected)
         self.__bootloaderAct.setEnabled(connected)
+        self.__uf2Act.setEnabled(connected)
 
         menu.addMenu(self.__cpyMenu)
 
@@ -481,6 +485,19 @@
             )
 
     @pyqtSlot()
+    def __activateUF2Boot(self):
+        """
+        Private slot to switch the board into 'UF2 Boot' mode.
+        """
+        if self.microPython.isConnected():
+            self.microPython.deviceInterface().execute(
+                "import microcontroller as mc\n"
+                "mc.on_next_reset(mc.RunMode.UF2)\n"
+                "mc.reset()\n",
+                mode=self._submitMode,
+            )
+
+    @pyqtSlot()
     def __showTeensyFlashInstructions(self):
         """
         Private slot to show a message box because Teensy does not support

eric ide

mercurial