muse/esp32-eink-display

A 55×46 mm two-layer ESP32-S3 e-paper controller board with USB‑C power/programming, buck regulation, FPC display connector, UC8179-style boost/charge-pump circuitry, ESD protection, controls, and routed passive components.

Version
1.3.4
License
unset
Stars
0

renderer-fix/notes.md

# Rotated plated-hole WebGPU fix

The failing shape is `rotated_pill_hole_with_rect_pad`, used by the two pin-1 pads of the imported Muse DevKit sockets. The circuit and footprints are unchanged.

`upstream.patch` applies to https://github.com/tscircuit/circuit-json-webgpu at commit `20560f2946213b4dcb590efd06495488ce898512`. It adds rectangular copper pads and capsule drills with independent rotations, board-space hole offsets and optional rectangular corner radii. Three regression tests include the actual two Muse socket holes, both explicit and implicit hole-shape metadata, and rotated slots in rounded pads.

Validation: 69 renderer unit tests pass; renderer typecheck, library build and formatting check pass. The bundled worker verification reproduces the original two diagnostics before the fix, checks the complete Muse circuit after the fix, and compares every vertex and index of all unaffected geometry. It also checks independent pad/drill rotations and hole offsets.

Until an upstream release contains this fix, `scripts/patch-webgpu.mjs` applies an idempotent, hash-guarded compatibility patch to the pinned runframe viewer and the CLI's embedded copies. It refuses to patch an unexpected compiler. The source patch is not published upstream.

Rebuild with `npm run build:site`. After reinstalling dependencies, that command reapplies the patch before running `tsci build --site` and verifies the exported viewer. `npm run build` also reapplies the patch. The compatibility patch can be removed once the installed renderer supports this shape.

The exported HTML is `dist/index.html`. Automated browser inspection of its `file://` URL was blocked by the browser tool's URL policy. Geometry validation executes the exact compiler embedded in its WebGPU worker without browser or GPU access; interactive GPU rendering has not been rechecked in this session.

## Rev C validation

Rev C replaces the DevKit sockets with the directly soldered ESP32 module and USB-C connector. The current board has no `rotated_pill_hole_with_rect_pad` shapes. The bundled test now compares the full current board with the baseline compiler and uses two independent rotated-slot fixtures to reproduce the missing-shape error before the patch and validate the geometry afterward. The historical source regression tests above are retained.

## Rev D toolchain update

The toolchain now uses runframe 0.0.2887. Its unpatched shape compiler hash is identical to the reviewed 0.0.2885 compiler (`7a1b04991085ddbc3835db4b743e61cd33ce08ab1fe655baea278b47c302e670`), so the existing guarded branch remains applicable. The patch manifest version was updated after that comparison. The exported worker tests cover the compact 55 × 46 mm board and retain the two independent rotated-slot fixtures. Historical upstream unit-test results above have not been rerun for this release.