krishnax12/watchy-eink-smartwatch
Unfinished prototype (not production-ready): 4 native DRC errors, 2 display-flex intersections, and missing antenna radiator copper remain
- Version
- 1.2.7
- License
- MIT
- Stars
- 1
reports/production-status.json
{
"productionReady": false,
"published": false,
"upstreamActions": "No PRs or issues created, as requested.",
"dependencies": {
"tscircuit": "0.0.2727",
"core": "0.0.2048",
"checks": "0.0.233"
},
"scope": "Released-tscircuit build with no patched dependencies, manual schematic placement, authored signal paths, or disabled checks. Physical PCB component coordinates are explicit and include clearance corrections; PCB placement is not claimed to be fully automatic.",
"electricalBuild": {
"nets": 53,
"connectedPins": 237,
"traces": 184,
"vias": 166,
"nativeErrors": 4,
"independentRoutingConstraintErrors": 3,
"routingConstraintCheck": [
"RF_ANT violates the required top-only, no-via routing rule",
"XTAL_40M_FB violates the required top-only, no-via routing rule",
"XTAL_40M_OUT violates the required top-only, no-via routing rule"
],
"schematicWarnings": 4,
"pcbWarnings": 34,
"rootPlacementErrors": 0,
"routingSkipped": false,
"errorCounts": {
"pcb_trace_too_long_error": 1,
"pcb_trace_error": 2,
"pcb_placement_error": 1
},
"nativeErrorMessages": [
"PCB trace is 11.54mm long, exceeding the 10mm maximum",
"PCB trace uses 2 vias, exceeding the 0 maximum",
"PCB trace uses 2 vias, exceeding the 0 maximum",
"Via pcb_via_19 violates copper-to-board-edge clearance (measured 0.158mm, required 0.200mm)"
]
},
"referenceValueAudit": {
"checked": 52,
"mismatches": 0,
"scope": "50 R/C/L quantities and two crystal frequencies against official v3 schematic. Not exact MPN, tolerance or crystal load-capacitance certification.",
"fixed": "Ten e-paper capacitor strings now use separate native capacitance and 50 V rating properties; compiled quantities are in microfarads, not farads."
},
"nativeCopper": {
"topGroundRegions": 11,
"bottomGroundRegions": 2,
"solderMaskCovered": true,
"antennaKeepoutLayers": [
"top",
"bottom"
],
"antennaKeepoutExcludedComponents": [
"AE1"
],
"authoredSignalGeometry": false
},
"viaGeometryMm": {
"scope": "Current completed native autorouter output. Fabrication capability is not qualified.",
"drill": 0.2,
"pad": 0.35,
"manufacturerCapabilityVerified": false
},
"frameworkLimitations": [
"Current generated routes violate crystal length/no-via and bus top-only constraints; final native DRC and independent checks remain enabled.",
"Current native route has a via with 0.158 mm copper-to-board-edge clearance, below the required 0.2 mm.",
"Native route replay export fails for the non-unique .J3 > port.GND alias on real pins 8/17.",
"Imported motor/antenna symbol text remains detached from the automatically placed symbol body.",
"Browser preview failed with duplicate config.ts basenames until PCB configuration was renamed board-stackup.ts. A minimal evaluator/dev-server reproduction remains to be made."
],
"failedTrials": [
"A native 0.45 mm via-pad routing trial violated final clearance/contact/connection checks despite solver completion. Not retained. This is not yet an isolated minimum framework repro.",
"Native pack placed C16 about 25 mm from Y2 and introduced TP9/C27 pad clearance conflict. Rejected; all trial placement edits reverted."
],
"mechanicalCheck": {
"method": "Boolean intersections of tessellated component models and PCB mesh using installed circuit-json-to-gltf placement. Not exact B-rep certification; includes native generated package models, not manufacturer-certified envelopes. Threshold 0.001 mm^3, vertex merge tolerance 0.00001 mm. Invalid inputs remain unresolved.",
"meshSolids": 76,
"missingMeshes": [],
"unresolvedInputSolids": 0,
"significantIntersections": [
{
"components": [
"PCB",
"J3"
],
"modelFiles": [
"PCB",
"./assets/Display.step"
],
"volumeMm3": 5.8537349473740194
},
{
"components": [
"J3",
"J3"
],
"modelFiles": [
"./assets/Display.step",
"./assets/EasyEDA_C11092_AFC07_S24ECC_00.step"
],
"volumeMm3": 8.815185928723695
}
],
"significantIntersectionCount": 2,
"clearedPriorContacts": [
"C16 / J1",
"C27 / M1",
"USB J2 / PCB"
],
"usbRotationTrial": "Removing native pcbRotationOffset=180 increased USB/PCB and introduced U2/D1/U5 contacts. Trial rejected; native rotation retained. Model origin subsequently corrected using both mounting-row datums and the five contact undersides. USB/PCB intersection is now zero; exact purchased-part geometry remains unqualified.",
"limitations": "Tessellated-model screening is not certification of physical part envelopes or a folded display assembly.",
"unrelatedComponentIntersections": 0,
"displayCorrection": "The previous display transform was 180 degrees backward and shifted 1.25 mm along the board. Corrected using the official KiCad rear-side planar registration relative to J3. All sixteen intersections with unrelated component models are removed. This was a board definition error, not a tscircuit framework bug.",
"flexConnectorContact": "Display flex / C11092 connector model intersection is 8.815185928723695 mm^3. Insertion/contact geometry is not verified and is not excluded from failed mechanical validation."
},
"officialDisplayComparison": {
"source": "https://raw.githubusercontent.com/sqfmi/watchy-hardware/v3.0/3D/Display.step",
"githubAndLaptopFileSha256": "413c1befa2df1fc1576b736986a5fc074bdf33ecb060e5fe2feb44ef315612d7",
"bundledFileSha256": "f92e77e6c68f28b674ebad79b5ebb47e2d78432af05655ca4ba1fc0370e5f3ec",
"bothTessellatedPositionsAndIndicesSha256": "897a31c14452a5e35b79d011a1f753c30351c7a6e9189627606fb8930821f8d3",
"alternativeVerifiedFoldedAssemblyFound": false
},
"openItems": [
"Four native DRC errors and three independent top-only/no-via net violations remain after native autorouting.",
"Correctly oriented display flex still intersects the PCB and the C11092 connector model. Nominal insertion fit/fold remains unverified; no collision is silently excluded.",
"AE1 lacks the twelve copper polygons forming the official SWRA117D antenna. Native DRC does not certify the missing antenna.",
"Two-layer 1.0 mm stackup is user-requested, not the official v3 four-layer 1.0 mm stackup. RF performance is not qualified.",
"Exact crystal MPN/load capacitance, remaining BOM ratings, RF/USB/power integrity, fabrication checks and assembled prototype qualification remain open.",
"Not all models are EasyEDA-sourced. See assets/model-sources.json for retained or generic models.",
"Thirty-three missing-courtyard warnings, one battery-connector accessibility warning and four schematic/part warnings remain.",
"Current renders retain native error/ratsnest overlays and unresolved model/schematic-layout defects."
],
"handoff": "Current two-layer native-autorouted draft preserves connectivity. Display planar registration and USB mounting/contact registration are corrected. All unrelated-component mesh contacts and the USB/PCB contact are clear; two display-flex intersections and four DRC errors remain. The supplied KiCad assembly also contains display-flex model contacts, so a verified fold remains necessary. Not production-ready. No PR, issue or upload created.",
"verifiedAt": "2026-10-02",
"currentCircuit": "dist/index/circuit.json",
"referenceConnectivityAudit": {
"netlistPath": "reports/official-v3-netlist.xml",
"circuitPath": "dist/index/circuit.json",
"scope": "Pin-to-pin reference connectivity, not PCB routing or functional qualification. Additional test points are reported separately, not silently included in the official reference.",
"matchedReferenceNets": 53,
"referenceConnectedPins": 235,
"additionalComponents": [
"TP8",
"TP9"
],
"additionalConnectedPins": [
"TP8.1",
"TP9.1"
],
"missingComponents": [],
"mismatches": []
},
"historicalRoute": {
"traces": 184,
"vias": 157,
"nativeErrors": 0,
"scope": "Before the C11092 footprint/courtyard correction; not the current build"
},
"displayConnectorCorrection": {
"part": "AFC07-S24ECC-00",
"supplierPartNumber": "C11092",
"nativeFootprint": "footprints/AFC07_S24ECC_00.tsx",
"model": "assets/EasyEDA_C11092_AFC07_S24ECC_00.step",
"datasheet": "https://datasheet.lcsc.com/datasheet/pdf/93c085d9b9b74e9ba64fc7ed436b255b.pdf?productCode=C11092",
"method": "Native exact-footprint EasyEDA import, followed by physical PCB clearance corrections. No authored signal routes or schematic coordinates.",
"clearanceConflicts": []
},
"board": {
"layers": 2,
"thicknessMm": 1,
"requestedStackup": "Two layers as requested; not the official four-layer v3 stackup."
},
"usbConnectorCorrection": {
"part": "U-F-M5DD-Y-L",
"supplierPartNumber": "C91146",
"nativeFootprint": "footprints/U_F_M5DD_Y_L.tsx",
"model": "assets/EasyEDA_C91146_U_F_M5DD_Y_L.step",
"suppliedModelRegistrationChecked": true,
"exactPurchasedPartEnvelopeCertified": false,
"nativePcbIntersectionMm3": 0,
"registrationReport": "reports/usb-registration.json"
},
"prCandidateReport": "reports/tscircuit-pr-candidates.json",
"currentRenders": {
"pcbTop": "outputs/two-layer-routed-top.png",
"pcbBottom": "outputs/two-layer-routed-bottom.png",
"schematic": "outputs/two-layer-schematic.png",
"threeD": "dist/index/__snapshots__/circuit-3d.snap.png"
},
"displayRegistrationReport": "reports/display-registration.json"
}