src/eric7/MicroPython/Devices/CircuitPythonDevices.py

branch
eric7
changeset 9898
5bfb3c70e30b
parent 9885
05cbf70e8f10
child 9902
a3136eb28587
diff -r bef51a4fc5c5 -r 5bfb3c70e30b src/eric7/MicroPython/Devices/CircuitPythonDevices.py
--- a/src/eric7/MicroPython/Devices/CircuitPythonDevices.py	Tue Mar 14 16:58:36 2023 +0100
+++ b/src/eric7/MicroPython/Devices/CircuitPythonDevices.py	Wed Mar 15 12:07:57 2023 +0100
@@ -343,6 +343,9 @@
             self.tr("Show CircuitPython Versions"), self.showCircuitPythonVersions
         )
         self.__cpyMenu.addSeparator()
+        self.__bootloaderAct = self.__cpyMenu.addAction(
+            self.tr("Activate Bootloader"), self.__activateBootloader
+        )
         self.__flashCpyAct = self.__cpyMenu.addMenu(self.__flashMenu)
         self.__cpyMenu.addSeparator()
         self.__cpyMenu.addMenu(self.__libraryMenu)
@@ -405,6 +408,7 @@
 
         self.__flashCpyAct.setEnabled(not linkConnected)
         self.__resetAct.setEnabled(connected)
+        self.__bootloaderAct.setEnabled(connected)
 
         menu.addMenu(self.__cpyMenu)
 
@@ -464,6 +468,19 @@
         dlg.exec()
 
     @pyqtSlot()
+    def __activateBootloader(self):
+        """
+        Private slot to switch the board into 'bootloader' mode.
+        """
+        if self.microPython.isConnected():
+            self.microPython.deviceInterface().execute(
+                "import microcontroller as mc\n"
+                "mc.on_next_reset(mc.RunMode.BOOTLOADER)\n"
+                "mc.reset()\n",
+                mode=self._submitMode,
+            )
+
+    @pyqtSlot()
     def __showTeensyFlashInstructions(self):
         """
         Private slot to show a message box because Teensy does not support
@@ -1512,7 +1529,6 @@
                 os.remove(filename)
 
         return True, ""
-        # TODO: not implemented yet
 
     ##################################################################
     ## Methods below implement Bluetooth related methods

eric ide

mercurial