@agentdeck/shared 1.0.23 → 1.0.24

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.
@@ -69,6 +69,12 @@ export interface Esp32BoardSpec {
69
69
  after: Esp32ResetAfter;
70
70
  /** does the flasher stub load on this board? (some envs pin --no-stub) */
71
71
  stub: boolean;
72
+ /**
73
+ * Override for the post-write reset (esptool-js `custom_reset` syntax).
74
+ * Omit to take ESP32_POST_WRITE_RESET_SEQUENCE; set to '' to write nothing.
75
+ * See esp32PostWriteResetSequence().
76
+ */
77
+ postWriteReset?: string;
72
78
  /** native-USB CDC/JTAG: entering download mode RE-ENUMERATES the device node */
73
79
  nativeUsb: boolean;
74
80
  /** has dual-OTA partitions, i.e. `agentdeck esp32-ota` can target it */
@@ -136,6 +142,44 @@ export declare const ESP32_ESPTOOL_CHIP: Record<Esp32ChipFamily, string>;
136
142
  /** Chip ID `esptool image-info` prints, per family — used to self-check a merged image. */
137
143
  export declare const ESP32_IMAGE_CHIP_ID: Record<Esp32ChipFamily, number>;
138
144
  /** Where the partition table lives; also where the bootloader region ends. */
145
+ /**
146
+ * The reset that actually boots a board after a write, as an esptool-js
147
+ * `custom_reset` sequence.
148
+ *
149
+ * WHY THIS EXISTS. esptool-js's `after('hard_reset')` cannot boot these boards.
150
+ * Its non-USB-OTG implementation is, in full, `sleep(100); setRTS(false)` — a
151
+ * RELEASE with no ASSERT. That works only when the preceding step left EN
152
+ * asserted, which `--before default-reset` does and a finished `writeFlash`
153
+ * does not. So the chip is left parked in the flasher stub, the firmware never
154
+ * runs, and the post-write `device_info` read-back can never succeed.
155
+ *
156
+ * Measured 2026-08-23 with a non-destructive probe (connect exactly as the
157
+ * flash does, apply a candidate reset, ask the firmware to identify itself),
158
+ * with a firmware-identity guard so a concurrent write on the same board aborts
159
+ * the run instead of producing a confident wrong answer:
160
+ *
161
+ * sequence t_display_pro (0x303a/0x1001, native USB) 86box (0x1a86/0x7523, CH340)
162
+ * after('hard_reset') PARKED PARKED
163
+ * R1|W250|R0 booted PARKED
164
+ * D0|R1|W100|R0 booted (48s -> 5s) booted (39s -> 3s)
165
+ *
166
+ * `D0` IS LOAD-BEARING, and only one of the two boards shows it. Pulsing EN
167
+ * without first driving IO0 high leaves the CH340 board in download mode —
168
+ * indistinguishable, from the outside, from a board that failed to boot. The
169
+ * two adapter classes take different reset strategies inside esptool-js
170
+ * (UsbJtagSerialReset vs ClassicReset), so a sequence verified on one is not
171
+ * evidence for the other; this one is measured on both.
172
+ *
173
+ * Boards whose `after` is `no_reset` are deliberately excluded: ips_10 asks not
174
+ * to be reset and that is a property of the board, not an oversight.
175
+ */
176
+ export declare const ESP32_POST_WRITE_RESET_SEQUENCE = "D0|R1|W100|R0";
177
+ /**
178
+ * The sequence to run after writing `board`, or undefined when it must not be
179
+ * reset. Per-board override first, so a future board that needs different
180
+ * timing states it in the SSOT rather than in a flasher.
181
+ */
182
+ export declare function esp32PostWriteResetSequence(board: Esp32BoardSpec): string | undefined;
139
183
  export declare const ESP32_PARTITION_TABLE_OFFSET = 32768;
140
184
  /** boot_app0 (the OTA-selection blob) offset. Absent, a board can boot a stale slot. */
141
185
  export declare const ESP32_BOOT_APP0_OFFSET = 57344;
@@ -1 +1 @@
1
- {"version":3,"file":"esp32-boards.d.ts","sourceRoot":"","sources":["../src/esp32-boards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"esp32-boards.d.ts","sourceRoot":"","sources":["../src/esp32-boards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;AAC7E,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AACpD,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,WAAW,GAAG,UAAU,GAAG,kBAAkB,CAAC;AAC/F,gCAAgC;AAChC,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,eAAe,CAAC;AAEzF;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,kBAAkB,GAAG,YAAY,GAAG,SAAS,CAAC;AAE7F,MAAM,WAAW,cAAc;IAC7B,mFAAmF;IACnF,EAAE,EAAE,MAAM,CAAC;IACX,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,UAAU,EAAE,eAAe,CAAC;IAC5B,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,KAAK,CAAC;IACjB,SAAS,EAAE,KAAK,GAAG,KAAK,CAAC;IACzB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,2CAA2C;IAC3C,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,0EAA0E;IAC1E,IAAI,EAAE,OAAO,CAAC;IACd;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,SAAS,EAAE,OAAO,CAAC;IAEnB,wEAAwE;IACxE,GAAG,EAAE,OAAO,CAAC;IAEb,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,mBAAmB,CAAC;IACpC;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAKnE,CAAC;AAIF,oFAAoF;AACpF,eAAO,MAAM,YAAY,EAAE,cAAc,EAkLxC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,KAAG,cAAc,GAAG,SACtB,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAEhE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,OAAO,CAQhF;AAQD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAI5E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,GAAG,SAAS,CAUrB;AAED,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAK9D,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAK/D,CAAC;AAEF,8EAA8E;AAC9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,+BAA+B,kBAAkB,CAAC;AAE/D;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAGrF;AAED,eAAO,MAAM,4BAA4B,QAAS,CAAC;AACnD,wFAAwF;AACxF,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAC7C,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,QAAU,CAAC;AAczC,MAAM,MAAM,kBAAkB;AAC5B,+CAA+C;AAC7C,IAAI;AACN,kFAAkF;GAChF,kBAAkB;AACpB,sEAAsE;GACpE,eAAe;AACjB,iEAAiE;GAC/D,iBAAiB;AACnB,2EAA2E;GACzE,mBAAmB;AACrB,4FAA4F;GAC1F,yBAAyB,CAAC;AAE9B;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,KAAK,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,iFAAiF;IACjF,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,8EAA8E;IAC9E,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,kBAAkB,CAAC;IACzB,6DAA6D;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,cAAc,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;CAC5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,GAAG,qBAAqB,CA+CvF"}
@@ -63,8 +63,11 @@ export const ESP32_BOARDS = [
63
63
  before: 'no_reset', after: 'hard_reset', stub: false, nativeUsb: true,
64
64
  ota: true,
65
65
  webFlash: false, webFlashStatus: 'unverified',
66
- webFlashVerified: '2026-08-22 · owned and live on Wi-Fi, but not USB-attached during the spike. A --no-stub board like the TTGO that did pass, so it is the best next candidate.',
67
- notes: ['esptool misdetects the flash as 8MB during a bootloop — 16MB must be explicit.'],
66
+ webFlashVerified: '2026-08-22 · owned and live on Wi-Fi, but not USB-attached during the spike, and still not attached on 2026-08-23. Untested, not failing nothing on this board has been measured either way.',
67
+ notes: [
68
+ 'esptool misdetects the flash as 8MB during a bootloop — 16MB must be explicit.',
69
+ "`stub: false` here is INHERITED from platformio's --no-stub, never measured. That pin arrived in 2cf5fc754, a commit about displays and connectivity whose message does not mention the stub at all — the same shape as the TTGO pin that turned out to be wrong. So this board's stub axis is UNKNOWN, and it cannot be cited as evidence that stubless writing is broken.",
70
+ ],
68
71
  },
69
72
  {
70
73
  id: 'round_amoled', env: 'amoled', name: 'Round AMOLED', display: '1.8" 360x360 ST77916',
@@ -79,8 +82,10 @@ export const ESP32_BOARDS = [
79
82
  before: 'no_reset', after: 'hard_reset', stub: false, nativeUsb: true,
80
83
  ota: true,
81
84
  webFlash: false, webFlashStatus: 'unverified',
82
- webFlashVerified: '2026-08-22 · owned and live on Wi-Fi, but not USB-attached during the spike.',
83
- notes: [],
85
+ webFlashVerified: '2026-08-22 · owned and live on Wi-Fi, but not USB-attached during the spike, and still not attached on 2026-08-23. Untested, not failing.',
86
+ notes: [
87
+ "`stub: false` here is INHERITED from platformio's --no-stub, never measured — same commit (2cf5fc754) and same caveat as ips_35.",
88
+ ],
84
89
  },
85
90
  {
86
91
  id: 'ips_10', env: 'ips10', name: 'IPS 10.1"', display: '10.1" 800x1280 JD9365',
@@ -91,8 +96,14 @@ export const ESP32_BOARDS = [
91
96
  before: 'no_reset', after: 'no_reset', stub: false, nativeUsb: false,
92
97
  ota: true,
93
98
  webFlash: false, webFlashStatus: 'blocked',
94
- webFlashVerified: '2026-08-22 · enters download mode but never answers. esptool.py 5.1.2 (the PlatformIO-vendored tool-esptoolpy build — NOT a PyPI release: the PyPI 5.1 line stops at 5.1.0, which is how a CI pin read off a local `pip show esptool` failed the esp32-v1.0.7 cut) reports "Download mode successfully detected, but getting no sync reply: The serial TX path seems to be down" — board-side, not esptool-js.',
95
- notes: ['ESP32-P4: the bootloader lives at 0x2000, not 0x0.'],
99
+ webFlashVerified: '2026-08-23 · reaches download mode and then never answers SYNC. NOT a stub problem: SYNC precedes stub loading in both tools, so `stub: true` cannot reach this failure. Both serial directions are proven up (see notes); what does not answer is the ROM loader itself.',
100
+ notes: [
101
+ 'ESP32-P4: the bootloader lives at 0x2000, not 0x0.',
102
+ 'Download mode IS reached: `boot:0x307 (DOWNLOAD(USB/UART0/SPI))` followed by `waiting for download`, read over this same CH340 UART. So chip->host is UP in download mode — the banner arrived on it. esptool.py says "The serial TX path seems to be down"; that sentence is esptool guessing from a failed round trip, and it is wrong here. It was carried in this field as a finding until 2026-08-23; do not carry it again.',
103
+ 'host->chip is up too: the identical open-and-write path gets 1403 bytes back from the running app. That contrast is the measurement, not the write itself — `drain()` times out on this adapter in BOTH states, so the timeout is a node-serialport/CH340 artifact and is evidence of nothing. Reading it as "the bytes never left" is a wrong answer this board hands out for free.',
104
+ 'Yet SYNC returns ZERO bytes: 5 tries from esptool.py 5.2.0, 3 more from a hand-built SYNC frame on a port already proven to be in download mode. The remaining suspect is the ROM download channel itself. The banner lists USB first, and this board has no cable on the P4 native USB port — that is where the next attempt goes.',
105
+ 'Only esptool.py UnixTightReset reaches download mode here; ClassicReset reads 0 bytes at either delay. esptool-js implements ClassicReset and UsbJtagSerialReset ONLY, so no built-in esptool-js strategy can get this board there at all. Its CustomReset CAN: `D0|R0|D1|R1|D0|W100|D1|R0|W50|D0` reached download mode reproducibly. The load-bearing part is the PREAMBLE, not atomicity — a preamble-less atomic IO0+EN edge reads 0 bytes, which is the opposite of what the "set both lines together" rule predicts. Deliberately NOT wired up: entering download mode does not make the board writable while SYNC still fails, and a field claiming a capability nobody has is worse than an absent one.',
106
+ ],
96
107
  },
97
108
  {
98
109
  id: 'inkdeck', env: 'inkdeck', name: 'InkDeck', display: '7.5" 800x480 e-ink UC8179',
@@ -114,12 +125,32 @@ export const ESP32_BOARDS = [
114
125
  aliases: ['ttgo'],
115
126
  chipFamily: 'ESP32', flashSize: '16MB', flashMode: 'dio', flashFreq: '80m',
116
127
  bootloaderOffset: 0x1000, uploadBaud: 115200, esptoolFlags: ['--no-stub'],
117
- before: 'default_reset', after: 'hard_reset', stub: false, nativeUsb: false,
128
+ before: 'default_reset', after: 'hard_reset', stub: true, nativeUsb: false,
118
129
  ota: true,
119
- webFlash: true, webFlashStatus: 'verified-partial',
130
+ webFlash: true, webFlashStatus: 'verified',
120
131
  webFlashVerified: EV +
121
- 'BOTH default_reset/stub and default_reset/no-stub connect · ESP32-D0WDQ6 rev v1.1. This is the measurement that proves the --no-stub path works. Flash size reads 16MB WITH the stub and is unreadable without it (flashId 0xffffff), so the size guard is unavailable stubless.',
122
- notes: ['Stubless SPI flash-id reads return 0xffffff on this board; the size guard degrades to chip-family only.'],
132
+ 'default_reset/stub · ESP32-D0WDQ6 rev 1 · 460800 not used (115200 pinned). ' +
133
+ 'FULL END-TO-END on 2026-08-23: wrote agentdeck-ttgo_t_display-merged.bin from ' +
134
+ 'esp32-v1.0.7 in 138.1s, MD5 verified against the chip, and the board reported ' +
135
+ 'itself as ttgo_t_display 1.0.7 (1958da41) — the first post-write boot check in ' +
136
+ 'this fleet to pass. Both --no-stub and stub CONNECT here, which is why it was ' +
137
+ 'pinned --no-stub; connecting is not writing, and stubless it could not be ' +
138
+ 'written at all. With the stub the flash id reads 16MB, so the size guard is ' +
139
+ 'available rather than degraded.',
140
+ notes: [
141
+ 'stub: true while esptoolFlags still carries --no-stub, and that is deliberate. '
142
+ + 'The two describe DIFFERENT TOOLS: `stub` drives esptool-js (the browser flasher '
143
+ + 'and `agentdeck esp32 flash`), esptoolFlags mirrors esp32/platformio.ini upload_flags '
144
+ + 'for esptool.py, and the board-matrix gate cross-checks only the latter pair. '
145
+ + 'Stubless, esptool-js CANNOT WRITE this board at all: compressed dies at "Failed to '
146
+ + 'enter compressed flash mode" and uncompressed one step later at "Failed to enter '
147
+ + 'Flash download mode", both before a byte lands (measured 2026-08-23). With the stub '
148
+ + 'it writes and boots end-to-end. The platformio pin is left alone because an '
149
+ + 'esptool.py upload was NOT re-measured — changing it on evidence from another tool '
150
+ + 'is the guess this note exists to avoid.',
151
+ 'Stubless SPI flash-id reads return 0xffffff on this board, degrading the size guard '
152
+ + 'to chip-family only; with the stub the id reads 16MB and the guard is available.',
153
+ ],
123
154
  },
124
155
  {
125
156
  id: 'ulanzi_tc001', env: 'led8x32', name: 'Ulanzi TC001', display: '32x8 WS2812B matrix',
@@ -263,6 +294,48 @@ export const ESP32_IMAGE_CHIP_ID = {
263
294
  'ESP32-P4': 18,
264
295
  };
265
296
  /** Where the partition table lives; also where the bootloader region ends. */
297
+ /**
298
+ * The reset that actually boots a board after a write, as an esptool-js
299
+ * `custom_reset` sequence.
300
+ *
301
+ * WHY THIS EXISTS. esptool-js's `after('hard_reset')` cannot boot these boards.
302
+ * Its non-USB-OTG implementation is, in full, `sleep(100); setRTS(false)` — a
303
+ * RELEASE with no ASSERT. That works only when the preceding step left EN
304
+ * asserted, which `--before default-reset` does and a finished `writeFlash`
305
+ * does not. So the chip is left parked in the flasher stub, the firmware never
306
+ * runs, and the post-write `device_info` read-back can never succeed.
307
+ *
308
+ * Measured 2026-08-23 with a non-destructive probe (connect exactly as the
309
+ * flash does, apply a candidate reset, ask the firmware to identify itself),
310
+ * with a firmware-identity guard so a concurrent write on the same board aborts
311
+ * the run instead of producing a confident wrong answer:
312
+ *
313
+ * sequence t_display_pro (0x303a/0x1001, native USB) 86box (0x1a86/0x7523, CH340)
314
+ * after('hard_reset') PARKED PARKED
315
+ * R1|W250|R0 booted PARKED
316
+ * D0|R1|W100|R0 booted (48s -> 5s) booted (39s -> 3s)
317
+ *
318
+ * `D0` IS LOAD-BEARING, and only one of the two boards shows it. Pulsing EN
319
+ * without first driving IO0 high leaves the CH340 board in download mode —
320
+ * indistinguishable, from the outside, from a board that failed to boot. The
321
+ * two adapter classes take different reset strategies inside esptool-js
322
+ * (UsbJtagSerialReset vs ClassicReset), so a sequence verified on one is not
323
+ * evidence for the other; this one is measured on both.
324
+ *
325
+ * Boards whose `after` is `no_reset` are deliberately excluded: ips_10 asks not
326
+ * to be reset and that is a property of the board, not an oversight.
327
+ */
328
+ export const ESP32_POST_WRITE_RESET_SEQUENCE = 'D0|R1|W100|R0';
329
+ /**
330
+ * The sequence to run after writing `board`, or undefined when it must not be
331
+ * reset. Per-board override first, so a future board that needs different
332
+ * timing states it in the SSOT rather than in a flasher.
333
+ */
334
+ export function esp32PostWriteResetSequence(board) {
335
+ if (board.postWriteReset !== undefined)
336
+ return board.postWriteReset || undefined;
337
+ return board.after === 'no_reset' ? undefined : ESP32_POST_WRITE_RESET_SEQUENCE;
338
+ }
266
339
  export const ESP32_PARTITION_TABLE_OFFSET = 0x8000;
267
340
  /** boot_app0 (the OTA-selection blob) offset. Absent, a board can boot a stale slot. */
268
341
  export const ESP32_BOOT_APP0_OFFSET = 0xe000;
@@ -1 +1 @@
1
- {"version":3,"file":"esp32-boards.js","sourceRoot":"","sources":["../src/esp32-boards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"esp32-boards.js","sourceRoot":"","sources":["../src/esp32-boards.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentdeck/shared",
3
- "version": "1.0.23",
3
+ "version": "1.0.24",
4
4
  "engines": {
5
5
  "node": ">=22"
6
6
  },