diff --git a/tools/pycard10.py b/tools/pycard10.py
index 820925d1eb8a8568c8795c4182ff3f8d4e73a389..a0ce74190e58efef07ac94e4858166cef845d350 100755
--- a/tools/pycard10.py
+++ b/tools/pycard10.py
@@ -129,6 +129,9 @@ class PyCard10(Pyboard):
         Returns:
         None
         """
+
+        self.soft_reset()
+
         self.serial.write(b"\x03\x03")  # ctrl-C twice: interrupt any running program
 
         # flush input (without relying on serial.flushInput())
@@ -169,10 +172,12 @@ class PyCard10(Pyboard):
 
         self.serial.write(b"\x03\x03")  # ctrl-C twice: interrupt any running program
 
-        self.serial.write(b"\x01")  # ctrl-B: ensue it's the normal mode
+        self.serial.write(b"\x02")  # ctrl-B: ensue it's the normal mode
 
         self.serial.write(b"\x04")  # ctrl-D: do the reset
 
+        time.sleep(1)  # Give epicardium some time to cycle pycardium
+
         n = self.serial.inWaiting()
         while n > 0:
             self.serial.read(n)