biscuitboard 1.0.5 → 1.0.7
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.
- package/README.md +18 -17
- package/dist/npm.cjs +134 -123
- package/dist/npm.cjs.map +1 -1
- package/dist/npm.d.cts +46 -72
- package/dist/npm.d.ts +46 -72
- package/dist/npm.js +126 -117
- package/dist/npm.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -217,11 +217,13 @@ upper-right clad hole clears the D0-D7 header. Relative placement remains
|
|
|
217
217
|
official UNO R3 geometry for the 1x8 power header, 1x6 analog header, 1x8
|
|
218
218
|
D0-D7 header, 1x10 R3 digital/AREF/I2C header, and 2x3 ICSP socket.
|
|
219
219
|
|
|
220
|
-
The
|
|
221
|
-
center-to-center pitch.
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
220
|
+
The 226 assignable fixed vias use 0.3 mm drills, 0.6 mm copper pads, and 1.3 mm
|
|
221
|
+
center-to-center pitch. A 130-via central routing field spanning -19 to -3 mm
|
|
222
|
+
is retained. Three corners use compact three-via-wide L-shaped fields; the
|
|
223
|
+
upper-right uses one three-row horizontal arm parallel to its two mounting
|
|
224
|
+
holes and lowered around the crowded UNO header region. The area immediately
|
|
225
|
+
left of ICSP, the header rows, and the original clad mounting holes remain
|
|
226
|
+
open. The bare template and its
|
|
225
227
|
checked-in PCB snapshot are in
|
|
226
228
|
[`examples/arduino-shield-clad.tsx`](./examples/arduino-shield-clad.tsx).
|
|
227
229
|
|
|
@@ -308,18 +310,17 @@ bun test tests/feather-clad.test.tsx
|
|
|
308
310
|
[`BreadboardClad`](./lib/breadboard-clad.tsx) is a laser-routable 75 mm x
|
|
309
311
|
55 mm plug-in prototyping board. It provides 210 individually routable female
|
|
310
312
|
header sockets labeled A1 through J21, with the standard 2.54 mm terminal pitch
|
|
311
|
-
and a 7.62 mm DIP channel.
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
The
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
`BreadboardPowerHeader` exposes `COL1` through `COL21`. The bare preview is in
|
|
313
|
+
and a 7.62 mm DIP channel. Unlike a solderless breadboard, none of these
|
|
314
|
+
sockets are connected in groups: the consuming tscircuit design defines every
|
|
315
|
+
connection, allowing the corresponding copper traces to be laser cut for a
|
|
316
|
+
particular circuit.
|
|
317
|
+
|
|
318
|
+
The 148 assignable prefabricated vias have 0.3 mm holes and 0.6 mm pads. Two
|
|
319
|
+
21-via rows sit beyond the terminal fields, two 21-via rows run through the
|
|
320
|
+
central DIP channel, and four two-via-wide L-shaped corner fields provide 64
|
|
321
|
+
additional vias. The socket grid remains clear.
|
|
322
|
+
`BreadboardTerminalHeaders` exposes terminal aliases such as `A1` and `J21`.
|
|
323
|
+
The bare preview is in
|
|
323
324
|
[`examples/breadboard-clad.tsx`](./examples/breadboard-clad.tsx).
|
|
324
325
|
|
|
325
326
|
```sh
|
package/dist/npm.cjs
CHANGED
|
@@ -785,15 +785,18 @@ __export(npm_exports, {
|
|
|
785
785
|
BREADBOARD_CLAD_WIDTH: () => BREADBOARD_CLAD_WIDTH,
|
|
786
786
|
BREADBOARD_COLUMN_COUNT: () => BREADBOARD_COLUMN_COUNT,
|
|
787
787
|
BREADBOARD_COLUMN_XS: () => BREADBOARD_COLUMN_XS,
|
|
788
|
+
BREADBOARD_CORNER_VIA_ARM_WIDTH: () => BREADBOARD_CORNER_VIA_ARM_WIDTH,
|
|
789
|
+
BREADBOARD_CORNER_VIA_POSITIONS: () => BREADBOARD_CORNER_VIA_POSITIONS,
|
|
790
|
+
BREADBOARD_CORNER_VIA_SPACING: () => BREADBOARD_CORNER_VIA_SPACING,
|
|
791
|
+
BREADBOARD_CORNER_VIA_X_INNER_OFFSET: () => BREADBOARD_CORNER_VIA_X_INNER_OFFSET,
|
|
792
|
+
BREADBOARD_CORNER_VIA_X_OUTER_OFFSET: () => BREADBOARD_CORNER_VIA_X_OUTER_OFFSET,
|
|
793
|
+
BREADBOARD_CORNER_VIA_X_OUTWARD_SHIFT: () => BREADBOARD_CORNER_VIA_X_OUTWARD_SHIFT,
|
|
794
|
+
BREADBOARD_CORNER_VIA_Y_INNER_OFFSET: () => BREADBOARD_CORNER_VIA_Y_INNER_OFFSET,
|
|
795
|
+
BREADBOARD_CORNER_VIA_Y_OUTER_OFFSET: () => BREADBOARD_CORNER_VIA_Y_OUTER_OFFSET,
|
|
788
796
|
BREADBOARD_HEADER_HOLE_DIAMETER: () => BREADBOARD_HEADER_HOLE_DIAMETER,
|
|
789
797
|
BREADBOARD_HEADER_PAD_DIAMETER: () => BREADBOARD_HEADER_PAD_DIAMETER,
|
|
790
798
|
BREADBOARD_HEADER_PITCH: () => BREADBOARD_HEADER_PITCH,
|
|
791
799
|
BREADBOARD_MOUNTING_HOLE_DIAMETER: () => BREADBOARD_MOUNTING_HOLE_DIAMETER,
|
|
792
|
-
BREADBOARD_OUTER_VERTICAL_VIA_YS: () => BREADBOARD_OUTER_VERTICAL_VIA_YS,
|
|
793
|
-
BREADBOARD_OUTER_VIA_COLUMN_XS: () => BREADBOARD_OUTER_VIA_COLUMN_XS,
|
|
794
|
-
BREADBOARD_OUTER_VIA_ROW_YS: () => BREADBOARD_OUTER_VIA_ROW_YS,
|
|
795
|
-
BREADBOARD_POWER_HEADER_POSITIONS: () => BREADBOARD_POWER_HEADER_POSITIONS,
|
|
796
|
-
BREADBOARD_POWER_RAILS: () => BREADBOARD_POWER_RAILS,
|
|
797
800
|
BREADBOARD_TERMINAL_HEADER_POSITIONS: () => BREADBOARD_TERMINAL_HEADER_POSITIONS,
|
|
798
801
|
BREADBOARD_TERMINAL_ROW_LABELS: () => BREADBOARD_TERMINAL_ROW_LABELS,
|
|
799
802
|
BREADBOARD_TERMINAL_ROW_YS: () => BREADBOARD_TERMINAL_ROW_YS,
|
|
@@ -803,7 +806,6 @@ __export(npm_exports, {
|
|
|
803
806
|
BoosterPackLeftHeader: () => BoosterPackLeftHeader,
|
|
804
807
|
BoosterPackRightHeader: () => BoosterPackRightHeader,
|
|
805
808
|
BreadboardClad: () => BreadboardClad,
|
|
806
|
-
BreadboardPowerHeader: () => BreadboardPowerHeader,
|
|
807
809
|
BreadboardTerminalHeaders: () => BreadboardTerminalHeaders,
|
|
808
810
|
CLAD_40X40_EDGE_MOUNTING_HOLE_INSET: () => CLAD_40X40_EDGE_MOUNTING_HOLE_INSET,
|
|
809
811
|
CLAD_40X40_HEIGHT: () => CLAD_40X40_HEIGHT,
|
|
@@ -14524,41 +14526,46 @@ var ARDUINO_SHIELD_CLAD_VIA_SPACING = 1.3;
|
|
|
14524
14526
|
var ARDUINO_SHIELD_EDGE_CLEARANCE = 0.2;
|
|
14525
14527
|
var ARDUINO_SHIELD_EDGE_CLEARANCE_VALIDATION_TOLERANCE = 1e-3;
|
|
14526
14528
|
var rangeInclusive = (start, end, increment) => Array.from(
|
|
14527
|
-
{
|
|
14529
|
+
{
|
|
14530
|
+
length: Math.max(0, Math.floor((end - start) / increment + 1e-9) + 1)
|
|
14531
|
+
},
|
|
14528
14532
|
(_, index) => Math.round((start + index * increment) * 1e6) / 1e6
|
|
14529
14533
|
);
|
|
14530
14534
|
var createViaZone2 = (zone) => rangeInclusive(zone.minX, zone.maxX, zone.spacing).flatMap(
|
|
14531
14535
|
(x) => rangeInclusive(zone.minY, zone.maxY, zone.spacing).map((y) => ({ x, y }))
|
|
14532
14536
|
);
|
|
14533
14537
|
var ARDUINO_SHIELD_CLAD_VIA_CANDIDATE_ZONES = [
|
|
14538
|
+
// Upper-left horizontal and vertical arms.
|
|
14534
14539
|
{
|
|
14535
|
-
minX: -
|
|
14536
|
-
maxX: -
|
|
14537
|
-
minY:
|
|
14538
|
-
maxY:
|
|
14540
|
+
minX: -36.1,
|
|
14541
|
+
maxX: -29.6,
|
|
14542
|
+
minY: 19.7,
|
|
14543
|
+
maxY: 22.3,
|
|
14539
14544
|
spacing: ARDUINO_SHIELD_CLAD_VIA_SPACING
|
|
14540
14545
|
},
|
|
14541
14546
|
{
|
|
14542
|
-
minX: -
|
|
14543
|
-
maxX: -
|
|
14544
|
-
minY:
|
|
14545
|
-
maxY:
|
|
14547
|
+
minX: -32.2,
|
|
14548
|
+
maxX: -29.6,
|
|
14549
|
+
minY: 19.7,
|
|
14550
|
+
maxY: 26.2,
|
|
14546
14551
|
spacing: ARDUINO_SHIELD_CLAD_VIA_SPACING
|
|
14547
14552
|
},
|
|
14553
|
+
// Lower-left horizontal and vertical arms.
|
|
14548
14554
|
{
|
|
14549
|
-
minX: -
|
|
14550
|
-
maxX: -
|
|
14551
|
-
minY:
|
|
14552
|
-
maxY:
|
|
14555
|
+
minX: -36.1,
|
|
14556
|
+
maxX: -29.6,
|
|
14557
|
+
minY: -22.3,
|
|
14558
|
+
maxY: -19.7,
|
|
14553
14559
|
spacing: ARDUINO_SHIELD_CLAD_VIA_SPACING
|
|
14554
14560
|
},
|
|
14555
14561
|
{
|
|
14556
|
-
minX: -
|
|
14557
|
-
maxX: -
|
|
14558
|
-
minY: -
|
|
14559
|
-
maxY: -
|
|
14562
|
+
minX: -32.2,
|
|
14563
|
+
maxX: -29.6,
|
|
14564
|
+
minY: -26.2,
|
|
14565
|
+
maxY: -19.7,
|
|
14560
14566
|
spacing: ARDUINO_SHIELD_CLAD_VIA_SPACING
|
|
14561
14567
|
},
|
|
14568
|
+
// Preserve the large central routing field exactly.
|
|
14562
14569
|
{
|
|
14563
14570
|
minX: -19,
|
|
14564
14571
|
maxX: -3,
|
|
@@ -14566,18 +14573,27 @@ var ARDUINO_SHIELD_CLAD_VIA_CANDIDATE_ZONES = [
|
|
|
14566
14573
|
maxY: 6,
|
|
14567
14574
|
spacing: ARDUINO_SHIELD_CLAD_VIA_SPACING
|
|
14568
14575
|
},
|
|
14576
|
+
// Upper-right horizontal arm, parallel to the two mounting holes.
|
|
14569
14577
|
{
|
|
14570
|
-
minX:
|
|
14571
|
-
maxX:
|
|
14572
|
-
minY:
|
|
14573
|
-
maxY:
|
|
14578
|
+
minX: 30.9,
|
|
14579
|
+
maxX: 36.1,
|
|
14580
|
+
minY: 19.7,
|
|
14581
|
+
maxY: 22.3,
|
|
14574
14582
|
spacing: ARDUINO_SHIELD_CLAD_VIA_SPACING
|
|
14575
14583
|
},
|
|
14584
|
+
// Lower-right horizontal and vertical arms.
|
|
14576
14585
|
{
|
|
14577
|
-
minX:
|
|
14578
|
-
maxX:
|
|
14579
|
-
minY:
|
|
14580
|
-
maxY: 19.
|
|
14586
|
+
minX: 29.6,
|
|
14587
|
+
maxX: 36.1,
|
|
14588
|
+
minY: -22.3,
|
|
14589
|
+
maxY: -19.7,
|
|
14590
|
+
spacing: ARDUINO_SHIELD_CLAD_VIA_SPACING
|
|
14591
|
+
},
|
|
14592
|
+
{
|
|
14593
|
+
minX: 29.6,
|
|
14594
|
+
maxX: 32.2,
|
|
14595
|
+
minY: -26.2,
|
|
14596
|
+
maxY: -19.7,
|
|
14581
14597
|
spacing: ARDUINO_SHIELD_CLAD_VIA_SPACING
|
|
14582
14598
|
}
|
|
14583
14599
|
];
|
|
@@ -14894,17 +14910,23 @@ var ArduinoShieldClad = ({
|
|
|
14894
14910
|
fontSize: "0.6mm"
|
|
14895
14911
|
}
|
|
14896
14912
|
),
|
|
14897
|
-
ARDUINO_SHIELD_CLAD_VIA_CANDIDATE_ZONES.map((zone) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
14898
|
-
|
|
14913
|
+
ARDUINO_SHIELD_CLAD_VIA_CANDIDATE_ZONES.map((zone) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
14914
|
+
import_react2.Fragment,
|
|
14899
14915
|
{
|
|
14900
|
-
|
|
14901
|
-
|
|
14902
|
-
|
|
14903
|
-
|
|
14904
|
-
|
|
14905
|
-
|
|
14906
|
-
|
|
14907
|
-
|
|
14916
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
14917
|
+
"pcbnoterect",
|
|
14918
|
+
{
|
|
14919
|
+
color: "blue",
|
|
14920
|
+
width: Math.max(0.2, zone.maxX - zone.minX),
|
|
14921
|
+
height: Math.max(0.2, zone.maxY - zone.minY),
|
|
14922
|
+
pcbPositionAnchor: "center",
|
|
14923
|
+
pcbX: zone.minX + (zone.maxX - zone.minX) / 2,
|
|
14924
|
+
pcbY: zone.minY + (zone.maxY - zone.minY) / 2
|
|
14925
|
+
}
|
|
14926
|
+
)
|
|
14927
|
+
},
|
|
14928
|
+
`arduino-via-zone-${zone.minX}-${zone.maxX}-${zone.minY}-${zone.maxY}`
|
|
14929
|
+
)),
|
|
14908
14930
|
ARDUINO_SHIELD_CLAD_VIA_POSITIONS.map((via) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react2.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
14909
14931
|
"via",
|
|
14910
14932
|
{
|
|
@@ -15587,8 +15609,13 @@ var BREADBOARD_CLAD_VIA_ROW_YS = [
|
|
|
15587
15609
|
BREADBOARD_HEADER_PITCH / 2,
|
|
15588
15610
|
16.51
|
|
15589
15611
|
];
|
|
15590
|
-
var
|
|
15591
|
-
var
|
|
15612
|
+
var BREADBOARD_CORNER_VIA_SPACING = 1.3;
|
|
15613
|
+
var BREADBOARD_CORNER_VIA_ARM_WIDTH = 1.3;
|
|
15614
|
+
var BREADBOARD_CORNER_VIA_X_INNER_OFFSET = 27;
|
|
15615
|
+
var BREADBOARD_CORNER_VIA_X_OUTER_OFFSET = 32.2;
|
|
15616
|
+
var BREADBOARD_CORNER_VIA_Y_INNER_OFFSET = 21;
|
|
15617
|
+
var BREADBOARD_CORNER_VIA_Y_OUTER_OFFSET = 26.2;
|
|
15618
|
+
var BREADBOARD_CORNER_VIA_X_OUTWARD_SHIFT = 3.9;
|
|
15592
15619
|
var BREADBOARD_MOUNTING_HOLE_DIAMETER = 2.2;
|
|
15593
15620
|
var BREADBOARD_CLAD_EDGE_CLEARANCE = 0.2;
|
|
15594
15621
|
var BREADBOARD_CLAD_EDGE_CLEARANCE_VALIDATION_TOLERANCE = 1e-3;
|
|
@@ -15606,16 +15633,18 @@ var BREADBOARD_TERMINAL_ROW_LABELS = [
|
|
|
15606
15633
|
"J"
|
|
15607
15634
|
];
|
|
15608
15635
|
var roundCoordinate3 = (value) => Math.round(value * 1e6) / 1e6;
|
|
15636
|
+
var createPitchedRange = (start, end) => Array.from(
|
|
15637
|
+
{
|
|
15638
|
+
length: Math.round((end - start) / BREADBOARD_CORNER_VIA_SPACING) + 1
|
|
15639
|
+
},
|
|
15640
|
+
(_, index) => roundCoordinate3(start + index * BREADBOARD_CORNER_VIA_SPACING)
|
|
15641
|
+
);
|
|
15609
15642
|
var BREADBOARD_COLUMN_XS = Array.from(
|
|
15610
15643
|
{ length: BREADBOARD_COLUMN_COUNT },
|
|
15611
15644
|
(_, index) => roundCoordinate3(
|
|
15612
15645
|
(index - (BREADBOARD_COLUMN_COUNT - 1) / 2) * BREADBOARD_HEADER_PITCH
|
|
15613
15646
|
)
|
|
15614
15647
|
);
|
|
15615
|
-
var BREADBOARD_OUTER_VERTICAL_VIA_YS = Array.from(
|
|
15616
|
-
{ length: 18 },
|
|
15617
|
-
(_, index) => roundCoordinate3(-21.59 + index * BREADBOARD_CLAD_VIA_PITCH)
|
|
15618
|
-
);
|
|
15619
15648
|
var BREADBOARD_TERMINAL_ROW_YS = Object.fromEntries(
|
|
15620
15649
|
BREADBOARD_TERMINAL_ROW_LABELS.map((label, index) => {
|
|
15621
15650
|
const bankIndex = index < 5 ? index : index - 5;
|
|
@@ -15632,32 +15661,61 @@ var BREADBOARD_TERMINAL_HEADER_POSITIONS = BREADBOARD_TERMINAL_ROW_LABELS.flatMa
|
|
|
15632
15661
|
y: BREADBOARD_TERMINAL_ROW_YS[row]
|
|
15633
15662
|
}))
|
|
15634
15663
|
);
|
|
15635
|
-
var
|
|
15636
|
-
|
|
15637
|
-
|
|
15638
|
-
|
|
15639
|
-
|
|
15640
|
-
|
|
15641
|
-
|
|
15642
|
-
|
|
15643
|
-
|
|
15644
|
-
|
|
15645
|
-
|
|
15646
|
-
|
|
15647
|
-
|
|
15648
|
-
|
|
15649
|
-
|
|
15664
|
+
var cornerViaAxisX = createPitchedRange(
|
|
15665
|
+
BREADBOARD_CORNER_VIA_X_INNER_OFFSET,
|
|
15666
|
+
BREADBOARD_CORNER_VIA_X_OUTER_OFFSET
|
|
15667
|
+
);
|
|
15668
|
+
var cornerViaAxisY = createPitchedRange(
|
|
15669
|
+
BREADBOARD_CORNER_VIA_Y_INNER_OFFSET,
|
|
15670
|
+
BREADBOARD_CORNER_VIA_Y_OUTER_OFFSET
|
|
15671
|
+
);
|
|
15672
|
+
var cornerViaArmAxisX = createPitchedRange(
|
|
15673
|
+
BREADBOARD_CORNER_VIA_X_INNER_OFFSET,
|
|
15674
|
+
BREADBOARD_CORNER_VIA_X_INNER_OFFSET + BREADBOARD_CORNER_VIA_ARM_WIDTH
|
|
15675
|
+
);
|
|
15676
|
+
var cornerViaArmAxisY = createPitchedRange(
|
|
15677
|
+
BREADBOARD_CORNER_VIA_Y_INNER_OFFSET,
|
|
15678
|
+
BREADBOARD_CORNER_VIA_Y_INNER_OFFSET + BREADBOARD_CORNER_VIA_ARM_WIDTH
|
|
15679
|
+
);
|
|
15680
|
+
var createCornerViaPositions = (xSign, ySign, xOutwardShift = 0) => {
|
|
15681
|
+
const shiftedCornerViaAxisX = cornerViaAxisX.map(
|
|
15682
|
+
(x) => roundCoordinate3(x + xOutwardShift)
|
|
15683
|
+
);
|
|
15684
|
+
const shiftedCornerViaArmAxisX = cornerViaArmAxisX.map(
|
|
15685
|
+
(x) => roundCoordinate3(x + xOutwardShift)
|
|
15686
|
+
);
|
|
15687
|
+
const horizontalArm = shiftedCornerViaAxisX.flatMap(
|
|
15688
|
+
(x) => cornerViaArmAxisY.map((y) => ({ x: x * xSign, y: y * ySign }))
|
|
15689
|
+
);
|
|
15690
|
+
const verticalArm = shiftedCornerViaArmAxisX.flatMap(
|
|
15691
|
+
(x) => cornerViaAxisY.map((y) => ({ x: x * xSign, y: y * ySign }))
|
|
15692
|
+
);
|
|
15693
|
+
return Array.from(
|
|
15694
|
+
new Map(
|
|
15695
|
+
[...horizontalArm, ...verticalArm].map((point) => [
|
|
15696
|
+
`${point.x},${point.y}`,
|
|
15697
|
+
point
|
|
15698
|
+
])
|
|
15699
|
+
).values()
|
|
15700
|
+
);
|
|
15701
|
+
};
|
|
15702
|
+
var BREADBOARD_CORNER_VIA_POSITIONS = [
|
|
15703
|
+
[-1, -1],
|
|
15704
|
+
[-1, 1],
|
|
15705
|
+
[1, -1],
|
|
15706
|
+
[1, 1]
|
|
15707
|
+
].flatMap(
|
|
15708
|
+
([xSign, ySign]) => createCornerViaPositions(
|
|
15709
|
+
xSign,
|
|
15710
|
+
ySign,
|
|
15711
|
+
xSign === -1 || ySign === -1 ? BREADBOARD_CORNER_VIA_X_OUTWARD_SHIFT : 0
|
|
15712
|
+
)
|
|
15650
15713
|
);
|
|
15651
15714
|
var BREADBOARD_CLAD_VIA_POSITIONS = [
|
|
15652
15715
|
...BREADBOARD_CLAD_VIA_ROW_YS.flatMap(
|
|
15653
15716
|
(y) => BREADBOARD_COLUMN_XS.map((x) => ({ x, y }))
|
|
15654
15717
|
),
|
|
15655
|
-
...
|
|
15656
|
-
(y) => BREADBOARD_COLUMN_XS.map((x) => ({ x, y }))
|
|
15657
|
-
),
|
|
15658
|
-
...BREADBOARD_OUTER_VIA_COLUMN_XS.flatMap(
|
|
15659
|
-
(x) => BREADBOARD_OUTER_VERTICAL_VIA_YS.map((y) => ({ x, y }))
|
|
15660
|
-
)
|
|
15718
|
+
...BREADBOARD_CORNER_VIA_POSITIONS
|
|
15661
15719
|
];
|
|
15662
15720
|
var terminalPinLabels = Object.fromEntries(
|
|
15663
15721
|
BREADBOARD_TERMINAL_HEADER_POSITIONS.map((position) => [
|
|
@@ -15665,16 +15723,9 @@ var terminalPinLabels = Object.fromEntries(
|
|
|
15665
15723
|
[position.label]
|
|
15666
15724
|
])
|
|
15667
15725
|
);
|
|
15668
|
-
var powerPinLabels = Object.fromEntries(
|
|
15669
|
-
BREADBOARD_COLUMN_XS.map((_, index) => [
|
|
15670
|
-
`pin${index + 1}`,
|
|
15671
|
-
[`COL${index + 1}`]
|
|
15672
|
-
])
|
|
15673
|
-
);
|
|
15674
15726
|
var terminalPinNames = BREADBOARD_TERMINAL_HEADER_POSITIONS.map(
|
|
15675
15727
|
(position) => `pin${position.pin}`
|
|
15676
15728
|
);
|
|
15677
|
-
var powerPinNames = BREADBOARD_COLUMN_XS.map((_, index) => `pin${index + 1}`);
|
|
15678
15729
|
var BreadboardTerminalHeaderFootprint = () => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("footprint", { insertionDirection: "from_above", children: BREADBOARD_TERMINAL_HEADER_POSITIONS.map((position) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react4.Fragment, { children: position.pin === 1 ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
15679
15730
|
"platedhole",
|
|
15680
15731
|
{
|
|
@@ -15697,26 +15748,6 @@ var BreadboardTerminalHeaderFootprint = () => /* @__PURE__ */ (0, import_jsx_run
|
|
|
15697
15748
|
pcbY: position.y
|
|
15698
15749
|
}
|
|
15699
15750
|
) }, `terminal-${position.label}`)) });
|
|
15700
|
-
var BreadboardPowerHeaderFootprint = () => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("footprint", { insertionDirection: "from_above", children: BREADBOARD_COLUMN_XS.map((x, index) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react4.Fragment, { children: index === 0 ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
15701
|
-
"platedhole",
|
|
15702
|
-
{
|
|
15703
|
-
portHints: [`pin${index + 1}`],
|
|
15704
|
-
shape: "circular_hole_with_rect_pad",
|
|
15705
|
-
holeDiameter: `${BREADBOARD_HEADER_HOLE_DIAMETER}mm`,
|
|
15706
|
-
rectPadWidth: `${BREADBOARD_HEADER_PAD_DIAMETER}mm`,
|
|
15707
|
-
rectPadHeight: `${BREADBOARD_HEADER_PAD_DIAMETER}mm`,
|
|
15708
|
-
pcbX: x
|
|
15709
|
-
}
|
|
15710
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
15711
|
-
"platedhole",
|
|
15712
|
-
{
|
|
15713
|
-
portHints: [`pin${index + 1}`],
|
|
15714
|
-
shape: "circle",
|
|
15715
|
-
holeDiameter: `${BREADBOARD_HEADER_HOLE_DIAMETER}mm`,
|
|
15716
|
-
outerDiameter: `${BREADBOARD_HEADER_PAD_DIAMETER}mm`,
|
|
15717
|
-
pcbX: x
|
|
15718
|
-
}
|
|
15719
|
-
) }, `power-pin-${index + 1}`)) });
|
|
15720
15751
|
var BreadboardTerminalHeaders = (props) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
15721
15752
|
"connector",
|
|
15722
15753
|
{
|
|
@@ -15727,20 +15758,6 @@ var BreadboardTerminalHeaders = (props) => /* @__PURE__ */ (0, import_jsx_runtim
|
|
|
15727
15758
|
...props
|
|
15728
15759
|
}
|
|
15729
15760
|
);
|
|
15730
|
-
var BreadboardPowerHeader = ({
|
|
15731
|
-
rail,
|
|
15732
|
-
...props
|
|
15733
|
-
}) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
15734
|
-
"connector",
|
|
15735
|
-
{
|
|
15736
|
-
pinLabels: powerPinLabels,
|
|
15737
|
-
manufacturerPartNumber: "GENERIC-BREADBOARD-1X21-FEMALE-2.54MM",
|
|
15738
|
-
footprint: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(BreadboardPowerHeaderFootprint, {}),
|
|
15739
|
-
noSchematicRepresentation: true,
|
|
15740
|
-
pcbY: BREADBOARD_POWER_RAILS.find((candidate) => candidate.id === rail).y,
|
|
15741
|
-
...props
|
|
15742
|
-
}
|
|
15743
|
-
);
|
|
15744
15761
|
var BreadboardClad = ({
|
|
15745
15762
|
children,
|
|
15746
15763
|
autorouter,
|
|
@@ -15789,14 +15806,6 @@ var BreadboardClad = ({
|
|
|
15789
15806
|
noConnect: headerNoConnects?.terminals ?? (markHeadersNoConnect ? terminalPinNames : void 0)
|
|
15790
15807
|
}
|
|
15791
15808
|
),
|
|
15792
|
-
BREADBOARD_POWER_RAILS.map((rail) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react4.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
15793
|
-
BreadboardPowerHeader,
|
|
15794
|
-
{
|
|
15795
|
-
rail: rail.id,
|
|
15796
|
-
name: `J_${rail.id.replace(/([A-Z])/g, "_$1").toUpperCase()}`,
|
|
15797
|
-
noConnect: headerNoConnects?.[rail.id] ?? (markHeadersNoConnect ? powerPinNames : void 0)
|
|
15798
|
-
}
|
|
15799
|
-
) }, rail.id)),
|
|
15800
15809
|
[1, 5, 10, 15, 20, BREADBOARD_COLUMN_COUNT].map((column) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react4.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
15801
15810
|
"silkscreentext",
|
|
15802
15811
|
{
|
|
@@ -16498,15 +16507,18 @@ var XiaoCladWithPerforatedPinHeaders = ({
|
|
|
16498
16507
|
BREADBOARD_CLAD_WIDTH,
|
|
16499
16508
|
BREADBOARD_COLUMN_COUNT,
|
|
16500
16509
|
BREADBOARD_COLUMN_XS,
|
|
16510
|
+
BREADBOARD_CORNER_VIA_ARM_WIDTH,
|
|
16511
|
+
BREADBOARD_CORNER_VIA_POSITIONS,
|
|
16512
|
+
BREADBOARD_CORNER_VIA_SPACING,
|
|
16513
|
+
BREADBOARD_CORNER_VIA_X_INNER_OFFSET,
|
|
16514
|
+
BREADBOARD_CORNER_VIA_X_OUTER_OFFSET,
|
|
16515
|
+
BREADBOARD_CORNER_VIA_X_OUTWARD_SHIFT,
|
|
16516
|
+
BREADBOARD_CORNER_VIA_Y_INNER_OFFSET,
|
|
16517
|
+
BREADBOARD_CORNER_VIA_Y_OUTER_OFFSET,
|
|
16501
16518
|
BREADBOARD_HEADER_HOLE_DIAMETER,
|
|
16502
16519
|
BREADBOARD_HEADER_PAD_DIAMETER,
|
|
16503
16520
|
BREADBOARD_HEADER_PITCH,
|
|
16504
16521
|
BREADBOARD_MOUNTING_HOLE_DIAMETER,
|
|
16505
|
-
BREADBOARD_OUTER_VERTICAL_VIA_YS,
|
|
16506
|
-
BREADBOARD_OUTER_VIA_COLUMN_XS,
|
|
16507
|
-
BREADBOARD_OUTER_VIA_ROW_YS,
|
|
16508
|
-
BREADBOARD_POWER_HEADER_POSITIONS,
|
|
16509
|
-
BREADBOARD_POWER_RAILS,
|
|
16510
16522
|
BREADBOARD_TERMINAL_HEADER_POSITIONS,
|
|
16511
16523
|
BREADBOARD_TERMINAL_ROW_LABELS,
|
|
16512
16524
|
BREADBOARD_TERMINAL_ROW_YS,
|
|
@@ -16516,7 +16528,6 @@ var XiaoCladWithPerforatedPinHeaders = ({
|
|
|
16516
16528
|
BoosterPackLeftHeader,
|
|
16517
16529
|
BoosterPackRightHeader,
|
|
16518
16530
|
BreadboardClad,
|
|
16519
|
-
BreadboardPowerHeader,
|
|
16520
16531
|
BreadboardTerminalHeaders,
|
|
16521
16532
|
CLAD_40X40_EDGE_MOUNTING_HOLE_INSET,
|
|
16522
16533
|
CLAD_40X40_HEIGHT,
|