biscuitboard 1.0.18 → 1.0.19
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 +35 -0
- package/dist/npm.cjs +610 -50
- package/dist/npm.cjs.map +1 -1
- package/dist/npm.d.cts +87 -1
- package/dist/npm.d.ts +87 -1
- package/dist/npm.js +582 -50
- package/dist/npm.js.map +1 -1
- package/package.json +5 -2
package/dist/npm.cjs
CHANGED
|
@@ -776,6 +776,33 @@ __export(npm_exports, {
|
|
|
776
776
|
BOOSTERPACK_MIDDLE_VIA_CLUSTER_CENTER_X: () => BOOSTERPACK_MIDDLE_VIA_CLUSTER_CENTER_X,
|
|
777
777
|
BOOSTERPACK_MIDDLE_VIA_CLUSTER_HEIGHT: () => BOOSTERPACK_MIDDLE_VIA_CLUSTER_HEIGHT,
|
|
778
778
|
BOOSTERPACK_MIDDLE_VIA_CLUSTER_WIDTH: () => BOOSTERPACK_MIDDLE_VIA_CLUSTER_WIDTH,
|
|
779
|
+
BREADBOARD_08MM_BOTTOM_BANK_ROWS: () => BREADBOARD_08MM_BOTTOM_BANK_ROWS,
|
|
780
|
+
BREADBOARD_08MM_BREAKOUT_LANE_SPACING: () => BREADBOARD_08MM_BREAKOUT_LANE_SPACING,
|
|
781
|
+
BREADBOARD_08MM_BREAKOUT_PAD_DIAMETER: () => BREADBOARD_08MM_BREAKOUT_PAD_DIAMETER,
|
|
782
|
+
BREADBOARD_08MM_BREAKOUT_TRACE_WIDTH: () => BREADBOARD_08MM_BREAKOUT_TRACE_WIDTH,
|
|
783
|
+
BREADBOARD_08MM_BREAKOUT_WEAVE_OFFSET: () => BREADBOARD_08MM_BREAKOUT_WEAVE_OFFSET,
|
|
784
|
+
BREADBOARD_08MM_CORNER_VIA_ARM_WIDTH: () => BREADBOARD_08MM_CORNER_VIA_ARM_WIDTH,
|
|
785
|
+
BREADBOARD_08MM_CORNER_VIA_ARM_X_INNER_OFFSET: () => BREADBOARD_08MM_CORNER_VIA_ARM_X_INNER_OFFSET,
|
|
786
|
+
BREADBOARD_08MM_CORNER_VIA_LONG_SIDE_COLUMNS: () => BREADBOARD_08MM_CORNER_VIA_LONG_SIDE_COLUMNS,
|
|
787
|
+
BREADBOARD_08MM_CORNER_VIA_SPACING: () => BREADBOARD_08MM_CORNER_VIA_SPACING,
|
|
788
|
+
BREADBOARD_08MM_CORNER_VIA_X_INNER_OFFSET: () => BREADBOARD_08MM_CORNER_VIA_X_INNER_OFFSET,
|
|
789
|
+
BREADBOARD_08MM_CORNER_VIA_X_OUTER_OFFSET: () => BREADBOARD_08MM_CORNER_VIA_X_OUTER_OFFSET,
|
|
790
|
+
BREADBOARD_08MM_CORNER_VIA_X_OUTWARD_SHIFT: () => BREADBOARD_08MM_CORNER_VIA_X_OUTWARD_SHIFT,
|
|
791
|
+
BREADBOARD_08MM_CORNER_VIA_Y_INNER_OFFSET: () => BREADBOARD_08MM_CORNER_VIA_Y_INNER_OFFSET,
|
|
792
|
+
BREADBOARD_08MM_CORNER_VIA_Y_OUTER_OFFSET: () => BREADBOARD_08MM_CORNER_VIA_Y_OUTER_OFFSET,
|
|
793
|
+
BREADBOARD_08MM_EDGE_HUG_COLUMN_COUNT: () => BREADBOARD_08MM_EDGE_HUG_COLUMN_COUNT,
|
|
794
|
+
BREADBOARD_08MM_EDGE_HUG_Y_SHIFT: () => BREADBOARD_08MM_EDGE_HUG_Y_SHIFT,
|
|
795
|
+
BREADBOARD_08MM_MIN_VIA_EDGE_SPACING: () => BREADBOARD_08MM_MIN_VIA_EDGE_SPACING,
|
|
796
|
+
BREADBOARD_08MM_ROW_BREAKOUTS: () => BREADBOARD_08MM_ROW_BREAKOUTS,
|
|
797
|
+
BREADBOARD_08MM_ROW_BREAKOUT_LENGTH: () => BREADBOARD_08MM_ROW_BREAKOUT_LENGTH,
|
|
798
|
+
BREADBOARD_08MM_ROW_CONNECTIONS: () => BREADBOARD_08MM_ROW_CONNECTIONS,
|
|
799
|
+
BREADBOARD_08MM_ROW_TRACE_WIDTH: () => BREADBOARD_08MM_ROW_TRACE_WIDTH,
|
|
800
|
+
BREADBOARD_08MM_TOP_BANK_ROWS: () => BREADBOARD_08MM_TOP_BANK_ROWS,
|
|
801
|
+
BREADBOARD_08MM_TOP_RIGHT_LONG_SIDE_COLUMNS: () => BREADBOARD_08MM_TOP_RIGHT_LONG_SIDE_COLUMNS,
|
|
802
|
+
BREADBOARD_08MM_VIA_BREAKOUT_LENGTH: () => BREADBOARD_08MM_VIA_BREAKOUT_LENGTH,
|
|
803
|
+
BREADBOARD_08MM_VIA_HOLE_DIAMETER: () => BREADBOARD_08MM_VIA_HOLE_DIAMETER,
|
|
804
|
+
BREADBOARD_08MM_VIA_PAD_DIAMETER: () => BREADBOARD_08MM_VIA_PAD_DIAMETER,
|
|
805
|
+
BREADBOARD_08MM_VIA_POSITIONS: () => BREADBOARD_08MM_VIA_POSITIONS,
|
|
779
806
|
BREADBOARD_CLAD_HEIGHT: () => BREADBOARD_CLAD_HEIGHT,
|
|
780
807
|
BREADBOARD_CLAD_VIA_HOLE_DIAMETER: () => BREADBOARD_CLAD_VIA_HOLE_DIAMETER,
|
|
781
808
|
BREADBOARD_CLAD_VIA_PAD_DIAMETER: () => BREADBOARD_CLAD_VIA_PAD_DIAMETER,
|
|
@@ -806,6 +833,7 @@ __export(npm_exports, {
|
|
|
806
833
|
BoosterPackLeftHeader: () => BoosterPackLeftHeader,
|
|
807
834
|
BoosterPackRightHeader: () => BoosterPackRightHeader,
|
|
808
835
|
BreadboardClad: () => BreadboardClad,
|
|
836
|
+
BreadboardClad08mmVias: () => BreadboardClad08mmVias,
|
|
809
837
|
BreadboardTerminalHeaders: () => BreadboardTerminalHeaders,
|
|
810
838
|
CLAD_32X32_EDGE_CONNECTOR_OPENING: () => CLAD_32X32_EDGE_CONNECTOR_OPENING,
|
|
811
839
|
CLAD_32X32_HEIGHT: () => CLAD_32X32_HEIGHT,
|
|
@@ -15894,9 +15922,513 @@ var BreadboardClad = ({
|
|
|
15894
15922
|
}
|
|
15895
15923
|
);
|
|
15896
15924
|
|
|
15897
|
-
// lib/
|
|
15925
|
+
// lib/breadboard-clad-0.8mm-vias.tsx
|
|
15898
15926
|
var import_react5 = require("react");
|
|
15899
15927
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
15928
|
+
var BREADBOARD_08MM_VIA_HOLE_DIAMETER = 0.8;
|
|
15929
|
+
var BREADBOARD_08MM_VIA_PAD_DIAMETER = 0.9;
|
|
15930
|
+
var BREADBOARD_08MM_MIN_VIA_EDGE_SPACING = 2;
|
|
15931
|
+
var BREADBOARD_08MM_BREAKOUT_TRACE_WIDTH = 0.15;
|
|
15932
|
+
var BREADBOARD_08MM_ROW_TRACE_WIDTH = 0.3;
|
|
15933
|
+
var BREADBOARD_08MM_BREAKOUT_PAD_DIAMETER = 0.3;
|
|
15934
|
+
var BREADBOARD_08MM_CORNER_VIA_SPACING = 3;
|
|
15935
|
+
var BREADBOARD_08MM_CORNER_VIA_ARM_WIDTH = 3;
|
|
15936
|
+
var BREADBOARD_08MM_CORNER_VIA_ARM_X_INNER_OFFSET = 25;
|
|
15937
|
+
var BREADBOARD_08MM_CORNER_VIA_LONG_SIDE_COLUMNS = 5;
|
|
15938
|
+
var BREADBOARD_08MM_TOP_RIGHT_LONG_SIDE_COLUMNS = 6;
|
|
15939
|
+
var BREADBOARD_08MM_CORNER_VIA_X_OUTER_OFFSET = 31;
|
|
15940
|
+
var BREADBOARD_08MM_CORNER_VIA_X_INNER_OFFSET = BREADBOARD_08MM_CORNER_VIA_X_OUTER_OFFSET - (BREADBOARD_08MM_CORNER_VIA_LONG_SIDE_COLUMNS - 1) * BREADBOARD_08MM_CORNER_VIA_SPACING;
|
|
15941
|
+
var BREADBOARD_08MM_CORNER_VIA_Y_INNER_OFFSET = 19;
|
|
15942
|
+
var BREADBOARD_08MM_CORNER_VIA_Y_OUTER_OFFSET = 25;
|
|
15943
|
+
var BREADBOARD_08MM_CORNER_VIA_X_OUTWARD_SHIFT = 3;
|
|
15944
|
+
var BREADBOARD_08MM_EDGE_HUG_COLUMN_COUNT = 2;
|
|
15945
|
+
var BREADBOARD_08MM_EDGE_HUG_Y_SHIFT = BREADBOARD_08MM_CORNER_VIA_SPACING;
|
|
15946
|
+
var BREADBOARD_08MM_BREAKOUT_WEAVE_OFFSET = 0.8;
|
|
15947
|
+
var BREADBOARD_08MM_BREAKOUT_LANE_SPACING = 0.4;
|
|
15948
|
+
var BREADBOARD_08MM_VIA_BREAKOUT_LENGTH = 1;
|
|
15949
|
+
var BREADBOARD_08MM_ROW_BREAKOUT_LENGTH = 1.2;
|
|
15950
|
+
var BREADBOARD_08MM_CLAD_EDGE_CLEARANCE = 0.2;
|
|
15951
|
+
var BREADBOARD_08MM_CLAD_EDGE_CLEARANCE_VALIDATION_TOLERANCE = 1e-3;
|
|
15952
|
+
var BREADBOARD_08MM_BOTTOM_BEHIND_VIA_LANE_START_OFFSET = 1.2;
|
|
15953
|
+
var BREADBOARD_08MM_BOTTOM_BEHIND_VIA_LANE_SPACING = 0.4;
|
|
15954
|
+
var BREADBOARD_08MM_TOP_BANK_ROWS = [
|
|
15955
|
+
"A",
|
|
15956
|
+
"B",
|
|
15957
|
+
"C",
|
|
15958
|
+
"D",
|
|
15959
|
+
"E"
|
|
15960
|
+
];
|
|
15961
|
+
var BREADBOARD_08MM_BOTTOM_BANK_ROWS = [
|
|
15962
|
+
"F",
|
|
15963
|
+
"G",
|
|
15964
|
+
"H",
|
|
15965
|
+
"I",
|
|
15966
|
+
"J"
|
|
15967
|
+
];
|
|
15968
|
+
var roundCoordinate4 = (value) => Math.round(value * 1e6) / 1e6;
|
|
15969
|
+
var createPitchedRange2 = (start, end) => Array.from(
|
|
15970
|
+
{
|
|
15971
|
+
length: Math.round((end - start) / BREADBOARD_08MM_CORNER_VIA_SPACING) + 1
|
|
15972
|
+
},
|
|
15973
|
+
(_, index) => roundCoordinate4(start + index * BREADBOARD_08MM_CORNER_VIA_SPACING)
|
|
15974
|
+
);
|
|
15975
|
+
var cornerViaAxisX2 = createPitchedRange2(
|
|
15976
|
+
BREADBOARD_08MM_CORNER_VIA_X_INNER_OFFSET,
|
|
15977
|
+
BREADBOARD_08MM_CORNER_VIA_X_OUTER_OFFSET
|
|
15978
|
+
);
|
|
15979
|
+
var cornerViaArmAxisX2 = createPitchedRange2(
|
|
15980
|
+
BREADBOARD_08MM_CORNER_VIA_ARM_X_INNER_OFFSET,
|
|
15981
|
+
BREADBOARD_08MM_CORNER_VIA_ARM_X_INNER_OFFSET + BREADBOARD_08MM_CORNER_VIA_ARM_WIDTH
|
|
15982
|
+
);
|
|
15983
|
+
var cornerViaArmAxisY2 = createPitchedRange2(
|
|
15984
|
+
BREADBOARD_08MM_CORNER_VIA_Y_INNER_OFFSET,
|
|
15985
|
+
BREADBOARD_08MM_CORNER_VIA_Y_INNER_OFFSET + BREADBOARD_08MM_CORNER_VIA_ARM_WIDTH
|
|
15986
|
+
);
|
|
15987
|
+
var createCornerViaPositions2 = (corner, xSign, ySign) => {
|
|
15988
|
+
const xOutwardShift = xSign === -1 || ySign === -1 ? BREADBOARD_08MM_CORNER_VIA_X_OUTWARD_SHIFT : 0;
|
|
15989
|
+
const toBoardPoint = (point) => ({
|
|
15990
|
+
x: roundCoordinate4(point.x * xSign),
|
|
15991
|
+
y: roundCoordinate4(point.y * ySign)
|
|
15992
|
+
});
|
|
15993
|
+
const cornerLongSideAxisX = corner === "top_right" ? [
|
|
15994
|
+
...cornerViaAxisX2,
|
|
15995
|
+
BREADBOARD_08MM_CORNER_VIA_X_OUTER_OFFSET + BREADBOARD_08MM_CORNER_VIA_SPACING
|
|
15996
|
+
] : cornerViaAxisX2;
|
|
15997
|
+
const shiftedCornerViaAxisX = cornerLongSideAxisX.map(
|
|
15998
|
+
(x) => roundCoordinate4(x + xOutwardShift)
|
|
15999
|
+
);
|
|
16000
|
+
const shiftedCornerViaArmAxisX = cornerViaArmAxisX2.map(
|
|
16001
|
+
(x) => roundCoordinate4(x + xOutwardShift)
|
|
16002
|
+
);
|
|
16003
|
+
const verticalExtensionY = BREADBOARD_08MM_CORNER_VIA_Y_OUTER_OFFSET;
|
|
16004
|
+
const localVias = [
|
|
16005
|
+
...shiftedCornerViaAxisX.flatMap(
|
|
16006
|
+
(x, xIndex) => cornerViaArmAxisY2.map((y, yIndex) => ({
|
|
16007
|
+
nameSuffix: `H${xIndex + 1}_${yIndex === 0 ? "INNER" : "OUTER"}`,
|
|
16008
|
+
arm: "horizontal",
|
|
16009
|
+
x,
|
|
16010
|
+
y: y + (xIndex < BREADBOARD_08MM_EDGE_HUG_COLUMN_COUNT ? BREADBOARD_08MM_EDGE_HUG_Y_SHIFT : 0)
|
|
16011
|
+
}))
|
|
16012
|
+
),
|
|
16013
|
+
...shiftedCornerViaArmAxisX.map((x, xIndex) => ({
|
|
16014
|
+
nameSuffix: `V3_${xIndex === 0 ? "INNER" : "OUTER"}`,
|
|
16015
|
+
arm: "vertical",
|
|
16016
|
+
x,
|
|
16017
|
+
y: verticalExtensionY
|
|
16018
|
+
}))
|
|
16019
|
+
];
|
|
16020
|
+
const createBreakout = (via, openAreaEdge, layer) => {
|
|
16021
|
+
const innerX = shiftedCornerViaAxisX[0];
|
|
16022
|
+
const openCenterX = innerX - BREADBOARD_08MM_VIA_BREAKOUT_LENGTH;
|
|
16023
|
+
const openRowsY = BREADBOARD_08MM_CORNER_VIA_Y_INNER_OFFSET - BREADBOARD_08MM_VIA_BREAKOUT_LENGTH;
|
|
16024
|
+
const columnIndex = Math.round(
|
|
16025
|
+
(via.x - innerX) / BREADBOARD_08MM_CORNER_VIA_SPACING
|
|
16026
|
+
);
|
|
16027
|
+
if (layer === "top") {
|
|
16028
|
+
if (openAreaEdge === "toward_breadboard_rows") {
|
|
16029
|
+
if (via.y === BREADBOARD_08MM_CORNER_VIA_Y_INNER_OFFSET) {
|
|
16030
|
+
return {
|
|
16031
|
+
openAreaEdge,
|
|
16032
|
+
style: "direct",
|
|
16033
|
+
route: [],
|
|
16034
|
+
end: { x: via.x, y: openRowsY }
|
|
16035
|
+
};
|
|
16036
|
+
}
|
|
16037
|
+
const rowWeaveDirection = columnIndex % 2 === 0 ? -1 : 1;
|
|
16038
|
+
const weaveDirection = via.y === BREADBOARD_08MM_CORNER_VIA_Y_OUTER_OFFSET ? -rowWeaveDirection : rowWeaveDirection;
|
|
16039
|
+
const weaveX = via.x + weaveDirection * BREADBOARD_08MM_BREAKOUT_WEAVE_OFFSET;
|
|
16040
|
+
return {
|
|
16041
|
+
openAreaEdge,
|
|
16042
|
+
style: "woven",
|
|
16043
|
+
route: [
|
|
16044
|
+
{
|
|
16045
|
+
x: weaveX,
|
|
16046
|
+
y: via.y - BREADBOARD_08MM_BREAKOUT_WEAVE_OFFSET
|
|
16047
|
+
}
|
|
16048
|
+
],
|
|
16049
|
+
end: { x: weaveX, y: openRowsY }
|
|
16050
|
+
};
|
|
16051
|
+
}
|
|
16052
|
+
if (columnIndex === 0) {
|
|
16053
|
+
return {
|
|
16054
|
+
openAreaEdge,
|
|
16055
|
+
style: "direct",
|
|
16056
|
+
route: [],
|
|
16057
|
+
end: { x: openCenterX, y: via.y }
|
|
16058
|
+
};
|
|
16059
|
+
}
|
|
16060
|
+
const weaveY = via.y - BREADBOARD_08MM_BREAKOUT_WEAVE_OFFSET;
|
|
16061
|
+
return {
|
|
16062
|
+
openAreaEdge,
|
|
16063
|
+
style: "woven",
|
|
16064
|
+
route: [
|
|
16065
|
+
{
|
|
16066
|
+
x: via.x - BREADBOARD_08MM_BREAKOUT_WEAVE_OFFSET,
|
|
16067
|
+
y: weaveY
|
|
16068
|
+
}
|
|
16069
|
+
],
|
|
16070
|
+
end: { x: openCenterX, y: weaveY }
|
|
16071
|
+
};
|
|
16072
|
+
}
|
|
16073
|
+
if (openAreaEdge === "toward_board_center") {
|
|
16074
|
+
if (via.arm === "vertical") {
|
|
16075
|
+
const verticalArmIndex = shiftedCornerViaArmAxisX.indexOf(via.x);
|
|
16076
|
+
const behindViaLaneY = via.y + BREADBOARD_08MM_BOTTOM_BEHIND_VIA_LANE_START_OFFSET + verticalArmIndex * BREADBOARD_08MM_BOTTOM_BEHIND_VIA_LANE_SPACING;
|
|
16077
|
+
return {
|
|
16078
|
+
openAreaEdge,
|
|
16079
|
+
style: "woven",
|
|
16080
|
+
route: [
|
|
16081
|
+
{
|
|
16082
|
+
x: via.x - BREADBOARD_08MM_BREAKOUT_WEAVE_OFFSET,
|
|
16083
|
+
y: behindViaLaneY
|
|
16084
|
+
}
|
|
16085
|
+
],
|
|
16086
|
+
end: { x: openCenterX, y: behindViaLaneY }
|
|
16087
|
+
};
|
|
16088
|
+
}
|
|
16089
|
+
if (columnIndex === 0) {
|
|
16090
|
+
return {
|
|
16091
|
+
openAreaEdge,
|
|
16092
|
+
style: "direct",
|
|
16093
|
+
route: [],
|
|
16094
|
+
end: { x: openCenterX, y: via.y }
|
|
16095
|
+
};
|
|
16096
|
+
}
|
|
16097
|
+
const laneOffset = 0.7 + (columnIndex - 1) * BREADBOARD_08MM_BREAKOUT_LANE_SPACING;
|
|
16098
|
+
const laneY = via.y - laneOffset;
|
|
16099
|
+
return {
|
|
16100
|
+
openAreaEdge,
|
|
16101
|
+
style: "woven",
|
|
16102
|
+
route: [
|
|
16103
|
+
{
|
|
16104
|
+
x: via.x - BREADBOARD_08MM_BREAKOUT_WEAVE_OFFSET,
|
|
16105
|
+
y: laneY
|
|
16106
|
+
}
|
|
16107
|
+
],
|
|
16108
|
+
end: { x: openCenterX, y: laneY }
|
|
16109
|
+
};
|
|
16110
|
+
}
|
|
16111
|
+
const wrapLaneX = openCenterX - (via.y === BREADBOARD_08MM_CORNER_VIA_Y_OUTER_OFFSET ? columnIndex === 0 ? 1.6 : 2 : 0.4);
|
|
16112
|
+
const outerRowWeaveY = via.y + BREADBOARD_08MM_BREAKOUT_WEAVE_OFFSET;
|
|
16113
|
+
const route = via.y === BREADBOARD_08MM_CORNER_VIA_Y_OUTER_OFFSET && columnIndex > 0 ? [
|
|
16114
|
+
{
|
|
16115
|
+
x: via.x - BREADBOARD_08MM_BREAKOUT_WEAVE_OFFSET,
|
|
16116
|
+
y: outerRowWeaveY
|
|
16117
|
+
},
|
|
16118
|
+
{
|
|
16119
|
+
x: wrapLaneX,
|
|
16120
|
+
y: outerRowWeaveY
|
|
16121
|
+
}
|
|
16122
|
+
] : [{ x: wrapLaneX, y: via.y }];
|
|
16123
|
+
return {
|
|
16124
|
+
openAreaEdge,
|
|
16125
|
+
style: "woven",
|
|
16126
|
+
route,
|
|
16127
|
+
end: { x: wrapLaneX, y: openRowsY }
|
|
16128
|
+
};
|
|
16129
|
+
};
|
|
16130
|
+
const toBoardBreakout = (breakout) => ({
|
|
16131
|
+
openAreaEdge: breakout.openAreaEdge,
|
|
16132
|
+
style: breakout.style,
|
|
16133
|
+
route: breakout.route.map(toBoardPoint),
|
|
16134
|
+
end: toBoardPoint(breakout.end)
|
|
16135
|
+
});
|
|
16136
|
+
return localVias.map((via) => {
|
|
16137
|
+
const boardCenterDistance = via.x - shiftedCornerViaAxisX[0];
|
|
16138
|
+
const breadboardRowsDistance = via.y - BREADBOARD_08MM_CORNER_VIA_Y_INNER_OFFSET;
|
|
16139
|
+
const topOpenAreaEdge = boardCenterDistance < breadboardRowsDistance ? "toward_board_center" : "toward_breadboard_rows";
|
|
16140
|
+
const bottomOpenAreaEdge = topOpenAreaEdge === "toward_board_center" ? "toward_breadboard_rows" : "toward_board_center";
|
|
16141
|
+
return {
|
|
16142
|
+
name: `V_${corner.toUpperCase()}_${via.nameSuffix}`,
|
|
16143
|
+
corner,
|
|
16144
|
+
arm: via.arm,
|
|
16145
|
+
...toBoardPoint(via),
|
|
16146
|
+
topBreakout: toBoardBreakout(createBreakout(via, topOpenAreaEdge, "top")),
|
|
16147
|
+
bottomBreakout: toBoardBreakout(
|
|
16148
|
+
createBreakout(via, bottomOpenAreaEdge, "bottom")
|
|
16149
|
+
)
|
|
16150
|
+
};
|
|
16151
|
+
});
|
|
16152
|
+
};
|
|
16153
|
+
var BREADBOARD_08MM_VIA_POSITIONS = [
|
|
16154
|
+
["top_left", -1, 1],
|
|
16155
|
+
["top_right", 1, 1],
|
|
16156
|
+
["bottom_left", -1, -1],
|
|
16157
|
+
["bottom_right", 1, -1]
|
|
16158
|
+
].flatMap(
|
|
16159
|
+
([corner, xSign, ySign]) => createCornerViaPositions2(corner, xSign, ySign)
|
|
16160
|
+
);
|
|
16161
|
+
var createBankRowConnections = (rows, column) => rows.slice(0, -1).map((row, index) => ({
|
|
16162
|
+
from: `${row}${column}`,
|
|
16163
|
+
to: `${rows[index + 1]}${column}`,
|
|
16164
|
+
column
|
|
16165
|
+
}));
|
|
16166
|
+
var BREADBOARD_08MM_ROW_CONNECTIONS = Array.from(
|
|
16167
|
+
{ length: BREADBOARD_COLUMN_COUNT },
|
|
16168
|
+
(_, index) => index + 1
|
|
16169
|
+
).flatMap((column) => [
|
|
16170
|
+
...createBankRowConnections(BREADBOARD_08MM_TOP_BANK_ROWS, column),
|
|
16171
|
+
...createBankRowConnections(BREADBOARD_08MM_BOTTOM_BANK_ROWS, column)
|
|
16172
|
+
]);
|
|
16173
|
+
var createRowBreakout = (terminalLabel, column, y, yDirection) => {
|
|
16174
|
+
const x = BREADBOARD_COLUMN_XS[column - 1];
|
|
16175
|
+
return {
|
|
16176
|
+
name: `ROW_${terminalLabel}_BREAKOUT`,
|
|
16177
|
+
terminalLabel,
|
|
16178
|
+
column,
|
|
16179
|
+
start: { x, y },
|
|
16180
|
+
end: {
|
|
16181
|
+
x,
|
|
16182
|
+
y: roundCoordinate4(y + yDirection * BREADBOARD_08MM_ROW_BREAKOUT_LENGTH)
|
|
16183
|
+
}
|
|
16184
|
+
};
|
|
16185
|
+
};
|
|
16186
|
+
var BREADBOARD_08MM_ROW_BREAKOUTS = Array.from(
|
|
16187
|
+
{ length: BREADBOARD_COLUMN_COUNT },
|
|
16188
|
+
(_, index) => index + 1
|
|
16189
|
+
).flatMap((column) => [
|
|
16190
|
+
createRowBreakout(`A${column}`, column, BREADBOARD_TERMINAL_ROW_YS.A, 1),
|
|
16191
|
+
createRowBreakout(`E${column}`, column, BREADBOARD_TERMINAL_ROW_YS.E, -1),
|
|
16192
|
+
createRowBreakout(`F${column}`, column, BREADBOARD_TERMINAL_ROW_YS.F, 1),
|
|
16193
|
+
createRowBreakout(`J${column}`, column, BREADBOARD_TERMINAL_ROW_YS.J, -1)
|
|
16194
|
+
]);
|
|
16195
|
+
var viaBreakoutPinLabels = Object.fromEntries(
|
|
16196
|
+
BREADBOARD_08MM_VIA_POSITIONS.flatMap((via, index) => [
|
|
16197
|
+
[`pin${index * 2 + 1}`, `${via.name}_TOP`],
|
|
16198
|
+
[`pin${index * 2 + 2}`, `${via.name}_BOTTOM`]
|
|
16199
|
+
])
|
|
16200
|
+
);
|
|
16201
|
+
var rowBreakoutPinLabels = Object.fromEntries(
|
|
16202
|
+
BREADBOARD_08MM_ROW_BREAKOUTS.map((breakout, index) => [
|
|
16203
|
+
`pin${index + 1}`,
|
|
16204
|
+
breakout.name
|
|
16205
|
+
])
|
|
16206
|
+
);
|
|
16207
|
+
var Breadboard08mmViaBreakoutFootprint = () => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("footprint", { children: BREADBOARD_08MM_VIA_POSITIONS.map((via, index) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_react5.Fragment, { children: [
|
|
16208
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16209
|
+
"smtpad",
|
|
16210
|
+
{
|
|
16211
|
+
portHints: [`pin${index * 2 + 1}`],
|
|
16212
|
+
shape: "circle",
|
|
16213
|
+
radius: `${BREADBOARD_08MM_BREAKOUT_PAD_DIAMETER / 2}mm`,
|
|
16214
|
+
layer: "top",
|
|
16215
|
+
pcbX: via.topBreakout.end.x,
|
|
16216
|
+
pcbY: via.topBreakout.end.y
|
|
16217
|
+
}
|
|
16218
|
+
),
|
|
16219
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16220
|
+
"smtpad",
|
|
16221
|
+
{
|
|
16222
|
+
portHints: [`pin${index * 2 + 2}`],
|
|
16223
|
+
shape: "circle",
|
|
16224
|
+
radius: `${BREADBOARD_08MM_BREAKOUT_PAD_DIAMETER / 2}mm`,
|
|
16225
|
+
layer: "bottom",
|
|
16226
|
+
pcbX: via.bottomBreakout.end.x,
|
|
16227
|
+
pcbY: via.bottomBreakout.end.y
|
|
16228
|
+
}
|
|
16229
|
+
)
|
|
16230
|
+
] }, `via-breakout-pad-${via.name}`)) });
|
|
16231
|
+
var Breadboard08mmRowBreakoutFootprint = () => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("footprint", { children: BREADBOARD_08MM_ROW_BREAKOUTS.map((breakout, index) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react5.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16232
|
+
"smtpad",
|
|
16233
|
+
{
|
|
16234
|
+
portHints: [`pin${index + 1}`],
|
|
16235
|
+
shape: "circle",
|
|
16236
|
+
radius: `${BREADBOARD_08MM_BREAKOUT_PAD_DIAMETER / 2}mm`,
|
|
16237
|
+
pcbX: breakout.end.x,
|
|
16238
|
+
pcbY: breakout.end.y
|
|
16239
|
+
}
|
|
16240
|
+
) }, `row-breakout-pad-${breakout.name}`)) });
|
|
16241
|
+
var BreadboardClad08mmVias = ({
|
|
16242
|
+
children,
|
|
16243
|
+
autorouter,
|
|
16244
|
+
autorouterOptions,
|
|
16245
|
+
minTraceWidth,
|
|
16246
|
+
nominalTraceWidth = BREADBOARD_08MM_BREAKOUT_TRACE_WIDTH
|
|
16247
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
16248
|
+
"board",
|
|
16249
|
+
{
|
|
16250
|
+
name: "BreadboardClad08mmVias",
|
|
16251
|
+
title: "Pre-routed breadboard clad with separate 0.8 mm corner vias",
|
|
16252
|
+
width: `${BREADBOARD_CLAD_WIDTH}mm`,
|
|
16253
|
+
height: `${BREADBOARD_CLAD_HEIGHT}mm`,
|
|
16254
|
+
borderRadius: "2mm",
|
|
16255
|
+
layers: 2,
|
|
16256
|
+
minTraceWidth: `${minTraceWidth ?? 0.15}mm`,
|
|
16257
|
+
minBoardEdgeClearance: `${BREADBOARD_08MM_CLAD_EDGE_CLEARANCE - BREADBOARD_08MM_CLAD_EDGE_CLEARANCE_VALIDATION_TOLERANCE}mm`,
|
|
16258
|
+
minViaHoleDiameter: `${BREADBOARD_08MM_VIA_HOLE_DIAMETER}mm`,
|
|
16259
|
+
minViaPadDiameter: `${BREADBOARD_08MM_VIA_PAD_DIAMETER}mm`,
|
|
16260
|
+
minViaHoleEdgeToViaHoleEdgeClearance: `${BREADBOARD_08MM_MIN_VIA_EDGE_SPACING}mm`,
|
|
16261
|
+
pcbStyle: {
|
|
16262
|
+
viaHoleDiameter: `${BREADBOARD_08MM_VIA_HOLE_DIAMETER}mm`,
|
|
16263
|
+
viaPadDiameter: `${BREADBOARD_08MM_VIA_PAD_DIAMETER}mm`
|
|
16264
|
+
},
|
|
16265
|
+
autorouter: autorouter ?? createPrefabricatedViaAutorouter({
|
|
16266
|
+
width: BREADBOARD_CLAD_WIDTH,
|
|
16267
|
+
height: BREADBOARD_CLAD_HEIGHT,
|
|
16268
|
+
edgeClearance: BREADBOARD_08MM_CLAD_EDGE_CLEARANCE,
|
|
16269
|
+
options: autorouterOptions,
|
|
16270
|
+
minimumTraceWidth: minTraceWidth,
|
|
16271
|
+
nominalTraceWidth
|
|
16272
|
+
}),
|
|
16273
|
+
children: [
|
|
16274
|
+
BISCUIT_BOARD_MOUNTING_HOLE_POSITIONS.map((hole) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react5.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16275
|
+
"hole",
|
|
16276
|
+
{
|
|
16277
|
+
pcbX: hole.x,
|
|
16278
|
+
pcbY: hole.y,
|
|
16279
|
+
diameter: `${BREADBOARD_MOUNTING_HOLE_DIAMETER}mm`
|
|
16280
|
+
}
|
|
16281
|
+
) }, `breadboard-08mm-mounting-hole-${hole.x}-${hole.y}`)),
|
|
16282
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(BreadboardTerminalHeaders, { name: "J_TERMINALS" }),
|
|
16283
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16284
|
+
"pinheader",
|
|
16285
|
+
{
|
|
16286
|
+
name: "J_VIA_BREAKOUTS",
|
|
16287
|
+
pinCount: BREADBOARD_08MM_VIA_POSITIONS.length * 2,
|
|
16288
|
+
pinLabels: viaBreakoutPinLabels,
|
|
16289
|
+
manufacturerPartNumber: "GENERIC-BREADBOARD-08MM-VIA-BREAKOUTS",
|
|
16290
|
+
footprint: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Breadboard08mmViaBreakoutFootprint, {}),
|
|
16291
|
+
gender: "unpopulated",
|
|
16292
|
+
showSilkscreenPinLabels: false,
|
|
16293
|
+
obstructsWithinBounds: false,
|
|
16294
|
+
pcbX: 0,
|
|
16295
|
+
pcbY: 0,
|
|
16296
|
+
shouldBeOnEdgeOfBoard: false,
|
|
16297
|
+
pcbStyle: { silkscreenTextVisibility: "hidden" }
|
|
16298
|
+
}
|
|
16299
|
+
),
|
|
16300
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16301
|
+
"pinheader",
|
|
16302
|
+
{
|
|
16303
|
+
name: "J_ROW_BREAKOUTS",
|
|
16304
|
+
pinCount: BREADBOARD_08MM_ROW_BREAKOUTS.length,
|
|
16305
|
+
pinLabels: rowBreakoutPinLabels,
|
|
16306
|
+
manufacturerPartNumber: "GENERIC-BREADBOARD-ROW-BREAKOUTS",
|
|
16307
|
+
footprint: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Breadboard08mmRowBreakoutFootprint, {}),
|
|
16308
|
+
gender: "unpopulated",
|
|
16309
|
+
showSilkscreenPinLabels: false,
|
|
16310
|
+
obstructsWithinBounds: false,
|
|
16311
|
+
pcbX: 0,
|
|
16312
|
+
pcbY: 0,
|
|
16313
|
+
shouldBeOnEdgeOfBoard: false,
|
|
16314
|
+
pcbStyle: { silkscreenTextVisibility: "hidden" }
|
|
16315
|
+
}
|
|
16316
|
+
),
|
|
16317
|
+
[1, 5, 10, 15, 20, BREADBOARD_COLUMN_COUNT].map((column) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react5.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16318
|
+
"silkscreentext",
|
|
16319
|
+
{
|
|
16320
|
+
text: `${column}`,
|
|
16321
|
+
pcbX: BREADBOARD_COLUMN_XS[column - 1],
|
|
16322
|
+
pcbY: 17.2,
|
|
16323
|
+
fontSize: "0.55mm"
|
|
16324
|
+
}
|
|
16325
|
+
) }, `breadboard-08mm-column-label-${column}`)),
|
|
16326
|
+
BREADBOARD_08MM_VIA_POSITIONS.map((via) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react5.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16327
|
+
"trace",
|
|
16328
|
+
{
|
|
16329
|
+
name: `${via.name}_DUAL_LAYER_BREAKOUT`,
|
|
16330
|
+
from: `.J_VIA_BREAKOUTS > .${via.name}_TOP`,
|
|
16331
|
+
to: `.J_VIA_BREAKOUTS > .${via.name}_BOTTOM`,
|
|
16332
|
+
pcbPath: [
|
|
16333
|
+
`.J_VIA_BREAKOUTS > .${via.name}_TOP`,
|
|
16334
|
+
...via.topBreakout.route.toReversed(),
|
|
16335
|
+
{ x: via.x, y: via.y },
|
|
16336
|
+
{
|
|
16337
|
+
x: via.x,
|
|
16338
|
+
y: via.y,
|
|
16339
|
+
via: true,
|
|
16340
|
+
fromLayer: "top",
|
|
16341
|
+
toLayer: "bottom"
|
|
16342
|
+
},
|
|
16343
|
+
{ x: via.x, y: via.y },
|
|
16344
|
+
...via.bottomBreakout.route,
|
|
16345
|
+
`.J_VIA_BREAKOUTS > .${via.name}_BOTTOM`
|
|
16346
|
+
],
|
|
16347
|
+
width: `${BREADBOARD_08MM_BREAKOUT_TRACE_WIDTH}mm`
|
|
16348
|
+
}
|
|
16349
|
+
) }, via.name)),
|
|
16350
|
+
BREADBOARD_08MM_ROW_CONNECTIONS.map((connection) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react5.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16351
|
+
"trace",
|
|
16352
|
+
{
|
|
16353
|
+
name: `ROW_${connection.from}_${connection.to}`,
|
|
16354
|
+
from: `.J_TERMINALS > .${connection.from}`,
|
|
16355
|
+
to: `.J_TERMINALS > .${connection.to}`,
|
|
16356
|
+
width: `${BREADBOARD_08MM_ROW_TRACE_WIDTH}mm`
|
|
16357
|
+
}
|
|
16358
|
+
) }, `${connection.from}-${connection.to}`)),
|
|
16359
|
+
BREADBOARD_08MM_ROW_BREAKOUTS.map((breakout) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react5.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16360
|
+
"trace",
|
|
16361
|
+
{
|
|
16362
|
+
name: breakout.name,
|
|
16363
|
+
from: `.J_TERMINALS > .${breakout.terminalLabel}`,
|
|
16364
|
+
to: `.J_ROW_BREAKOUTS > .${breakout.name}`,
|
|
16365
|
+
width: `${BREADBOARD_08MM_ROW_TRACE_WIDTH}mm`
|
|
16366
|
+
}
|
|
16367
|
+
) }, breakout.name)),
|
|
16368
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16369
|
+
"silkscreentext",
|
|
16370
|
+
{
|
|
16371
|
+
text: "0.8MM VIA BREADBOARD",
|
|
16372
|
+
pcbX: 33.5,
|
|
16373
|
+
pcbY: 0,
|
|
16374
|
+
pcbRotation: 90,
|
|
16375
|
+
fontSize: "0.65mm"
|
|
16376
|
+
}
|
|
16377
|
+
),
|
|
16378
|
+
BREADBOARD_08MM_TOP_BANK_ROWS.map((row) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react5.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16379
|
+
"silkscreentext",
|
|
16380
|
+
{
|
|
16381
|
+
text: row,
|
|
16382
|
+
pcbX: -28.3,
|
|
16383
|
+
pcbY: BREADBOARD_TERMINAL_ROW_YS[row],
|
|
16384
|
+
fontSize: "0.55mm"
|
|
16385
|
+
}
|
|
16386
|
+
) }, `top-row-label-${row}`)),
|
|
16387
|
+
BREADBOARD_08MM_BOTTOM_BANK_ROWS.map((row) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react5.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16388
|
+
"silkscreentext",
|
|
16389
|
+
{
|
|
16390
|
+
text: row,
|
|
16391
|
+
pcbX: -28.3,
|
|
16392
|
+
pcbY: BREADBOARD_TERMINAL_ROW_YS[row],
|
|
16393
|
+
fontSize: "0.55mm"
|
|
16394
|
+
}
|
|
16395
|
+
) }, `bottom-row-label-${row}`)),
|
|
16396
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16397
|
+
"pcbnotedimension",
|
|
16398
|
+
{
|
|
16399
|
+
from: {
|
|
16400
|
+
x: -BREADBOARD_CLAD_WIDTH / 2,
|
|
16401
|
+
y: BREADBOARD_CLAD_HEIGHT / 2 + 2.5
|
|
16402
|
+
},
|
|
16403
|
+
to: {
|
|
16404
|
+
x: BREADBOARD_CLAD_WIDTH / 2,
|
|
16405
|
+
y: BREADBOARD_CLAD_HEIGHT / 2 + 2.5
|
|
16406
|
+
},
|
|
16407
|
+
text: `${BREADBOARD_CLAD_WIDTH}mm`
|
|
16408
|
+
}
|
|
16409
|
+
),
|
|
16410
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
16411
|
+
"pcbnotedimension",
|
|
16412
|
+
{
|
|
16413
|
+
from: {
|
|
16414
|
+
x: BREADBOARD_CLAD_WIDTH / 2 + 2.5,
|
|
16415
|
+
y: -BREADBOARD_CLAD_HEIGHT / 2
|
|
16416
|
+
},
|
|
16417
|
+
to: {
|
|
16418
|
+
x: BREADBOARD_CLAD_WIDTH / 2 + 2.5,
|
|
16419
|
+
y: BREADBOARD_CLAD_HEIGHT / 2
|
|
16420
|
+
},
|
|
16421
|
+
text: `${BREADBOARD_CLAD_HEIGHT}mm`
|
|
16422
|
+
}
|
|
16423
|
+
),
|
|
16424
|
+
children
|
|
16425
|
+
]
|
|
16426
|
+
}
|
|
16427
|
+
);
|
|
16428
|
+
|
|
16429
|
+
// lib/Clad32x32.tsx
|
|
16430
|
+
var import_react6 = require("react");
|
|
16431
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
15900
16432
|
var CLAD_32X32_WIDTH = 32;
|
|
15901
16433
|
var CLAD_32X32_HEIGHT = 32;
|
|
15902
16434
|
var CLAD_32X32_MOUNTING_HOLE_DIAMETER = 2;
|
|
@@ -15917,22 +16449,22 @@ var CLAD_32X32_MOUNTING_HOLE_POSITIONS = [
|
|
|
15917
16449
|
];
|
|
15918
16450
|
var CLAD_32X32_EDGE_CLEARANCE = 0.2;
|
|
15919
16451
|
var CLAD_32X32_EDGE_CLEARANCE_VALIDATION_TOLERANCE = 1e-3;
|
|
15920
|
-
var
|
|
15921
|
-
var
|
|
16452
|
+
var roundCoordinate5 = (value) => Math.round(value * 1e6) / 1e6;
|
|
16453
|
+
var createPitchedRange3 = (start, end) => Array.from(
|
|
15922
16454
|
{
|
|
15923
16455
|
length: Math.round((end - start) / CLAD_32X32_VIA_SPACING) + 1
|
|
15924
16456
|
},
|
|
15925
|
-
(_, index) =>
|
|
16457
|
+
(_, index) => roundCoordinate5(start + index * CLAD_32X32_VIA_SPACING)
|
|
15926
16458
|
);
|
|
15927
|
-
var cornerAxis =
|
|
16459
|
+
var cornerAxis = createPitchedRange3(
|
|
15928
16460
|
CLAD_32X32_VIA_ARM_INNER_OFFSET,
|
|
15929
16461
|
CLAD_32X32_VIA_ARM_OUTER_OFFSET
|
|
15930
16462
|
);
|
|
15931
|
-
var armAxis =
|
|
16463
|
+
var armAxis = createPitchedRange3(
|
|
15932
16464
|
CLAD_32X32_VIA_ARM_INNER_OFFSET,
|
|
15933
16465
|
CLAD_32X32_VIA_ARM_INNER_OFFSET + CLAD_32X32_VIA_ARM_WIDTH
|
|
15934
16466
|
);
|
|
15935
|
-
var
|
|
16467
|
+
var createCornerViaPositions3 = (xSign, ySign) => {
|
|
15936
16468
|
const horizontalArm = cornerAxis.flatMap(
|
|
15937
16469
|
(x) => armAxis.map((y) => ({ x: x * xSign, y: y * ySign }))
|
|
15938
16470
|
);
|
|
@@ -15953,7 +16485,7 @@ var CLAD_32X32_VIA_POSITIONS = [
|
|
|
15953
16485
|
[-1, 1],
|
|
15954
16486
|
[1, -1],
|
|
15955
16487
|
[1, 1]
|
|
15956
|
-
].flatMap(([xSign, ySign]) =>
|
|
16488
|
+
].flatMap(([xSign, ySign]) => createCornerViaPositions3(xSign, ySign));
|
|
15957
16489
|
var Clad32x32 = ({
|
|
15958
16490
|
children,
|
|
15959
16491
|
autorouter,
|
|
@@ -15961,7 +16493,7 @@ var Clad32x32 = ({
|
|
|
15961
16493
|
minTraceWidth,
|
|
15962
16494
|
nominalTraceWidth = 0.2,
|
|
15963
16495
|
routingDisabled = false
|
|
15964
|
-
}) => /* @__PURE__ */ (0,
|
|
16496
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
15965
16497
|
"board",
|
|
15966
16498
|
{
|
|
15967
16499
|
name: "Clad32x32",
|
|
@@ -15984,7 +16516,7 @@ var Clad32x32 = ({
|
|
|
15984
16516
|
}),
|
|
15985
16517
|
routingDisabled,
|
|
15986
16518
|
children: [
|
|
15987
|
-
CLAD_32X32_MOUNTING_HOLE_POSITIONS.map((hole) => /* @__PURE__ */ (0,
|
|
16519
|
+
CLAD_32X32_MOUNTING_HOLE_POSITIONS.map((hole) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react6.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
15988
16520
|
"hole",
|
|
15989
16521
|
{
|
|
15990
16522
|
pcbX: hole.x,
|
|
@@ -15992,7 +16524,7 @@ var Clad32x32 = ({
|
|
|
15992
16524
|
diameter: `${CLAD_32X32_MOUNTING_HOLE_DIAMETER}mm`
|
|
15993
16525
|
}
|
|
15994
16526
|
) }, `clad-32x32-mounting-hole-${hole.x}-${hole.y}`)),
|
|
15995
|
-
CLAD_32X32_VIA_POSITIONS.map((via) => /* @__PURE__ */ (0,
|
|
16527
|
+
CLAD_32X32_VIA_POSITIONS.map((via) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react6.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
15996
16528
|
"via",
|
|
15997
16529
|
{
|
|
15998
16530
|
netIsAssignable: true,
|
|
@@ -16004,7 +16536,7 @@ var Clad32x32 = ({
|
|
|
16004
16536
|
outerDiameter: `${CLAD_32X32_VIA_PAD_DIAMETER}mm`
|
|
16005
16537
|
}
|
|
16006
16538
|
) }, `clad-32x32-prefab-via-${via.x}-${via.y}`)),
|
|
16007
|
-
/* @__PURE__ */ (0,
|
|
16539
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
16008
16540
|
"pcbnotedimension",
|
|
16009
16541
|
{
|
|
16010
16542
|
from: { x: -CLAD_32X32_WIDTH / 2, y: CLAD_32X32_HEIGHT / 2 + 2.5 },
|
|
@@ -16012,7 +16544,7 @@ var Clad32x32 = ({
|
|
|
16012
16544
|
text: `${CLAD_32X32_WIDTH}mm`
|
|
16013
16545
|
}
|
|
16014
16546
|
),
|
|
16015
|
-
/* @__PURE__ */ (0,
|
|
16547
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
16016
16548
|
"pcbnotedimension",
|
|
16017
16549
|
{
|
|
16018
16550
|
from: { x: CLAD_32X32_WIDTH / 2 + 2.5, y: -CLAD_32X32_HEIGHT / 2 },
|
|
@@ -16026,8 +16558,8 @@ var Clad32x32 = ({
|
|
|
16026
16558
|
);
|
|
16027
16559
|
|
|
16028
16560
|
// lib/feather-clad.tsx
|
|
16029
|
-
var
|
|
16030
|
-
var
|
|
16561
|
+
var import_react7 = require("react");
|
|
16562
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
16031
16563
|
var FEATHER_CLAD_WIDTH = 22.86;
|
|
16032
16564
|
var FEATHER_CLAD_HEIGHT = 50.8;
|
|
16033
16565
|
var FEATHER_HEADER_PITCH = 2.54;
|
|
@@ -16103,7 +16635,7 @@ var FEATHER_PIN_NAMES = Array.from(
|
|
|
16103
16635
|
{ length: 28 },
|
|
16104
16636
|
(_, index) => `pin${index + 1}`
|
|
16105
16637
|
);
|
|
16106
|
-
var FeatherPinHeaderFootprint = () => /* @__PURE__ */ (0,
|
|
16638
|
+
var FeatherPinHeaderFootprint = () => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("footprint", { insertionDirection: "from_below", children: FEATHER_HEADER_POSITIONS.map((position, index) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react7.Fragment, { children: index === 0 ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
16107
16639
|
"platedhole",
|
|
16108
16640
|
{
|
|
16109
16641
|
portHints: [`pin${index + 1}`],
|
|
@@ -16114,7 +16646,7 @@ var FeatherPinHeaderFootprint = () => /* @__PURE__ */ (0, import_jsx_runtime6.js
|
|
|
16114
16646
|
pcbX: position.x,
|
|
16115
16647
|
pcbY: position.y
|
|
16116
16648
|
}
|
|
16117
|
-
) : /* @__PURE__ */ (0,
|
|
16649
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
16118
16650
|
"platedhole",
|
|
16119
16651
|
{
|
|
16120
16652
|
portHints: [`pin${index + 1}`],
|
|
@@ -16125,12 +16657,12 @@ var FeatherPinHeaderFootprint = () => /* @__PURE__ */ (0, import_jsx_runtime6.js
|
|
|
16125
16657
|
pcbY: position.y
|
|
16126
16658
|
}
|
|
16127
16659
|
) }, `feather-header-${position.x}-${position.y}`)) });
|
|
16128
|
-
var FeatherPinHeaders = (props) => /* @__PURE__ */ (0,
|
|
16660
|
+
var FeatherPinHeaders = (props) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
16129
16661
|
"connector",
|
|
16130
16662
|
{
|
|
16131
16663
|
pinLabels: FEATHER_PIN_LABELS,
|
|
16132
16664
|
manufacturerPartNumber: "GENERIC-FEATHER-1X16-PLUS-1X12-MALE-2.54MM-DOWN",
|
|
16133
|
-
footprint: /* @__PURE__ */ (0,
|
|
16665
|
+
footprint: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(FeatherPinHeaderFootprint, {}),
|
|
16134
16666
|
noSchematicRepresentation: true,
|
|
16135
16667
|
...props
|
|
16136
16668
|
}
|
|
@@ -16144,7 +16676,7 @@ var FeatherCladWithPinHeaders = ({
|
|
|
16144
16676
|
routingDisabled = false,
|
|
16145
16677
|
markHeadersNoConnect = false,
|
|
16146
16678
|
showUsbLabel = true
|
|
16147
|
-
}) => /* @__PURE__ */ (0,
|
|
16679
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
16148
16680
|
"board",
|
|
16149
16681
|
{
|
|
16150
16682
|
name: "FeatherCladWithPinHeaders",
|
|
@@ -16167,14 +16699,14 @@ var FeatherCladWithPinHeaders = ({
|
|
|
16167
16699
|
}),
|
|
16168
16700
|
routingDisabled,
|
|
16169
16701
|
children: [
|
|
16170
|
-
/* @__PURE__ */ (0,
|
|
16702
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
16171
16703
|
FeatherPinHeaders,
|
|
16172
16704
|
{
|
|
16173
16705
|
name: "J_FEATHER",
|
|
16174
16706
|
noConnect: markHeadersNoConnect ? FEATHER_PIN_NAMES : void 0
|
|
16175
16707
|
}
|
|
16176
16708
|
),
|
|
16177
|
-
FEATHER_MOUNTING_HOLE_POSITIONS.map((hole) => /* @__PURE__ */ (0,
|
|
16709
|
+
FEATHER_MOUNTING_HOLE_POSITIONS.map((hole) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react7.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
16178
16710
|
"hole",
|
|
16179
16711
|
{
|
|
16180
16712
|
pcbX: hole.x,
|
|
@@ -16182,7 +16714,7 @@ var FeatherCladWithPinHeaders = ({
|
|
|
16182
16714
|
diameter: `${FEATHER_MOUNTING_HOLE_DIAMETER}mm`
|
|
16183
16715
|
}
|
|
16184
16716
|
) }, `feather-mounting-hole-${hole.x}-${hole.y}`)),
|
|
16185
|
-
showUsbLabel && /* @__PURE__ */ (0,
|
|
16717
|
+
showUsbLabel && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
16186
16718
|
"silkscreentext",
|
|
16187
16719
|
{
|
|
16188
16720
|
text: "UP",
|
|
@@ -16191,7 +16723,7 @@ var FeatherCladWithPinHeaders = ({
|
|
|
16191
16723
|
fontSize: "0.7mm"
|
|
16192
16724
|
}
|
|
16193
16725
|
),
|
|
16194
|
-
FEATHER_CLAD_VIA_POSITIONS.map((via) => /* @__PURE__ */ (0,
|
|
16726
|
+
FEATHER_CLAD_VIA_POSITIONS.map((via) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react7.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
16195
16727
|
"via",
|
|
16196
16728
|
{
|
|
16197
16729
|
netIsAssignable: true,
|
|
@@ -16203,7 +16735,7 @@ var FeatherCladWithPinHeaders = ({
|
|
|
16203
16735
|
outerDiameter: `${FEATHER_CLAD_VIA_PAD_DIAMETER}mm`
|
|
16204
16736
|
}
|
|
16205
16737
|
) }, `feather-prefab-via-${via.x}-${via.y}`)),
|
|
16206
|
-
/* @__PURE__ */ (0,
|
|
16738
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
16207
16739
|
"pcbnotedimension",
|
|
16208
16740
|
{
|
|
16209
16741
|
from: {
|
|
@@ -16217,7 +16749,7 @@ var FeatherCladWithPinHeaders = ({
|
|
|
16217
16749
|
text: `${FEATHER_CLAD_WIDTH}mm`
|
|
16218
16750
|
}
|
|
16219
16751
|
),
|
|
16220
|
-
/* @__PURE__ */ (0,
|
|
16752
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
16221
16753
|
"pcbnotedimension",
|
|
16222
16754
|
{
|
|
16223
16755
|
from: {
|
|
@@ -16237,8 +16769,8 @@ var FeatherCladWithPinHeaders = ({
|
|
|
16237
16769
|
);
|
|
16238
16770
|
|
|
16239
16771
|
// lib/xiao-clad.tsx
|
|
16240
|
-
var
|
|
16241
|
-
var
|
|
16772
|
+
var import_react8 = require("react");
|
|
16773
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
16242
16774
|
var XIAO_CLAD_WIDTH = 17.8;
|
|
16243
16775
|
var XIAO_CLAD_HEIGHT = 21;
|
|
16244
16776
|
var XIAO_HEADER_PITCH = 2.54;
|
|
@@ -16284,7 +16816,7 @@ var XIAO_PIN_NAMES = Array.from(
|
|
|
16284
16816
|
{ length: 14 },
|
|
16285
16817
|
(_, index) => `pin${index + 1}`
|
|
16286
16818
|
);
|
|
16287
|
-
var XiaoPinHeaderFootprint = () => /* @__PURE__ */ (0,
|
|
16819
|
+
var XiaoPinHeaderFootprint = () => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("footprint", { insertionDirection: "from_below", children: XIAO_HEADER_POSITIONS.map((position, index) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react8.Fragment, { children: index === 0 ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
16288
16820
|
"platedhole",
|
|
16289
16821
|
{
|
|
16290
16822
|
portHints: [`pin${index + 1}`],
|
|
@@ -16295,7 +16827,7 @@ var XiaoPinHeaderFootprint = () => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
|
16295
16827
|
pcbX: position.x,
|
|
16296
16828
|
pcbY: position.y
|
|
16297
16829
|
}
|
|
16298
|
-
) : /* @__PURE__ */ (0,
|
|
16830
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
16299
16831
|
"platedhole",
|
|
16300
16832
|
{
|
|
16301
16833
|
portHints: [`pin${index + 1}`],
|
|
@@ -16306,12 +16838,12 @@ var XiaoPinHeaderFootprint = () => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
|
16306
16838
|
pcbY: position.y
|
|
16307
16839
|
}
|
|
16308
16840
|
) }, `xiao-header-${position.x}-${position.y}`)) });
|
|
16309
|
-
var XiaoPinHeaders = (props) => /* @__PURE__ */ (0,
|
|
16841
|
+
var XiaoPinHeaders = (props) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
16310
16842
|
"connector",
|
|
16311
16843
|
{
|
|
16312
16844
|
pinLabels: XIAO_PIN_LABELS,
|
|
16313
16845
|
manufacturerPartNumber: "GENERIC-XIAO-2X7-MALE-2.54MM-DOWN",
|
|
16314
|
-
footprint: /* @__PURE__ */ (0,
|
|
16846
|
+
footprint: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(XiaoPinHeaderFootprint, {}),
|
|
16315
16847
|
noSchematicRepresentation: true,
|
|
16316
16848
|
...props
|
|
16317
16849
|
}
|
|
@@ -16328,7 +16860,7 @@ var XiaoCladLayout = ({
|
|
|
16328
16860
|
nominalTraceWidth = 0.2,
|
|
16329
16861
|
routingDisabled = false,
|
|
16330
16862
|
showUsbLabel = true
|
|
16331
|
-
}) => /* @__PURE__ */ (0,
|
|
16863
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
16332
16864
|
"board",
|
|
16333
16865
|
{
|
|
16334
16866
|
name: boardName,
|
|
@@ -16353,7 +16885,7 @@ var XiaoCladLayout = ({
|
|
|
16353
16885
|
children: [
|
|
16354
16886
|
pinHeaders,
|
|
16355
16887
|
edgeFeatures,
|
|
16356
|
-
showUsbLabel && /* @__PURE__ */ (0,
|
|
16888
|
+
showUsbLabel && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
16357
16889
|
"silkscreentext",
|
|
16358
16890
|
{
|
|
16359
16891
|
text: "UP",
|
|
@@ -16362,7 +16894,7 @@ var XiaoCladLayout = ({
|
|
|
16362
16894
|
fontSize: "0.7mm"
|
|
16363
16895
|
}
|
|
16364
16896
|
),
|
|
16365
|
-
XIAO_CLAD_VIA_POSITIONS.map((via) => /* @__PURE__ */ (0,
|
|
16897
|
+
XIAO_CLAD_VIA_POSITIONS.map((via) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react8.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
16366
16898
|
"via",
|
|
16367
16899
|
{
|
|
16368
16900
|
netIsAssignable: true,
|
|
@@ -16374,7 +16906,7 @@ var XiaoCladLayout = ({
|
|
|
16374
16906
|
outerDiameter: `${XIAO_CLAD_VIA_PAD_DIAMETER}mm`
|
|
16375
16907
|
}
|
|
16376
16908
|
) }, `xiao-prefab-via-${via.x}-${via.y}`)),
|
|
16377
|
-
/* @__PURE__ */ (0,
|
|
16909
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
16378
16910
|
"pcbnotedimension",
|
|
16379
16911
|
{
|
|
16380
16912
|
from: { x: -XIAO_CLAD_WIDTH / 2, y: XIAO_CLAD_HEIGHT / 2 + 2 },
|
|
@@ -16382,7 +16914,7 @@ var XiaoCladLayout = ({
|
|
|
16382
16914
|
text: `${XIAO_CLAD_WIDTH}mm`
|
|
16383
16915
|
}
|
|
16384
16916
|
),
|
|
16385
|
-
/* @__PURE__ */ (0,
|
|
16917
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
16386
16918
|
"pcbnotedimension",
|
|
16387
16919
|
{
|
|
16388
16920
|
from: { x: XIAO_CLAD_WIDTH / 2 + 2, y: -XIAO_CLAD_HEIGHT / 2 },
|
|
@@ -16397,13 +16929,13 @@ var XiaoCladLayout = ({
|
|
|
16397
16929
|
var XiaoCladWithPinHeaders = ({
|
|
16398
16930
|
markHeadersNoConnect = false,
|
|
16399
16931
|
...props
|
|
16400
|
-
}) => /* @__PURE__ */ (0,
|
|
16932
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
16401
16933
|
XiaoCladLayout,
|
|
16402
16934
|
{
|
|
16403
16935
|
...props,
|
|
16404
16936
|
boardName: "XiaoCladWithPinHeaders",
|
|
16405
16937
|
boardTitle: "XIAO form-factor copper clad with pin headers",
|
|
16406
|
-
pinHeaders: /* @__PURE__ */ (0,
|
|
16938
|
+
pinHeaders: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
16407
16939
|
XiaoPinHeaders,
|
|
16408
16940
|
{
|
|
16409
16941
|
name: "J_XIAO",
|
|
@@ -16414,8 +16946,8 @@ var XiaoCladWithPinHeaders = ({
|
|
|
16414
16946
|
);
|
|
16415
16947
|
|
|
16416
16948
|
// lib/xiao-clad-with-perforated-pin-headers.tsx
|
|
16417
|
-
var
|
|
16418
|
-
var
|
|
16949
|
+
var import_react9 = require("react");
|
|
16950
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
16419
16951
|
var XIAO_PERFORATED_HEADER_PAD_WIDTH = 2.13;
|
|
16420
16952
|
var XIAO_PERFORATED_HEADER_PAD_HEIGHT = 2;
|
|
16421
16953
|
var XIAO_PERFORATION_HOLE_DIAMETER = 0.7;
|
|
@@ -16425,13 +16957,13 @@ var XIAO_PERFORATION_POSITIONS = XIAO_HEADER_POSITIONS.map(
|
|
|
16425
16957
|
y: position.y
|
|
16426
16958
|
})
|
|
16427
16959
|
);
|
|
16428
|
-
var XiaoPerforatedPinHeaderFootprint = () => /* @__PURE__ */ (0,
|
|
16960
|
+
var XiaoPerforatedPinHeaderFootprint = () => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("footprint", { insertionDirection: "from_below", children: XIAO_HEADER_POSITIONS.map((headerPosition, index) => {
|
|
16429
16961
|
const side = Math.sign(headerPosition.x);
|
|
16430
16962
|
const padCenterX = side * (XIAO_CLAD_WIDTH / 2 - XIAO_PERFORATED_HEADER_PAD_WIDTH / 2);
|
|
16431
|
-
return /* @__PURE__ */ (0,
|
|
16432
|
-
|
|
16963
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
16964
|
+
import_react9.Fragment,
|
|
16433
16965
|
{
|
|
16434
|
-
children: /* @__PURE__ */ (0,
|
|
16966
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
16435
16967
|
"platedhole",
|
|
16436
16968
|
{
|
|
16437
16969
|
portHints: [`pin${index + 1}`],
|
|
@@ -16448,12 +16980,12 @@ var XiaoPerforatedPinHeaderFootprint = () => /* @__PURE__ */ (0, import_jsx_runt
|
|
|
16448
16980
|
`xiao-perforated-header-${headerPosition.x}-${headerPosition.y}`
|
|
16449
16981
|
);
|
|
16450
16982
|
}) });
|
|
16451
|
-
var XiaoPerforatedPinHeaders = (props) => /* @__PURE__ */ (0,
|
|
16983
|
+
var XiaoPerforatedPinHeaders = (props) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
16452
16984
|
"connector",
|
|
16453
16985
|
{
|
|
16454
16986
|
pinLabels: XIAO_PIN_LABELS,
|
|
16455
16987
|
manufacturerPartNumber: "GENERIC-XIAO-2X7-MALE-2.54MM-DOWN-PERFORATED",
|
|
16456
|
-
footprint: /* @__PURE__ */ (0,
|
|
16988
|
+
footprint: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(XiaoPerforatedPinHeaderFootprint, {}),
|
|
16457
16989
|
noSchematicRepresentation: true,
|
|
16458
16990
|
...props
|
|
16459
16991
|
}
|
|
@@ -16461,20 +16993,20 @@ var XiaoPerforatedPinHeaders = (props) => /* @__PURE__ */ (0, import_jsx_runtime
|
|
|
16461
16993
|
var XiaoCladWithPerforatedPinHeaders = ({
|
|
16462
16994
|
markHeadersNoConnect = false,
|
|
16463
16995
|
...props
|
|
16464
|
-
}) => /* @__PURE__ */ (0,
|
|
16996
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
16465
16997
|
XiaoCladLayout,
|
|
16466
16998
|
{
|
|
16467
16999
|
...props,
|
|
16468
17000
|
boardName: "XiaoCladWithPerforatedPinHeaders",
|
|
16469
17001
|
boardTitle: "XIAO form-factor copper clad with perforated pin-header sides",
|
|
16470
|
-
pinHeaders: /* @__PURE__ */ (0,
|
|
17002
|
+
pinHeaders: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
16471
17003
|
XiaoPerforatedPinHeaders,
|
|
16472
17004
|
{
|
|
16473
17005
|
name: "J_XIAO",
|
|
16474
17006
|
noConnect: markHeadersNoConnect ? XIAO_PIN_NAMES : void 0
|
|
16475
17007
|
}
|
|
16476
17008
|
),
|
|
16477
|
-
edgeFeatures: XIAO_PERFORATION_POSITIONS.map((position) => /* @__PURE__ */ (0,
|
|
17009
|
+
edgeFeatures: XIAO_PERFORATION_POSITIONS.map((position) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react9.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
16478
17010
|
"cutout",
|
|
16479
17011
|
{
|
|
16480
17012
|
shape: "circle",
|
|
@@ -16531,6 +17063,33 @@ var XiaoCladWithPerforatedPinHeaders = ({
|
|
|
16531
17063
|
BOOSTERPACK_MIDDLE_VIA_CLUSTER_CENTER_X,
|
|
16532
17064
|
BOOSTERPACK_MIDDLE_VIA_CLUSTER_HEIGHT,
|
|
16533
17065
|
BOOSTERPACK_MIDDLE_VIA_CLUSTER_WIDTH,
|
|
17066
|
+
BREADBOARD_08MM_BOTTOM_BANK_ROWS,
|
|
17067
|
+
BREADBOARD_08MM_BREAKOUT_LANE_SPACING,
|
|
17068
|
+
BREADBOARD_08MM_BREAKOUT_PAD_DIAMETER,
|
|
17069
|
+
BREADBOARD_08MM_BREAKOUT_TRACE_WIDTH,
|
|
17070
|
+
BREADBOARD_08MM_BREAKOUT_WEAVE_OFFSET,
|
|
17071
|
+
BREADBOARD_08MM_CORNER_VIA_ARM_WIDTH,
|
|
17072
|
+
BREADBOARD_08MM_CORNER_VIA_ARM_X_INNER_OFFSET,
|
|
17073
|
+
BREADBOARD_08MM_CORNER_VIA_LONG_SIDE_COLUMNS,
|
|
17074
|
+
BREADBOARD_08MM_CORNER_VIA_SPACING,
|
|
17075
|
+
BREADBOARD_08MM_CORNER_VIA_X_INNER_OFFSET,
|
|
17076
|
+
BREADBOARD_08MM_CORNER_VIA_X_OUTER_OFFSET,
|
|
17077
|
+
BREADBOARD_08MM_CORNER_VIA_X_OUTWARD_SHIFT,
|
|
17078
|
+
BREADBOARD_08MM_CORNER_VIA_Y_INNER_OFFSET,
|
|
17079
|
+
BREADBOARD_08MM_CORNER_VIA_Y_OUTER_OFFSET,
|
|
17080
|
+
BREADBOARD_08MM_EDGE_HUG_COLUMN_COUNT,
|
|
17081
|
+
BREADBOARD_08MM_EDGE_HUG_Y_SHIFT,
|
|
17082
|
+
BREADBOARD_08MM_MIN_VIA_EDGE_SPACING,
|
|
17083
|
+
BREADBOARD_08MM_ROW_BREAKOUTS,
|
|
17084
|
+
BREADBOARD_08MM_ROW_BREAKOUT_LENGTH,
|
|
17085
|
+
BREADBOARD_08MM_ROW_CONNECTIONS,
|
|
17086
|
+
BREADBOARD_08MM_ROW_TRACE_WIDTH,
|
|
17087
|
+
BREADBOARD_08MM_TOP_BANK_ROWS,
|
|
17088
|
+
BREADBOARD_08MM_TOP_RIGHT_LONG_SIDE_COLUMNS,
|
|
17089
|
+
BREADBOARD_08MM_VIA_BREAKOUT_LENGTH,
|
|
17090
|
+
BREADBOARD_08MM_VIA_HOLE_DIAMETER,
|
|
17091
|
+
BREADBOARD_08MM_VIA_PAD_DIAMETER,
|
|
17092
|
+
BREADBOARD_08MM_VIA_POSITIONS,
|
|
16534
17093
|
BREADBOARD_CLAD_HEIGHT,
|
|
16535
17094
|
BREADBOARD_CLAD_VIA_HOLE_DIAMETER,
|
|
16536
17095
|
BREADBOARD_CLAD_VIA_PAD_DIAMETER,
|
|
@@ -16561,6 +17120,7 @@ var XiaoCladWithPerforatedPinHeaders = ({
|
|
|
16561
17120
|
BoosterPackLeftHeader,
|
|
16562
17121
|
BoosterPackRightHeader,
|
|
16563
17122
|
BreadboardClad,
|
|
17123
|
+
BreadboardClad08mmVias,
|
|
16564
17124
|
BreadboardTerminalHeaders,
|
|
16565
17125
|
CLAD_32X32_EDGE_CONNECTOR_OPENING,
|
|
16566
17126
|
CLAD_32X32_HEIGHT,
|