esp32tool 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +31 -0
  2. package/css/dark.css +156 -0
  3. package/css/light.css +156 -0
  4. package/css/style.css +870 -0
  5. package/dist/const.d.ts +277 -0
  6. package/dist/const.js +511 -0
  7. package/dist/esp_loader.d.ts +222 -0
  8. package/dist/esp_loader.js +1466 -0
  9. package/dist/index.d.ts +10 -0
  10. package/dist/index.js +15 -0
  11. package/dist/lib/spiffs/index.d.ts +15 -0
  12. package/dist/lib/spiffs/index.js +16 -0
  13. package/dist/lib/spiffs/spiffs.d.ts +26 -0
  14. package/dist/lib/spiffs/spiffs.js +132 -0
  15. package/dist/lib/spiffs/spiffsBlock.d.ts +36 -0
  16. package/dist/lib/spiffs/spiffsBlock.js +140 -0
  17. package/dist/lib/spiffs/spiffsConfig.d.ts +63 -0
  18. package/dist/lib/spiffs/spiffsConfig.js +79 -0
  19. package/dist/lib/spiffs/spiffsPage.d.ts +45 -0
  20. package/dist/lib/spiffs/spiffsPage.js +260 -0
  21. package/dist/lib/spiffs/spiffsReader.d.ts +19 -0
  22. package/dist/lib/spiffs/spiffsReader.js +192 -0
  23. package/dist/partition.d.ts +26 -0
  24. package/dist/partition.js +129 -0
  25. package/dist/struct.d.ts +2 -0
  26. package/dist/struct.js +91 -0
  27. package/dist/stubs/esp32.json +8 -0
  28. package/dist/stubs/esp32c2.json +8 -0
  29. package/dist/stubs/esp32c3.json +8 -0
  30. package/dist/stubs/esp32c5.json +8 -0
  31. package/dist/stubs/esp32c6.json +8 -0
  32. package/dist/stubs/esp32c61.json +8 -0
  33. package/dist/stubs/esp32h2.json +8 -0
  34. package/dist/stubs/esp32p4.json +8 -0
  35. package/dist/stubs/esp32p4r3.json +8 -0
  36. package/dist/stubs/esp32s2.json +8 -0
  37. package/dist/stubs/esp32s3.json +8 -0
  38. package/dist/stubs/esp8266.json +8 -0
  39. package/dist/stubs/index.d.ts +10 -0
  40. package/dist/stubs/index.js +56 -0
  41. package/dist/util.d.ts +14 -0
  42. package/dist/util.js +46 -0
  43. package/dist/wasm/filesystems.d.ts +33 -0
  44. package/dist/wasm/filesystems.js +114 -0
  45. package/dist/web/esp32-D955RjN9.js +16 -0
  46. package/dist/web/esp32c2-CJkxHDQi.js +16 -0
  47. package/dist/web/esp32c3-BhUHzH0o.js +16 -0
  48. package/dist/web/esp32c5-Chs0HtmA.js +16 -0
  49. package/dist/web/esp32c6-D6mPN6ut.js +16 -0
  50. package/dist/web/esp32c61-CQiYCWAs.js +16 -0
  51. package/dist/web/esp32h2-LsKJE9AS.js +16 -0
  52. package/dist/web/esp32p4-7nWC-HiD.js +16 -0
  53. package/dist/web/esp32p4r3-CwiPecZW.js +16 -0
  54. package/dist/web/esp32s2-CtqVheSJ.js +16 -0
  55. package/dist/web/esp32s3-CRbtB0QR.js +16 -0
  56. package/dist/web/esp8266-nEkNAo8K.js +16 -0
  57. package/dist/web/index.js +7265 -0
  58. package/electron/main.js +333 -0
  59. package/electron/preload.js +37 -0
  60. package/eslint.config.js +22 -0
  61. package/index.html +408 -0
  62. package/js/modules/esp32-D955RjN9.js +16 -0
  63. package/js/modules/esp32c2-CJkxHDQi.js +16 -0
  64. package/js/modules/esp32c3-BhUHzH0o.js +16 -0
  65. package/js/modules/esp32c5-Chs0HtmA.js +16 -0
  66. package/js/modules/esp32c6-D6mPN6ut.js +16 -0
  67. package/js/modules/esp32c61-CQiYCWAs.js +16 -0
  68. package/js/modules/esp32h2-LsKJE9AS.js +16 -0
  69. package/js/modules/esp32p4-7nWC-HiD.js +16 -0
  70. package/js/modules/esp32p4r3-CwiPecZW.js +16 -0
  71. package/js/modules/esp32s2-CtqVheSJ.js +16 -0
  72. package/js/modules/esp32s3-CRbtB0QR.js +16 -0
  73. package/js/modules/esp8266-nEkNAo8K.js +16 -0
  74. package/js/modules/esptool.js +7265 -0
  75. package/js/script.js +2237 -0
  76. package/js/utilities.js +182 -0
  77. package/license.md +11 -0
  78. package/package.json +61 -0
  79. package/script/build +12 -0
  80. package/script/develop +17 -0
  81. package/src/const.ts +599 -0
  82. package/src/esp_loader.ts +1907 -0
  83. package/src/index.ts +63 -0
  84. package/src/lib/spiffs/index.ts +22 -0
  85. package/src/lib/spiffs/spiffs.ts +175 -0
  86. package/src/lib/spiffs/spiffsBlock.ts +204 -0
  87. package/src/lib/spiffs/spiffsConfig.ts +140 -0
  88. package/src/lib/spiffs/spiffsPage.ts +357 -0
  89. package/src/lib/spiffs/spiffsReader.ts +280 -0
  90. package/src/partition.ts +155 -0
  91. package/src/struct.ts +108 -0
  92. package/src/stubs/README.md +3 -0
  93. package/src/stubs/esp32.json +8 -0
  94. package/src/stubs/esp32c2.json +8 -0
  95. package/src/stubs/esp32c3.json +8 -0
  96. package/src/stubs/esp32c5.json +8 -0
  97. package/src/stubs/esp32c6.json +8 -0
  98. package/src/stubs/esp32c61.json +8 -0
  99. package/src/stubs/esp32h2.json +8 -0
  100. package/src/stubs/esp32p4.json +8 -0
  101. package/src/stubs/esp32p4r3.json +8 -0
  102. package/src/stubs/esp32s2.json +8 -0
  103. package/src/stubs/esp32s3.json +8 -0
  104. package/src/stubs/esp8266.json +8 -0
  105. package/src/stubs/index.ts +86 -0
  106. package/src/util.ts +49 -0
  107. package/src/wasm/fatfs/fatfs.wasm +0 -0
  108. package/src/wasm/fatfs/index.d.ts +26 -0
  109. package/src/wasm/fatfs/index.js +343 -0
  110. package/src/wasm/filesystems.ts +156 -0
  111. package/src/wasm/littlefs/index.d.ts +83 -0
  112. package/src/wasm/littlefs/index.js +529 -0
  113. package/src/wasm/littlefs/littlefs.js +2 -0
  114. package/src/wasm/littlefs/littlefs.wasm +0 -0
  115. package/src/wasm/shared/types.ts +13 -0
@@ -0,0 +1,222 @@
1
+ import { Logger, ChipFamily, SpiFlashAddresses } from "./const";
2
+ export declare class ESPLoader extends EventTarget {
3
+ port: SerialPort;
4
+ logger: Logger;
5
+ private _parent?;
6
+ chipFamily: ChipFamily;
7
+ chipName: string | null;
8
+ chipRevision: number | null;
9
+ chipVariant: string | null;
10
+ _efuses: any[];
11
+ _flashsize: number;
12
+ debug: boolean;
13
+ IS_STUB: boolean;
14
+ connected: boolean;
15
+ flashSize: string | null;
16
+ __inputBuffer?: number[];
17
+ __totalBytesRead?: number;
18
+ private _currentBaudRate;
19
+ private _maxUSBSerialBaudrate?;
20
+ private _reader?;
21
+ private _isESP32S2NativeUSB;
22
+ private _initializationSucceeded;
23
+ constructor(port: SerialPort, logger: Logger, _parent?: ESPLoader | undefined);
24
+ private get _inputBuffer();
25
+ private get _totalBytesRead();
26
+ private set _totalBytesRead(value);
27
+ private detectUSBSerialChip;
28
+ initialize(): Promise<void>;
29
+ /**
30
+ * Detect chip type using GET_SECURITY_INFO (for newer chips) or magic value (for older chips)
31
+ */
32
+ detectChip(): Promise<void>;
33
+ /**
34
+ * Get chip revision for ESP32-P4
35
+ */
36
+ getChipRevision(): Promise<number>;
37
+ /**
38
+ * Get security info including chip ID (ESP32-C3 and later)
39
+ */
40
+ getSecurityInfo(): Promise<{
41
+ flags: number;
42
+ flashCryptCnt: number;
43
+ keyPurposes: number[];
44
+ chipId: number;
45
+ apiVersion: number;
46
+ }>;
47
+ /**
48
+ * @name readLoop
49
+ * Reads data from the input stream and places it in the inputBuffer
50
+ */
51
+ readLoop(): Promise<void>;
52
+ sleep(ms?: number): Promise<unknown>;
53
+ state_DTR: boolean;
54
+ setRTS(state: boolean): Promise<void>;
55
+ setDTR(state: boolean): Promise<void>;
56
+ hardReset(bootloader?: boolean): Promise<void>;
57
+ /**
58
+ * @name macAddr
59
+ * The MAC address burned into the OTP memory of the ESP chip
60
+ */
61
+ macAddr(): any[];
62
+ readRegister(reg: number): Promise<number>;
63
+ /**
64
+ * @name checkCommand
65
+ * Send a command packet, check that the command succeeded and
66
+ * return a tuple with the value and data.
67
+ * See the ESP Serial Protocol for more details on what value/data are
68
+ */
69
+ checkCommand(opcode: number, buffer: number[], checksum?: number, timeout?: number): Promise<[number, number[]]>;
70
+ /**
71
+ * @name sendCommand
72
+ * Send a slip-encoded, checksummed command over the UART,
73
+ * does not check response
74
+ */
75
+ sendCommand(opcode: number, buffer: number[], checksum?: number): Promise<void>;
76
+ /**
77
+ * @name readPacket
78
+ * Generator to read SLIP packets from a serial port.
79
+ * Yields one full SLIP packet at a time, raises exception on timeout or invalid data.
80
+ */
81
+ readPacket(timeout: number): Promise<number[]>;
82
+ /**
83
+ * @name getResponse
84
+ * Read response data and decodes the slip packet, then parses
85
+ * out the value/data and returns as a tuple of (value, data) where
86
+ * each is a list of bytes
87
+ */
88
+ getResponse(opcode: number, timeout?: number): Promise<[number, number[]]>;
89
+ /**
90
+ * @name checksum
91
+ * Calculate checksum of a blob, as it is defined by the ROM
92
+ */
93
+ checksum(data: number[], state?: number): number;
94
+ setBaudrate(baud: number): Promise<void>;
95
+ reconfigurePort(baud: number): Promise<void>;
96
+ /**
97
+ * @name sync
98
+ * Put into ROM bootload mode & attempt to synchronize with the
99
+ * ESP ROM bootloader, we will retry a few times
100
+ */
101
+ sync(): Promise<boolean>;
102
+ /**
103
+ * @name _sync
104
+ * Perform a soft-sync using AT sync packets, does not perform
105
+ * any hardware resetting
106
+ */
107
+ _sync(): Promise<boolean>;
108
+ /**
109
+ * @name getFlashWriteSize
110
+ * Get the Flash write size based on the chip
111
+ */
112
+ getFlashWriteSize(): 1024 | 16384;
113
+ /**
114
+ * @name flashData
115
+ * Program a full, uncompressed binary file into SPI Flash at
116
+ * a given offset. If an ESP32 and md5 string is passed in, will also
117
+ * verify memory. ESP8266 does not have checksum memory verification in
118
+ * ROM
119
+ */
120
+ flashData(binaryData: ArrayBuffer, updateProgress: (bytesWritten: number, totalBytes: number) => void, offset?: number, compress?: boolean): Promise<void>;
121
+ /**
122
+ * @name flashBlock
123
+ * Send one block of data to program into SPI Flash memory
124
+ */
125
+ flashBlock(data: number[], seq: number, timeout?: number): Promise<void>;
126
+ flashDeflBlock(data: number[], seq: number, timeout?: number): Promise<void>;
127
+ /**
128
+ * @name flashBegin
129
+ * Prepare for flashing by attaching SPI chip and erasing the
130
+ * number of blocks requred.
131
+ */
132
+ flashBegin(size?: number, offset?: number, encrypted?: boolean): Promise<number>;
133
+ /**
134
+ * @name flashDeflBegin
135
+ *
136
+ */
137
+ flashDeflBegin(size?: number, compressedSize?: number, offset?: number): Promise<number>;
138
+ flashFinish(): Promise<void>;
139
+ flashDeflFinish(): Promise<void>;
140
+ getBootloaderOffset(): number;
141
+ flashId(): Promise<number>;
142
+ getChipFamily(): ChipFamily;
143
+ writeRegister(address: number, value: number, mask?: number, delayUs?: number, delayAfterUs?: number): Promise<void>;
144
+ setDataLengths(spiAddresses: SpiFlashAddresses, mosiBits: number, misoBits: number): Promise<void>;
145
+ waitDone(spiCmdReg: number, spiCmdUsr: number): Promise<void>;
146
+ runSpiFlashCommand(spiflashCommand: number, data: number[], readBits?: number): Promise<number>;
147
+ detectFlashSize(): Promise<void>;
148
+ /**
149
+ * @name getEraseSize
150
+ * Calculate an erase size given a specific size in bytes.
151
+ * Provides a workaround for the bootloader erase bug on ESP8266.
152
+ */
153
+ getEraseSize(offset: number, size: number): number;
154
+ /**
155
+ * @name memBegin (592)
156
+ * Start downloading an application image to RAM
157
+ */
158
+ memBegin(size: number, blocks: number, blocksize: number, offset: number): Promise<[number, number[]]>;
159
+ /**
160
+ * @name memBlock (609)
161
+ * Send a block of an image to RAM
162
+ */
163
+ memBlock(data: number[], seq: number): Promise<[number, number[]]>;
164
+ /**
165
+ * @name memFinish (615)
166
+ * Leave download mode and run the application
167
+ *
168
+ * Sending ESP_MEM_END usually sends a correct response back, however sometimes
169
+ * (with ROM loader) the executed code may reset the UART or change the baud rate
170
+ * before the transmit FIFO is empty. So in these cases we set a short timeout and
171
+ * ignore errors.
172
+ */
173
+ memFinish(entrypoint?: number): Promise<[number, number[]]>;
174
+ runStub(skipFlashDetection?: boolean): Promise<EspStubLoader>;
175
+ writeToStream(data: number[]): Promise<void>;
176
+ disconnect(): Promise<void>;
177
+ /**
178
+ * @name reconnectAndResume
179
+ * Reconnect the serial port to flush browser buffers and reload stub
180
+ */
181
+ reconnect(): Promise<void>;
182
+ /**
183
+ * @name drainInputBuffer
184
+ * Actively drain the input buffer by reading data for a specified time.
185
+ * Simple approach for some drivers (especially CP210x on Windows) that have
186
+ * issues with buffer flushing.
187
+ *
188
+ * Based on esptool.py fix: https://github.com/espressif/esptool/commit/5338ea054e5099ac7be235c54034802ac8a43162
189
+ *
190
+ * @param bufferingTime - Time in milliseconds to wait for the buffer to fill
191
+ */
192
+ private drainInputBuffer;
193
+ /**
194
+ * @name flushSerialBuffers
195
+ * Flush any pending data in the TX and RX serial port buffers
196
+ * This clears both the application RX buffer and waits for hardware buffers to drain
197
+ */
198
+ private flushSerialBuffers;
199
+ /**
200
+ * @name readFlash
201
+ * Read flash memory from the chip (only works with stub loader)
202
+ * @param addr - Address to read from
203
+ * @param size - Number of bytes to read
204
+ * @param onPacketReceived - Optional callback function called when packet is received
205
+ * @returns Uint8Array containing the flash data
206
+ */
207
+ readFlash(addr: number, size: number, onPacketReceived?: (packet: Uint8Array, progress: number, totalSize: number) => void): Promise<Uint8Array>;
208
+ }
209
+ declare class EspStubLoader extends ESPLoader {
210
+ IS_STUB: boolean;
211
+ /**
212
+ * @name memBegin (592)
213
+ * Start downloading an application image to RAM
214
+ */
215
+ memBegin(size: number, _blocks: number, _blocksize: number, offset: number): Promise<[number, number[]]>;
216
+ /**
217
+ * @name getEraseSize
218
+ * depending on flash chip model the erase may take this long (maybe longer!)
219
+ */
220
+ eraseFlash(): Promise<void>;
221
+ }
222
+ export {};