muse/book-reading-clip-lamp

A Wi‑Fi/USB‑C ESP32‑S3 reading lamp with OV5640 camera, microphone, speaker amplifier, rechargeable Li‑Po power management, six-LED boost light, USB protection/charging detection, and a clip/gooseneck enclosure with external FlexPIFA antenna.

Version
0.4.3
License
unset
Stars
0

validation.txt

M11 PUBLICATION UPDATE — 12 October 2026
Latest official analyzer 0.0.60 now detects chip inner-label overflow.
Increased only U10/U11 schematic heights from 2.2 to 2.55.
Fresh full build passed with zero circuit errors; all 44 style rules and
text-aware sheet boundaries pass across ten sheets. Copper and drill
geometry verified unchanged. Existing camera connector hold remains.

M11 SHEET BOUNDARIES / LATEST TSCIRCUIT — 12 October 2026
Updated tscircuit 0.0.2774 -> 0.0.2839, core 0.0.2132, CLI 0.1.2303.
Fixed titles/notes/footers in all ten fixed ANSI B sheets. Official analyzer
0.0.57: 42 rules, zero issues. Added separate text-aware page-boundary checks
to check:schematic; zero boundary issues, four regression tests pass.
Full build, typecheck, netlist, schematic placement, all-layer shorts, routing
guard and circuit audits pass. No circuit error records. Copper, drill/pad
geometry and source connectivity unchanged (355 traces / 438 vias).
PCB placement retains J2's existing orientation advisory. New toolchain reports
five 45-degree route-style advisories on unchanged copper; other fabrication
holds remain. Dev server restarted and live USBPower sheet visually verified.
See work-schematic-m11/findings.txt, validation-summary.json and check logs.

PRIOR VALIDATION / REVISION HISTORY

M10 AUTOMATIC USB CHARGING-SOURCE DETECTION — 12 October 2026
Local update; not published. BC1.2 detector U14 and USB-C current detector U15
select BQ24074 USB500 automatically for recognized charging sources. U16/U17
combine source permission with host authorization; USB-powered U18 keeps this
working with the base switch OFF. Unknown/SDP sources start in USB100.
Five exact JLC IC imports, seven capacitors and six resistors added; the two
external CC Rd resistors removed. Battery ISET remains about 500 mA.

PASS: TypeScript, netlist (zero errors/warnings), schematic placement, full
parts-enabled build (zero error records), routing input guard, charging policy
and pinout audit, release/camera/base-controls audits, four M3 mounting checks,
and independent Gerber shorts across all four copper layers.
PCB placement: zero errors; existing inward-facing J2 orientation warning
makes the CLI exit 1. Its mating-geometry fabrication hold remains unresolved.
Latest official schematic analyzer 0.0.56: all 42 rules, ten sheets,
zero issues. Report is checks/schematic-style/report.json and hashes the final
circuit. Existing core metadata, supplier footprint/availability, light-sheet
boundary and thermal-link width warnings remain; zero DRC errors is not an
approval of these separately documented electrical/fabrication findings.

Routing: 259 preserved and 93 new/repaired replay routes, plus three explicit
thermal links = 355 compiled traces; 438 vias, all 0.30/0.45 mm. See routing
provenance and work-routing-m10. No rule or input-guard suppression. Via-in-pad
geometry requires the existing filled/capped fabrication process.
Supplier CAD preview regenerated. 124 populated component envelopes checked
against 50 assembly parts; no solid/component collisions. Printable manifold
checks and screw/antenna/camera reservations pass; nominal dimensions only.

Firmware is not implemented here. USB host enumeration/suspend, attach/detach,
total current/inrush, battery/thermal behavior and a complete off-state charge
must be tested as specified in usb-power-policy.txt. Existing camera connector,
Q1 VBUS-threshold and U3/L1 power-copper review issues are not fixed by M10.
Evidence: build-charging-final.log and checks-charging-*.log.

PRIOR VALIDATION / REVISION HISTORY

SCHEMATIC STYLE UPDATE — 09 October 2026
Latest official analyzer 0.0.50, all 39 rule types, all nine sheets: zero issues.
Dev-server Run Style Analysis independently confirms No style issues found.
Moved schematic R5/R6/R12 beside their chip pins, ordered the folded six-LED
chain toward feedback, and moved C2 near the battery harness rail.
PCB geometry/copper and source netlist match baseline (314 traces, 362 vias).
Only generated trace/via IDs, route endpoint port metadata and source filesystem
hash differ outside schematic data. Full build, typecheck, netlist, PCB placement,
routing guard and default top/bottom Gerber shorts check pass.
The default check:schematic command now resolves latest online, builds fresh,
and exits nonzero on any style finding. Report includes version and hashes:
checks/schematic-style/report.json. PCB dependency lockfile unchanged.

M9 FLAT REAR HOUSING — 09 October 2026
Local update; not published. Uniform rear surface Z=15.5 mm, inner roof Z=13.5 mm.
Main round body deepened by 5.5 mm; former maximum shell depth remains 32.7 mm.
No antenna/JST bulges. Extended PCB/tray supports, Light plunger and indicator
pipes; preserved PCB, camera/flex, antenna placement and screw seating planes.
Rear M2 x16 screw heads have 5.7 mm recess in 4.4 mm access wells.

PASS: typecheck, full tscircuit build (zero error records), routing input guard,
mounting drill/copper/solid checks, GLB/STL export and dev-server visual review.
Solid probes confirm a continuous 2 mm rear roof with only intended apertures.
50 assembly parts / 16 printable / 108 component envelopes: zero intersections,
zero nonmanifold printable edges. Antenna roof gap 4 mm; RF reservations clear.
Electrical routing unchanged; M8 all-layer shorts results remain applicable.
Reprint rear housing, Light cap and two indicator pipes together.
Existing camera-connector hold and physical fit/strength qualification remain.
Logs: /tmp/lamp-flat-rear-*.log; report: mechanical/geometry-checks.json.

M8 M3 PCB MOUNTING — 09 October 2026
Local update; not published to the registry.
Toolchain unchanged: tscircuit 0.0.2774 / core 0.0.2112 / viewer package 0.0.617.
Four 3.2 mm NPTH holes align to the original enclosure axes. Shared mounting
constants; 5.6 mm OD support posts, blind M3 tap pilots, four M3 x6 screw models,
and internal bezel reliefs. External case screws remain rear-entry M2 x16.
Moved R5, R8, R23, R19, C37, U12 and C29; reconnected affected routes.

PASS: typecheck, netlist, schematic placement, PCB placement, full build,
routing guard, release/camera/control audits, Gerber shorts (top/bottom,
inner1, inner2), mounting axis/copper checks and enclosure solid checks.
Final circuit: zero error records, 314 traces and 362 vias.
Assembly: 50 parts, 16 printable, 108 component envelopes, zero collisions
and zero nonmanifold printed edges. All four PCB supports/pilots/head pockets
and existing three rear case screws pass solid-geometry checks.
M3 printed threads/torque need physical qualification. Existing J2 camera
connector mating hold and supplier/engineering warnings remain applicable.
Logs from this run: /tmp/lamp-m3-*.log; durable geometry/mounting reports in
mechanical/geometry-checks.json and mechanical/pcb-mounting-checks.json.

TOOLCHAIN UPDATE — 08 October 2026
Local update; no registry publication in this change.

tscircuit 0.0.2646 -> 0.0.2774; CLI 0.1.2237 -> 0.1.2267;
core 0.0.1971 -> 0.0.2112; runframe 0.0.2934.
Bundled 3D viewer release 0.0.617. Its published JS embeds the stale version
badge 0.0.616; verified against the npm 0.0.617 artifact, not manually patched.
package.json and bun.lock updated; project now has independent node_modules.
Original shared dependency directory preserved. Frozen-lockfile install passes.
Cloud worker timeout remains 1,200,000 ms (20 minutes).

Compatibility fixes:
- Explicit zero drill offsets for J3's square pin-1 pad prevent an undefined
  center / non-finite polygon in the upgraded in-memory connectivity check.
  Imported drill and pad dimensions are unchanged; controls audit covers offsets.
- Three local route replacements fix new trace/trace and trace/hole findings;
  see routing-notes.txt. Endpoints, component placements, nets and via sizes stay.
- Schematic-only capacitor spacing and Q1 position satisfy the tighter checker.

Passed: TypeScript, netlist, schematic placement, PCB placement, complete build,
routing guard, release/camera/control audits, shorts (default, inner1, inner2).
Final circuit: zero error records, 314 traces and 364 vias.
Live dev server restarted at http://localhost:3020; PCB viewer shows 0 errors;
3D renders with the updated viewer. Checks recorded in checks-upgrade-*.log.
Existing supplier/footprint and J2 orientation advisories remain. The upgraded
checker also warns about GND route widths while associating the three explicit
thermal-pad links; these are warnings, not resolved power-layout qualification.
Camera connector mating and other physical qualification holds remain as below.

PRIOR M7 VALIDATION / REVISION HISTORY

LAMP CLIP M7 — ANTENNA AND SLIMMER FRONT
08 October 2026. Local revision; not published in this change.

Ezurio 001-0014 with MHF1/U.FL plug; removable dielectric tray, internal
M1.6 x 3 screws, coax route and raised rear RF pocket. No host copper change.
Printed front-bezel height 16.9 -> 16.1 mm; cup depth 14.8 -> 14.0 mm.
Main shell depth 27.2 mm; maximum with harness pocket 32.7 mm.
Nominal lens recess 0.5 mm; 0.3 mm with stated camera body tolerance.
Camera pose, supplied heatsink and 2.415 mm flex bend radius retained.

Passed: TypeScript, netlist, schematic placement, PCB placement, build,
shorts (default and explicit inner1/inner2), release, controls, routing guard.
Compiled circuit: zero error records; 314 traces / 364 vias. Saved routing
input and traces have identical SHA256 to the pre-change files.
Placement retains the existing camera connector orientation advisory.
Mechanical export: 46 models, 16 printable parts, zero non-manifold print
edges, zero unintended solid/component collisions against 108 envelopes.
RF geometry reservations: zero metal/plastic violations. Coax length 89 mm.
Actual RF performance, cable OD/bend, plug fit, print/assembly tolerance,
thermal behavior and camera J2 mating hold remain physical qualification items.
Native tscircuit 3D preview inspected with the antenna, tray and cable visible.
Current checks: checks-antenna-*.log. See mechanical/antenna-fit-checks.json
and mechanical/geometry-checks.json for the exact clearances and dimensions.

PRIOR M6 VALIDATION / REVISION HISTORY

LAMP CLIP — REMOVABLE HEAD HARNESS M6
08 October 2026
Engineering prototype: software checks do not qualify physical hardware.

CURRENT DESIGN
One 60 mm, four-layer head PCB. J3 is JST B8B-XH-A(LF)(SN), JLC C157972,
with XHP-8 cable housing and eight SXH-001T-P0.6 contacts. J4 is removed.
Pins 1..8: VBAT, GND, NTC, GND, SPK_P, SPK_N, ASK_REMOTE, PWR_REMOTE.
Chat SW1 and power SW3 remain panel-mounted at the base; no extra PCB.
SW2 Light moves to (24,-8) mm. Nearby passives move to clear the connector.

ELECTRICAL VALIDATION
TypeScript, netlist, schematic placement and PCB placement pass.
Schematic style analysis: zero issues across nine annotated sheets.
Normal parts-engine-enabled build: exit 0, zero circuit error records.
Supplier footprint advisories remain for previously selected generic passives
and reading LEDs; their footprint/part qualification is still outstanding.
Gerber tsci check shorts: all layers plus explicit inner1/inner2 pass.
verify-release.py: camera interface, 41 MCU pads, LEDs and 0.30/0.45 vias pass.
verify-base-controls.py: eight connector nets, exact imported drill/pad dimensions,
non-null unique plated-hole IDs, cable/panel BOM and control filters pass.
verify-routing-guard.ts: changed geometry/net/drill/clearance inputs rejected.
PCB viewer: 0 errors in the live dev-server build.
The existing inward-facing camera connector retains its placement advisory.

ROUTING
286 routes preserved only after matching named nets, endpoint coordinates and
layers. Changed pad/obstacle intersections removed. 25 connections newly routed;
two short unchanged amplifier pin escapes retained. Total: 311 routed traces.
One explicit routing-replacements.json entry merges adjacent SPK_N vias into
one 0.30/0.45 through via at the original amplifier escape coordinate.
The baseline, scripts and manifest are retained under work-routing-m6.
The full input guard remains enabled; no copper DRC rule is disabled.

IMPORT REPRESENTATION FIX
The catalog's pin-1 square pad used a degenerate equal-width/height pill drill.
Core 0.0.1971 gave it a null plated-hole ID. Explicit circular_hole_with_rect_pad
retains the exact 0.9000236 mm drill and 1.6999966 mm square copper dimensions.
Recapture confirmed identical connections and all obstacle coordinates/sizes.
Normal supplier-enabled build and short checks pass with valid hole IDs.

MECHANICAL VALIDATION
41 mechanical models, 15 printable STL parts. Supplier header CAD plus a
JST-dimensioned mating housing and eight separately modeled wires are included.
Raised rear pocket: z=15.5 mm outer extent, z=13.5 mm interior ceiling;
9.8 mm mated connector height above the PCB. Rear-entry screws retained.
Manifold export: one solid per printable part, zero non-manifold print edges.
Pairwise solid checks: zero unintended intersections above 0.02 mm3.
PCB/component checks: zero unintended intersections against 108 envelopes.
Only documented camera-tongue and header/plug mating regions are excluded
from filled connector bounding boxes; other collisions remain actionable.
Wire models use 1.1 mm OD battery / 0.9 mm OD other leads in a 4 mm neck bore.
The fit is nominal and tight; real jacket OD, crimping, bend radius, service slack,
strain relief, neck loads and thermal behavior need sample qualification.
The existing camera J2 mating-geometry hold remains; this is not fabrication approval.

REPORTS AND TOOLS
Current reports: build-harness.log and checks-harness-*.log.
mechanical/geometry-checks.json records the solid checks and mating exceptions.
Pinned tscircuit 0.0.2646, core 0.0.1971, CLI 0.1.2237,
capacity-autorouter 0.0.919. Cloud worker timeout remains 20 minutes.
Publication candidate: muse/book-reading-clip-lamp 0.4.1 (M6).
Pre-publication netlist, schematic placement, placement, build, shorts,
release and base-control checks passed again. No hardware order.