Quellcode durchsuchen

Bump esptool-js from 0.5.3 to 0.5.4 (#556)

* Bump esptool-js from 0.5.3 to 0.5.4

Bumps [esptool-js](https://github.com/espressif/esptool-js) from 0.5.3 to 0.5.4.
- [Release notes](https://github.com/espressif/esptool-js/releases)
- [Commits](https://github.com/espressif/esptool-js/compare/v0.5.3...v0.5.4)

---
updated-dependencies:
- dependency-name: esptool-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* hard reset

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
dependabot[bot] vor 2 Monaten
Ursprung
Commit
dedf3ef1f7
3 geänderte Dateien mit 31 neuen und 11 gelöschten Zeilen
  1. 7 6
      package-lock.json
  2. 7 5
      src/flash.ts
  3. 17 0
      src/util/reset.ts

+ 7 - 6
package-lock.json

@@ -3857,9 +3857,10 @@
       }
     },
     "node_modules/esptool-js": {
-      "version": "0.5.3",
-      "resolved": "https://registry.npmjs.org/esptool-js/-/esptool-js-0.5.3.tgz",
-      "integrity": "sha512-RAzlZ3+o2a5h+1EZ/ItNEkj4hhBuUtX/BFGiEh7OyF4pSxTIBsBu0oWE2o7THQ+oUgd+bn682SPQQr8Fl2LMDw==",
+      "version": "0.5.4",
+      "resolved": "https://registry.npmjs.org/esptool-js/-/esptool-js-0.5.4.tgz",
+      "integrity": "sha512-B+XcbbPBjfmnMHVGktGlNI85BbEIQs02y4hoYuqM25q6yVPqLE3bxce/KWtKXH4IGruWTkEujqdKxNeWEV2BDg==",
+      "license": "Apache-2.0",
       "dependencies": {
         "atob-lite": "^2.0.0",
         "pako": "^2.1.0",
@@ -7942,9 +7943,9 @@
       "dev": true
     },
     "esptool-js": {
-      "version": "0.5.3",
-      "resolved": "https://registry.npmjs.org/esptool-js/-/esptool-js-0.5.3.tgz",
-      "integrity": "sha512-RAzlZ3+o2a5h+1EZ/ItNEkj4hhBuUtX/BFGiEh7OyF4pSxTIBsBu0oWE2o7THQ+oUgd+bn682SPQQr8Fl2LMDw==",
+      "version": "0.5.4",
+      "resolved": "https://registry.npmjs.org/esptool-js/-/esptool-js-0.5.4.tgz",
+      "integrity": "sha512-B+XcbbPBjfmnMHVGktGlNI85BbEIQs02y4hoYuqM25q6yVPqLE3bxce/KWtKXH4IGruWTkEujqdKxNeWEV2BDg==",
       "requires": {
         "atob-lite": "^2.0.0",
         "pako": "^2.1.0",

+ 7 - 5
src/flash.ts

@@ -6,6 +6,7 @@ import {
   Manifest,
   FlashStateType,
 } from "./const";
+import { hardReset } from "./util/reset";
 
 export const flash = async (
   onEvent: (state: FlashState) => void,
@@ -53,7 +54,8 @@ export const flash = async (
         "Failed to initialize. Try resetting your device or holding the BOOT button while clicking INSTALL.",
       details: { error: FlashError.FAILED_INITIALIZING, details: err },
     });
-    await esploader.hardReset();
+
+    await hardReset(transport);
     await transport.disconnect();
     return;
   }
@@ -74,7 +76,7 @@ export const flash = async (
       message: `Your ${chipFamily} board is not supported.`,
       details: { error: FlashError.NOT_SUPPORTED, details: chipFamily },
     });
-    await esploader.hardReset();
+    await hardReset(transport);
     await transport.disconnect();
     return;
   }
@@ -121,7 +123,7 @@ export const flash = async (
           details: err.message,
         },
       });
-      await esploader.hardReset();
+      await hardReset(transport);
       await transport.disconnect();
       return;
     }
@@ -199,7 +201,7 @@ export const flash = async (
       message: err.message,
       details: { error: FlashError.WRITE_FAILED, details: err },
     });
-    await esploader.hardReset();
+    await hardReset(transport);
     await transport.disconnect();
     return;
   }
@@ -214,7 +216,7 @@ export const flash = async (
     },
   });
 
-  await esploader.hardReset();
+  await hardReset(transport);
 
   console.log("DISCONNECT");
   await transport.disconnect();

+ 17 - 0
src/util/reset.ts

@@ -0,0 +1,17 @@
+import { Transport } from "esptool-js";
+import { sleep } from "./sleep";
+
+export const hardReset = async (transport: Transport) => {
+  console.log("Triggering reset");
+  await transport.device.setSignals({
+    dataTerminalReady: false,
+    requestToSend: true,
+  });
+  await sleep(250);
+  await transport.device.setSignals({
+    dataTerminalReady: false,
+    requestToSend: false,
+  });
+  await sleep(250);
+  await new Promise((resolve) => setTimeout(resolve, 1000));
+};