krishnax12/usb-c-control-dial
USB-C control dial PCB with an EC11 push encoder and a 16-LED ring for volume and brightness controls. Work in progress; firmware not included and not fabrication-ready.
- Version
- 0.0.3
- License
- unset
- Stars
- 1
imports/USBLC6_2SC6/USBLC6_2SC6.tsx
import objPath from "./USBLC6_2SC6.obj"
import stepPath from "./USBLC6_2SC6.step"
import type { ChipProps } from "@tscircuit/props"
const pinLabels = {
pin1: ["pin1"],
pin2: ["pin2"],
pin3: ["pin3"],
pin4: ["pin4"],
pin5: ["pin5"],
pin6: ["pin6"],
} as const
const pinAttributes = {
pin1: { isPassive: true },
pin2: { requiresGround: true, mustBeConnected: true },
pin3: { isPassive: true },
pin4: { isPassive: true },
pin5: {
isPassive: true,
requiresPower: true,
mustBeConnected: true,
shouldHaveDecouplingCapacitor: true,
recommendedDecouplingCapacitorCapacitance: "100nF",
},
pin6: { isPassive: true },
} satisfies NonNullable<ChipProps["pinAttributes"]>
export const USBLC6_2SC6 = (props: ChipProps<typeof pinLabels>) => {
return (
<chip
pinLabels={pinLabels}
pinAttributes={pinAttributes}
symbol={
<symbol>
<schematicpath
points={[
{ x: -0.9, y: 1 },
{ x: 0.9, y: 1 },
{ x: 0.9, y: -1 },
{ x: -0.9, y: -1 },
{ x: -0.9, y: 1 },
]}
strokeWidth={0.02}
strokeColor="#880000"
isFilled
fillColor="#FFFFFF"
/>
<port
name="pin1"
pinNumber={1}
aliases={["1"]}
direction="left"
schX={-1.3}
schY={0.6}
schStemLength={0.4}
/>
<port
name="pin2"
pinNumber={2}
aliases={["2"]}
direction="left"
schX={-1.3}
schY={0}
schStemLength={0.4}
/>
<port
name="pin3"
pinNumber={3}
aliases={["3"]}
direction="left"
schX={-1.3}
schY={-0.6}
schStemLength={0.4}
/>
<port
name="pin4"
pinNumber={4}
aliases={["4"]}
direction="right"
schX={1.3}
schY={-0.6}
schStemLength={0.4}
/>
<port
name="pin5"
pinNumber={5}
aliases={["5"]}
direction="right"
schX={1.3}
schY={0}
schStemLength={0.4}
/>
<port
name="pin6"
pinNumber={6}
aliases={["6"]}
direction="right"
schX={1.3}
schY={0.6}
schStemLength={0.4}
/>
<schematicpath
points={[
{ x: -0.9, y: 0.6 },
{ x: 0.9, y: 0.6 },
]}
strokeColor="#880000"
/>
<schematicpath
points={[
{ x: -0.9, y: -0.6 },
{ x: 0.9, y: -0.6 },
]}
strokeColor="#880000"
/>
<schematicpath
points={[
{ x: -0.9, y: 0 },
{ x: 0.9, y: 0 },
]}
strokeColor="#880000"
/>
<schematicpath
svgPath="M -0.14 -0.12 L 0.06 0 L -0.14 0.14 Z"
strokeColor="#880000"
isFilled
fillColor="#880000"
/>
<schematicpath
points={[
{ x: 0.1, y: 0.16 },
{ x: 0.06, y: 0.16 },
{ x: 0.06, y: -0.14 },
{ x: 0, y: -0.14 },
]}
strokeColor="#880000"
/>
<schematicpath
points={[
{ x: -0.68, y: 0 },
{ x: -0.68, y: 0.4 },
{ x: 0.66, y: 0.4 },
{ x: 0.66, y: -0.4 },
{ x: -0.68, y: -0.4 },
{ x: -0.68, y: 0 },
]}
strokeColor="#880000"
/>
<schematicpath
points={[
{ x: 0, y: 0.6 },
{ x: 0, y: 0.4 },
]}
strokeColor="#880000"
/>
<schematicpath
points={[
{ x: 0, y: -0.6 },
{ x: 0, y: -0.4 },
]}
strokeColor="#880000"
/>
<schematicpath
svgPath="M -0.46 0.28 L -0.26 0.4 L -0.46 0.54 Z"
strokeColor="#880000"
isFilled
fillColor="#880000"
/>
<schematicpath
points={[
{ x: -0.26, y: 0.56 },
{ x: -0.26, y: 0.56 },
{ x: -0.26, y: 0.26 },
{ x: -0.26, y: 0.26 },
]}
strokeColor="#880000"
/>
<schematicpath
svgPath="M 0.22 0.28 L 0.42 0.4 L 0.22 0.54 Z"
strokeColor="#880000"
isFilled
fillColor="#880000"
/>
<schematicpath
points={[
{ x: 0.42, y: 0.56 },
{ x: 0.42, y: 0.56 },
{ x: 0.42, y: 0.26 },
{ x: 0.42, y: 0.26 },
]}
strokeColor="#880000"
/>
<schematicpath
svgPath="M -0.48 -0.52 L -0.28 -0.4 L -0.48 -0.26 Z"
strokeColor="#880000"
isFilled
fillColor="#880000"
/>
<schematicpath
points={[
{ x: -0.28, y: -0.24 },
{ x: -0.28, y: -0.24 },
{ x: -0.28, y: -0.54 },
{ x: -0.28, y: -0.54 },
]}
strokeColor="#880000"
/>
<schematicpath
svgPath="M 0.22 -0.52 L 0.42 -0.4 L 0.22 -0.26 Z"
strokeColor="#880000"
isFilled
fillColor="#880000"
/>
<schematicpath
points={[
{ x: 0.42, y: -0.24 },
{ x: 0.42, y: -0.24 },
{ x: 0.42, y: -0.54 },
{ x: 0.42, y: -0.54 },
]}
strokeColor="#880000"
/>
<schematiccircle
center={{ x: 0, y: 0.6 }}
radius={0.02}
strokeWidth={0.02}
color="#880000"
/>
<schematiccircle
center={{ x: 0, y: 0.4 }}
radius={0.02}
strokeWidth={0.02}
color="#880000"
/>
<schematiccircle
center={{ x: -0.68, y: 0 }}
radius={0.02}
strokeWidth={0.02}
color="#880000"
/>
<schematiccircle
center={{ x: 0.66, y: 0 }}
radius={0.02}
strokeWidth={0.02}
color="#880000"
/>
<schematiccircle
center={{ x: 0, y: -0.4 }}
radius={0.02}
strokeWidth={0.02}
color="#880000"
/>
<schematiccircle
center={{ x: 0, y: -0.6 }}
radius={0.02}
strokeWidth={0.02}
color="#880000"
/>
<schematictext
schX={0}
schY={1.2}
text="{NAME}"
fontSize={0.2}
anchor="bottom_center"
/>
</symbol>
}
supplierPartNumbers={{
jlcpcb: ["C7519"],
}}
manufacturerPartNumber="USBLC6-2SC6"
footprint={
<footprint>
<smtpad
portHints={["pin1"]}
pcbX="-0.94996mm"
pcbY="-1.149096mm"
width="0.532003mm"
height="1.072007mm"
shape="rect"
/>
<smtpad
portHints={["pin2"]}
pcbX="0mm"
pcbY="-1.149096mm"
width="0.532003mm"
height="1.072007mm"
shape="rect"
/>
<smtpad
portHints={["pin3"]}
pcbX="0.94996mm"
pcbY="-1.149096mm"
width="0.532003mm"
height="1.072007mm"
shape="rect"
/>
<smtpad
portHints={["pin4"]}
pcbX="0.94996mm"
pcbY="1.149096mm"
width="0.532003mm"
height="1.072007mm"
shape="rect"
/>
<smtpad
portHints={["pin5"]}
pcbX="0mm"
pcbY="1.149096mm"
width="0.532003mm"
height="1.072007mm"
shape="rect"
/>
<smtpad
portHints={["pin6"]}
pcbX="-0.94996mm"
pcbY="1.149096mm"
width="0.532003mm"
height="1.072007mm"
shape="rect"
/>
<silkscreenpath
route={[
{ x: 1.5391891999998961, y: -0.8892031999998835 },
{ x: 1.5391891999998961, y: 0.8892031999999972 },
]}
/>
<silkscreenpath
route={[
{ x: -1.5391892000000098, y: -0.8892031999998835 },
{ x: -1.5391892000000098, y: 0.8892031999999972 },
]}
/>
<silkscreencircle
pcbX="-1.668272mm"
pcbY="-1.301496mm"
radius="0.150114mm"
/>
<silkscreentext
text="{NAME}"
pcbX="-0.1524mm"
pcbY="2.6764mm"
anchorAlignment="center"
fontSize="1mm"
/>
<courtyardoutline
outline={[
{ x: -1.6999843999999484, y: 1.9350994999999784 },
{ x: 1.7000097999999753, y: 1.9350994999999784 },
{ x: 1.7000097999999753, y: -1.9350994999998647 },
{ x: -1.6999843999999484, y: -1.9350994999998647 },
{ x: -1.6999843999999484, y: 1.9350994999999784 },
]}
/>
</footprint>
}
cadModel={{
objUrl: objPath,
stepUrl: stepPath,
pcbRotationOffset: 90,
modelOriginPosition: {
x: -0.000012700000070253736,
y: 0.000012700000070253736,
z: -0.048939,
},
}}
{...props}
/>
)
}