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
mechanical/geometry-checks.json
{
"dimensions": {
"outerDiameter": 72,
"cavityDiameter": 62.4,
"frontZ": -17.2,
"rearZ": 15.5,
"rearCeilingZ": 13.5,
"harnessPocket": {
"center": [
0,
-20.3
],
"outerSize": [
26,
10.8
],
"innerSize": [
23.4,
8.2
],
"roofZ": 15.5,
"ceilingZ": 13.5
},
"pcbRadius": 30,
"pcbThickness": 1.6,
"lensCenter": [
0,
3.5
],
"boardMounts": [
[
-21,
-16
],
[
-20,
19
],
[
21,
-16
],
[
20,
19
]
],
"boardFastener": {
"centers": [
[
-21,
-16
],
[
-20,
19
],
[
21,
-16
],
[
20,
19
]
],
"clearanceDiameter": 3.2,
"surfaceKeepoutRadius": 3,
"bossRadius": 2.8,
"pilotDiameter": 2.5,
"pilotEndZ": 6.8,
"screwDiameter": 3,
"screwLength": 6,
"screwHeadDiameter": 5.7,
"screwHeadHeight": 1.65
},
"caseMounts": [
[
2.0206672185931327e-15,
33
],
[
-28.578838324886473,
-16.500000000000004
],
[
28.578838324886465,
-16.500000000000014
]
],
"caseFastener": {
"nominalDiameter": 2,
"nominalLength": 16,
"headDiameter": 4,
"headHeight": 1.6,
"clearanceDiameter": 2.3,
"counterboreDiameter": 4.4,
"seatZ": 8.2,
"pilotDiameter": 1.7,
"pilotBottomZ": -9.2,
"bossTopZ": -3,
"bossRadius": 2.5
},
"buttonCenters": [
[
24,
-8
]
],
"microphonePcbPort": [
20.7314605,
0
],
"microphoneFacePort": [
19,
0
],
"neckBore": 6.5,
"neckCenterZ": 3,
"neckEndY": -43
},
"baseDimensions": {
"baseSize": [
58,
92,
26
],
"baseCenter": [
0,
-158,
-176
],
"batteryEnvelope": [
40,
50,
8
],
"batteryCenter": [
0,
-163,
-181
],
"speakerEnvelope": [
35,
25,
7.7
],
"speakerCenter": [
0,
-178,
-169
],
"neckOuterDiameter": 6,
"neckClearBore": 4,
"bendRadius": 60,
"neckCenterlineLength": 244.2477796076938,
"neckBaseAxis": [
0,
-130
],
"hingeCenter": [
0,
-181,
-197
],
"harnessPinOrder": [
"VBAT",
"GND",
"NTC",
"NTC_RETURN",
"SPK_P",
"SPK_N",
"ASK_REMOTE",
"PWR_REMOTE"
],
"chatSwitchCenter": [
-15,
-128
],
"powerSwitchCenter": [
16,
-125
]
},
"cameraFit": {
"dimensions": {
"sku": "114993115",
"revision": "MJY5OAF-F3M-V1 / 2023-06-20",
"source": "https://files.seeedstudio.com/wiki/OV5640_for_ESP32S3_sense/OV5640_Datasheet.pdf",
"productSource": "https://www.seeedstudio.com/OV5640-Camera-for-XIAO-ESP32S3-Sense-With-Heat-Sink-p-5739.html",
"overallFlatLength": 70.5,
"overallLengthTolerance": 0.2,
"bodyWidth": 8.5,
"bodyHeight": 5.4,
"bodyTolerance": 0.2,
"flexWidth": 6,
"flexThickness": 0.12,
"flexThicknessTolerance": 0.03,
"tailWidth": 12.5,
"tailLength": 4,
"tailThickness": 0.3,
"tailThicknessTolerance": 0.03,
"contactCount": 24,
"contactPitch": 0.5,
"contactLength": 2.5,
"heatSinkSize": [
7,
6,
7
],
"adhesiveAllowance": 0.15,
"lensCenter": [
0,
3.5
],
"lensFrontZ": -16.7,
"moduleRearZ": -11.3,
"flexCenterZ": -11.56,
"connectorMouthY": -7.61101965,
"connectorTipY": -10.1,
"connectorFlexZ": -1.9,
"returnBendY": -4.6,
"minimumBendRadiusAssumed": 2.4
},
"fold": {
"freeFlexLength": 62,
"centerlineLength": 62.00000000000001,
"bendRadius": 2.415,
"innerRadiusAtMaxThickness": 2.34,
"foldCount": 2,
"tailStraightLength": 4,
"lowerTurnY": -23.33805374158065,
"lowestY": -25.75305374158065,
"stiffenerStartY": -6.1,
"nominalInsertionDepth": 2.4889803499999994,
"endpoint": [
0,
-10.1,
-1.9
],
"contactFace": "+Z (toward PCB); pin-1 orientation requires sample confirmation"
},
"connectorReview": {
"status": "DO NOT RELEASE: current J2 tail geometry is not a documented match",
"connector": "FH12-24S-0.5SH(55)",
"source": "https://www.hirose.com/en/product/series/FH12/documents?path=/api/v1/series/FH12/documents/product_series_catalog/content?lang%3DEN",
"sourcePage": 10,
"recommendedContactLengthMin": 3.5,
"seeedContactLength": 2.5,
"recommendedStiffenerLengthMin": 4.5,
"seeedStiffenerLength": 4,
"recommendedTailWidthTolerance": 0.07,
"seeedTailWidthTolerance": 0.1,
"action": "Select a connector documented for this shorter camera tail (or get explicit manufacturer approval), then recheck insertion height, contact side, pin 1 and folded route. The displayed J2 insertion is a packaging placeholder, not proof of mating."
},
"readyForManufacture": false,
"shellDepthMm": 32.7,
"previousFit": {
"shellDepthMm": 22,
"suppliedHeatSinkPcbIntersectionMm3": 30.720000000000002,
"suppliedHeatSinkRetainerIntersectionMm3": 12.287999999999998,
"result": "Does not fit: supplied 7 mm heatsink crosses PCB and original retaining strap"
},
"matingOverlaps": [
{
"part": "wifi-antenna-coax",
"component": "U1",
"volumeMm3": 9.348509830698148,
"note": "U.FL plug and feed within the upper-right socket recess only; sample engagement required"
},
{
"part": "head-harness-plug",
"component": "J3",
"volumeMm3": 386.07473008495697,
"note": "XHP-8 inserted housing in B8B-XH socket envelope; dimensioned reference, sample fit required"
},
{
"part": "camera-flex",
"component": "J2",
"volumeMm3": 9.468081251399976,
"note": "Inserted tongue inside connector bounding envelope; physical slot and pin-1 need sample confirmation"
}
],
"clearances": [
{
"candidate": "flex-max-tolerance",
"target": "front-bezel",
"gapMm": 0.4500000000000002,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "camera-retainer",
"gapMm": 0.395885084057814,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "PCB substrate",
"gapMm": 0.9349999999999998,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "U14",
"gapMm": 2.946208539474154,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "U15",
"gapMm": 2.5349999999999997,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "U16",
"gapMm": 2.535,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "U17",
"gapMm": 2.5349999999999997,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "R39",
"gapMm": 2.6272271052698994,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "R40",
"gapMm": 2.535,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "R41",
"gapMm": 2.5350000000000006,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "C40",
"gapMm": 2.535,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "U3",
"gapMm": 2.5437011122860316,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "R25",
"gapMm": 2.535,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "C4",
"gapMm": 2.6769852452206835,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "C5",
"gapMm": 2.535,
"overlapMm3": 0
},
{
"candidate": "flex-max-tolerance",
"target": "J2",
"gapMm": 0.011019650000005043,
"overlapMm3": 0,
"note": "Expected inserted contact tongue excluded"
},
{
"candidate": "flex-max-tolerance",
"target": "L1",
"gapMm": 2.53512327116454,
"overlapMm3": 0
},
{
"candidate": "heatsink-full-envelope",
"target": "front-bezel",
"gapMm": 1.1101801655587256,
"overlapMm3": 0
},
{
"candidate": "heatsink-full-envelope",
"target": "camera-retainer",
"gapMm": 0.3999999999999999,
"overlapMm3": 0
}
],
"conclusion": "Enclosure space passes, but current J2 mating geometry is not a documented match. Bend radius, adhesive, shipped revision, insertion/pin-1 and thermal performance require physical qualification."
},
"antennaFit": {
"dimensions": {
"manufacturer": "Ezurio",
"partNumber": "001-0014",
"reference": "ANT1",
"source": "https://www.ezurio.com/documentation/datasheet-24-ghz-flexpifa",
"purchase": "https://www.digikey.com/en/products/detail/ezurio/001-0014/4732758",
"frequencyMHz": [
2400,
2480
],
"impedanceOhm": 50,
"peakGainDbi": 2,
"bodyLength": 40.12,
"width": 11,
"height": 2.5,
"overallWidthWithCable": 41.25,
"nominalAssemblyLength": 100,
"assemblyLengthTolerancePlus": 5,
"nominalExposedCablePath": 89,
"cableDiameterAssumed": 1.13,
"cableBendRadiusAssumed": 3,
"center": [
0,
8.5
],
"adhesivePlaneZ": 7,
"mainElementTopZ": 9.5,
"trayBottomZ": 5.5,
"trayThickness": 1.5,
"pocketRoofZ": 15.5,
"pocketCeilingZ": 13.5,
"pocketInnerSize": [
48,
15.6
],
"plasticTopClearance": 3,
"plasticSideClearance": 2,
"plasticGroundWallClearance": 1,
"metalTopClearance": 10,
"metalSideClearance": 5,
"socketCenter": [
6,
19.785,
1.6
],
"connectorMatedTopZ": 4.1,
"orientation": "Adhesive ground face toward PCB (-Z); main element faces rear (+Z); feed/ground wall at +X"
},
"cableModeledLengthMm": 88.99999999999997,
"clearanceViolations": [],
"plasticRoofGapMm": 4,
"pcbCopperChangeRequired": false,
"rfPerformanceValidated": false,
"note": "Exact supplier antenna and mounting clearance modeled. Cable OD/bend and connector seating are packaging assumptions; Wi-Fi range, final gain and tuning require a physical assembly."
},
"bezelStudy": {
"previousFrontZ": -18,
"frontZ": -17.2,
"reductionMm": 0.8000000000000007,
"cupDepthMm": 14,
"previousCupDepthMm": 14.8,
"printedPartHeightMm": 16.099999999999998,
"previousPrintedPartHeightMm": 16.9,
"bodyShellDepthMm": 32.7,
"maximumHeadDepthMm": 32.7,
"lensRecessNominalMm": 0.5,
"lensRecessWorstBodyToleranceMm": 0.3000000000000007,
"cameraRearZ": -11.3,
"cameraFoldRadiusMm": 2.415,
"note": "Camera, supplied heatsink and flex stay fixed. More than 0.8 mm reduction needs a revised camera/flex/thermal stack or an exposed/protruding lens."
},
"parts": [
{
"id": "rear-housing",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 25511.721228383238,
"bounds": [
[
-36,
-43,
-3.000000000000001
],
[
36,
36,
15.5
]
],
"triangles": 11062,
"nonManifoldEdges": 0
},
{
"id": "front-bezel",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 20494.196894436463,
"bounds": [
[
-36,
-36,
-17.2
],
[
36,
36,
-1.1
]
],
"triangles": 10088,
"nonManifoldEdges": 0
},
{
"id": "head-case-screw-1",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 63.72164739738485,
"bounds": [
[
-1.999999999999998,
31,
-7.800000000000001
],
[
2.000000000000002,
35,
9.8
]
],
"triangles": 1198,
"nonManifoldEdges": 0
},
{
"id": "head-case-screw-2",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 63.721647397384835,
"bounds": [
[
-30.578838324886473,
-18.500000000000004,
-7.800000000000001
],
[
-26.578838324886473,
-14.500000000000004,
9.8
]
],
"triangles": 1198,
"nonManifoldEdges": 0
},
{
"id": "head-case-screw-3",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 63.721647397384835,
"bounds": [
[
26.578838324886465,
-18.500000000000014,
-7.800000000000001
],
[
30.578838324886465,
-14.500000000000014,
9.8
]
],
"triangles": 1198,
"nonManifoldEdges": 0
},
{
"id": "pcb-mount-screw-1",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 70.441132274741,
"bounds": [
[
-23.85,
-18.85,
-2.45
],
[
-18.15,
-13.15,
5.2
]
],
"triangles": 1532,
"nonManifoldEdges": 0
},
{
"id": "pcb-mount-screw-2",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 70.441132274741,
"bounds": [
[
-22.85,
16.15,
-2.45
],
[
-17.15,
21.85,
5.2
]
],
"triangles": 1532,
"nonManifoldEdges": 0
},
{
"id": "pcb-mount-screw-3",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 70.441132274741,
"bounds": [
[
18.15,
-18.85,
-2.45
],
[
23.85,
-13.15,
5.2
]
],
"triangles": 1532,
"nonManifoldEdges": 0
},
{
"id": "pcb-mount-screw-4",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 70.441132274741,
"bounds": [
[
17.15,
16.15,
-2.45
],
[
22.85,
21.85,
5.2
]
],
"triangles": 1532,
"nonManifoldEdges": 0
},
{
"id": "camera-retainer",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 63.4902180069013,
"bounds": [
[
-10.5,
-1.5999999999999996,
-11.3
],
[
10.5,
8.6,
-10.5
]
],
"triangles": 868,
"nonManifoldEdges": 0
},
{
"id": "light-cap",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 170.2166445462191,
"bounds": [
[
20.2,
-11.8,
4.799999999999999
],
[
27.8,
-4.2,
17
]
],
"triangles": 2428,
"nonManifoldEdges": 0
},
{
"id": "diffuser-1",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 89.27695055270988,
"bounds": [
[
21.8,
-4.7,
-17.2
],
[
28.2,
4.7,
-14.799999999999999
]
],
"triangles": 780,
"nonManifoldEdges": 0
},
{
"id": "diffuser-2",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 89.27695055270986,
"bounds": [
[
8.000961894323346,
17.700635094610966,
-17.2
],
[
16.99903810567666,
25.600635094610965,
-14.799999999999999
]
],
"triangles": 780,
"nonManifoldEdges": 0
},
{
"id": "diffuser-3",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 89.27695055270985,
"bounds": [
[
-16.999038105676654,
17.70063509461097,
-17.2
],
[
-8.00096189432334,
25.60063509461097,
-14.799999999999999
]
],
"triangles": 780,
"nonManifoldEdges": 0
},
{
"id": "diffuser-4",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 89.27695055270988,
"bounds": [
[
-28.2,
-4.6999999999999975,
-17.2
],
[
-21.8,
4.700000000000003,
-14.799999999999999
]
],
"triangles": 780,
"nonManifoldEdges": 0
},
{
"id": "diffuser-5",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 89.27695055270983,
"bounds": [
[
-16.999038105676668,
-25.600635094610958,
-17.2
],
[
-8.000961894323353,
-17.70063509461096,
-14.799999999999999
]
],
"triangles": 780,
"nonManifoldEdges": 0
},
{
"id": "diffuser-6",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 89.27695055270985,
"bounds": [
[
8.000961894323346,
-25.600635094610965,
-17.2
],
[
16.99903810567666,
-17.700635094610966,
-14.799999999999999
]
],
"triangles": 780,
"nonManifoldEdges": 0
},
{
"id": "indicator-pipe-1",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 44.50068154696471,
"bounds": [
[
11.35,
17.35,
2.200000000000001
],
[
14.65,
20.65,
15.6
]
],
"triangles": 1148,
"nonManifoldEdges": 0
},
{
"id": "indicator-pipe-2",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 44.50068154696471,
"bounds": [
[
-25.65,
-11.65,
2.200000000000001
],
[
-22.35,
-8.35,
15.6
]
],
"triangles": 1148,
"nonManifoldEdges": 0
},
{
"id": "camera-reference",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 347.70846124415425,
"bounds": [
[
-4.25,
-0.75,
-16.705
],
[
4.25,
7.75,
-11.3
]
],
"triangles": 796,
"nonManifoldEdges": 0
},
{
"id": "camera-heatsink",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 157.2,
"bounds": [
[
-3.5,
0.5,
-11.15
],
[
3.5,
6.5,
-4.15
]
],
"triangles": 76,
"nonManifoldEdges": 0
},
{
"id": "camera-thermal-pad",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 6.299999999999947,
"bounds": [
[
-3.5,
0.5,
-11.3
],
[
3.5,
6.5,
-11.150000000000002
]
],
"triangles": 12,
"nonManifoldEdges": 0
},
{
"id": "camera-flex",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 56.893049391528336,
"bounds": [
[
-6.25,
-25.813053742051125,
-11.619999997317791
],
[
6.25,
-0.75,
-1.7425
]
],
"triangles": 1976,
"nonManifoldEdges": 0
},
{
"id": "antenna-tray",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 1126.371379006596,
"bounds": [
[
-27,
1.5,
5.5
],
[
27,
15.5,
7
]
],
"triangles": 788,
"nonManifoldEdges": 0
},
{
"id": "antenna-tray-screw-1",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 12.554501897784041,
"bounds": [
[
-27.5,
7,
4.300000000000001
],
[
-24.5,
10,
8.5
]
],
"triangles": 1202,
"nonManifoldEdges": 0
},
{
"id": "antenna-tray-screw-2",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 12.554501897784041,
"bounds": [
[
24.5,
7,
4.300000000000001
],
[
27.5,
10,
8.5
]
],
"triangles": 1202,
"nonManifoldEdges": 0
},
{
"id": "wifi-antenna",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 122.83590000000076,
"bounds": [
[
-20.06,
3,
7
],
[
20.06,
14,
9.5
]
],
"triangles": 42,
"nonManifoldEdges": 0
},
{
"id": "wifi-antenna-coax",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 92.68728263212266,
"bounds": [
[
-12.565,
-6.1958102811791935,
2.75
],
[
21.265011658935755,
25.065,
8.815049754142082
]
],
"triangles": 11824,
"nonManifoldEdges": 14
},
{
"id": "head-harness-plug",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 725.5738934585573,
"bounds": [
[
-11.15,
-23.6,
3.0999999999999996
],
[
11.15,
-17.85,
10.6
]
],
"triangles": 3136,
"nonManifoldEdges": 0
},
{
"id": "gooseneck",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 2985.289501793091,
"bounds": [
[
-3,
-133,
-169.07999999999998
],
[
3,
-32.05,
6
]
],
"triangles": 25682,
"nonManifoldEdges": 32
},
{
"id": "clip-base-tray",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 31478.272079071092,
"bounds": [
[
-29,
-204,
-202
],
[
29,
-112,
-165.2
]
],
"triangles": 4406,
"nonManifoldEdges": 0
},
{
"id": "clip-base-lid",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 11635.797332501557,
"bounds": [
[
-29,
-204,
-172
],
[
29,
-112,
-153
]
],
"triangles": 9912,
"nonManifoldEdges": 0
},
{
"id": "clip-lower-jaw",
"printable": true,
"connectedSolids": 1,
"volumeMm3": 14586.03659810045,
"bounds": [
[
-26,
-201,
-207
],
[
26,
-115,
-192.2
]
],
"triangles": 932,
"nonManifoldEdges": 0
},
{
"id": "clip-upper-pad",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 1903.4755238984867,
"bounds": [
[
-20,
-163,
-190.2
],
[
20,
-123,
-189
]
],
"triangles": 428,
"nonManifoldEdges": 0
},
{
"id": "clip-lower-pad",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 1903.4755238984803,
"bounds": [
[
-20,
-163,
-204
],
[
20,
-123,
-202.8
]
],
"triangles": 428,
"nonManifoldEdges": 0
},
{
"id": "clip-hinge-pin",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 567.5466843102563,
"bounds": [
[
-28.2,
-182.8,
-198.8
],
[
28.2,
-179.2,
-195.2
]
],
"triangles": 92,
"nonManifoldEdges": 0
},
{
"id": "clip-torsion-spring",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 49.86489300837146,
"bounds": [
[
-5.460003315819925,
-184.65808586042024,
-202.95614206936776
],
[
5.4605510420708,
-168.6274763692852,
-190.25215820263065
]
],
"triangles": 6212,
"nonManifoldEdges": 0
},
{
"id": "base-battery-pack",
"printable": false,
"connectedSolids": 4,
"volumeMm3": 16871.549011183753,
"bounds": [
[
-20,
-188,
-185
],
[
20,
-134.29999999999998,
-176.84
]
],
"triangles": 540,
"nonManifoldEdges": 0
},
{
"id": "base-speaker",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 6725.254054226273,
"bounds": [
[
-17.5,
-190.5,
-172.85
],
[
17.5,
-165.5,
-165.08
]
],
"triangles": 1202,
"nonManifoldEdges": 0
},
{
"id": "battery-temperature-sensor",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 6.100453439543496,
"bounds": [
[
-13.2,
-156.5,
-176.85
],
[
-10.8,
-153.5,
-175.95000000000002
]
],
"triangles": 522,
"nonManifoldEdges": 0
},
{
"id": "base-chat-switch",
"printable": false,
"connectedSolids": 2,
"volumeMm3": 2714.9162346046505,
"bounds": [
[
-23.75,
-136.75,
-175.8
],
[
-6.25,
-119.25,
-156
]
],
"triangles": 1948,
"nonManifoldEdges": 0
},
{
"id": "base-power-switch",
"printable": false,
"connectedSolids": 6,
"volumeMm3": 1253.0183767530073,
"bounds": [
[
11.3,
-131.35,
-179.85
],
[
20.7,
-118.65,
-147.70760326502779
]
],
"triangles": 2068,
"nonManifoldEdges": 0
},
{
"id": "harness-wire-1",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 255.87494183444178,
"bounds": [
[
-9.3,
-136.11742589854515,
-176.78068618861744
],
[
-0.19999999999999996,
-19.75,
11.950181019606122
]
],
"triangles": 3066,
"nonManifoldEdges": 40
},
{
"id": "harness-wire-2",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 264.1368690598779,
"bounds": [
[
-12.11593930637804,
-135.9846252489448,
-180.5791305096113
],
[
16.152470328950546,
-19.75,
11.950173178813776
]
],
"triangles": 3570,
"nonManifoldEdges": 40
},
{
"id": "harness-wire-3",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 180.4702819780106,
"bounds": [
[
-13.004531968570198,
-153.22711950723397,
-176.84829507222486
],
[
-0.55,
-19.85,
11.84995740965828
]
],
"triangles": 3242,
"nonManifoldEdges": 38
},
{
"id": "harness-wire-4",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 180.84200702674877,
"bounds": [
[
-12.538428967430573,
-153.35930900429204,
-176.69429793387735
],
[
-0.55,
-19.85,
11.849955724645096
]
],
"triangles": 3828,
"nonManifoldEdges": 40
},
{
"id": "harness-wire-5",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 187.15942573950352,
"bounds": [
[
-6.4431071804575275,
-165.1346370034955,
-173.69888696417812
],
[
1.7,
-19.85,
12.572598592491085
]
],
"triangles": 3640,
"nonManifoldEdges": 40
},
{
"id": "harness-wire-6",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 190.20245264386014,
"bounds": [
[
-2.574107420851913,
-165.11824447680655,
-175.325
],
[
6.446691825894314,
-19.85,
13.075
]
],
"triangles": 4146,
"nonManifoldEdges": 34
},
{
"id": "harness-wire-7",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 185.09359599480717,
"bounds": [
[
-18.298515538931383,
-131.5752498506067,
-176.8250946560703
],
[
6.7,
-19.79983106639226,
13.20000110619333
]
],
"triangles": 5056,
"nonManifoldEdges": 38
},
{
"id": "harness-wire-8",
"printable": false,
"connectedSolids": 1,
"volumeMm3": 182.78154472356434,
"bounds": [
[
0.55,
-129.3252498506067,
-180.8501857666765
],
[
16.088773454102952,
-16.55,
11.849696563072822
]
],
"triangles": 3658,
"nonManifoldEdges": 40
}
],
"rearRoofChecks": {
"outerPlaneZ": 15.5,
"innerPlaneZ": 13.5,
"thicknessMm": 2,
"continuousRoof": true,
"noRaisedPockets": true
},
"headFastenerChecks": [
{
"center": [
2.0206672185931327e-15,
33
],
"entry": "rear (+Z)",
"rearAccessClear": true,
"headCounterboreClear": true,
"headSeatSupported": true,
"frontFaceClosed": true,
"blindPilotClear": true,
"frontFloorMm": 8,
"engagementMm": 4.800000000000001,
"tipClearanceMm": 1.3999999999999986,
"headRecessMm": 5.700000000000001
},
{
"center": [
-28.578838324886473,
-16.500000000000004
],
"entry": "rear (+Z)",
"rearAccessClear": true,
"headCounterboreClear": true,
"headSeatSupported": true,
"frontFaceClosed": true,
"blindPilotClear": true,
"frontFloorMm": 8,
"engagementMm": 4.800000000000001,
"tipClearanceMm": 1.3999999999999986,
"headRecessMm": 5.700000000000001
},
{
"center": [
28.578838324886465,
-16.500000000000014
],
"entry": "rear (+Z)",
"rearAccessClear": true,
"headCounterboreClear": true,
"headSeatSupported": true,
"frontFaceClosed": true,
"blindPilotClear": true,
"frontFloorMm": 8,
"engagementMm": 4.800000000000001,
"tipClearanceMm": 1.3999999999999986,
"headRecessMm": 5.700000000000001
}
],
"boardFastenerChecks": [
{
"center": [
-21,
-16
],
"clearanceDiameterMm": 3.2,
"screw": "M3 x 6 button head",
"supportIntact": true,
"pilotClear": true,
"bezelHeadClear": true,
"engagementMm": 4.4,
"tipClearanceMm": 1.5999999999999996,
"note": "Tap printed pilots M3; install internally before bezel. Printed threads and torque need sample qualification."
},
{
"center": [
-20,
19
],
"clearanceDiameterMm": 3.2,
"screw": "M3 x 6 button head",
"supportIntact": true,
"pilotClear": true,
"bezelHeadClear": true,
"engagementMm": 4.4,
"tipClearanceMm": 1.5999999999999996,
"note": "Tap printed pilots M3; install internally before bezel. Printed threads and torque need sample qualification."
},
{
"center": [
21,
-16
],
"clearanceDiameterMm": 3.2,
"screw": "M3 x 6 button head",
"supportIntact": true,
"pilotClear": true,
"bezelHeadClear": true,
"engagementMm": 4.4,
"tipClearanceMm": 1.5999999999999996,
"note": "Tap printed pilots M3; install internally before bezel. Printed threads and torque need sample qualification."
},
{
"center": [
20,
19
],
"clearanceDiameterMm": 3.2,
"screw": "M3 x 6 button head",
"supportIntact": true,
"pilotClear": true,
"bezelHeadClear": true,
"engagementMm": 4.4,
"tipClearanceMm": 1.5999999999999996,
"note": "Tap printed pilots M3; install internally before bezel. Printed threads and torque need sample qualification."
}
],
"intersections": [],
"boardIntersections": []
}