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/SK6812MINI_E/SK6812MINI_E.tsx
import objPath from "./SK6812MINI_E.obj"
import stepPath from "./SK6812MINI_E.step"
import type { ChipProps } from "@tscircuit/props"
const pinLabels = {
pin1: ["GND"],
pin2: ["DIN"],
pin3: ["VDD"],
pin4: ["DOUT"],
} as const
const pinAttributes = {
pin1: { requiresGround: true },
pin3: { requiresPower: true },
} as const
type ReverseMountLedProps = ChipProps<typeof pinLabels> & {
openingShape?: "polygon" | "rect"
}
export const SK6812MINI_E = (props: ReverseMountLedProps) => {
const { openingShape = "polygon", ...chipProps } = props
return (
<chip
pinLabels={pinLabels}
pinAttributes={pinAttributes}
supplierPartNumbers={{
jlcpcb: ["C5149201"],
}}
manufacturerPartNumber="SK6812MINI-E"
footprint={
<footprint>
{openingShape === "rect" ? (
<cutout shape="rect" width={3.6} height={3.4} />
) : (
<cutout
shape="polygon"
points={[
{ x: -1.8, y: -1.45 },
{ x: -1.55, y: -1.7 },
{ x: 1.55, y: -1.7 },
{ x: 1.8, y: -1.45 },
{ x: 1.8, y: 1.45 },
{ x: 1.55, y: 1.7 },
{ x: -1.55, y: 1.7 },
{ x: -1.8, y: 1.45 },
]}
/>
)}
<smtpad
portHints={["pin3"]}
pcbX="2.699893mm"
pcbY="0.725043mm"
width="1.6999966mm"
height="0.7999984mm"
shape="rect"
/>
<smtpad
portHints={["pin4"]}
pcbX="2.699893mm"
pcbY="-0.725043mm"
width="1.6999966mm"
height="0.7999984mm"
shape="rect"
/>
<smtpad
portHints={["pin1"]}
pcbX="-2.699893mm"
pcbY="-0.725043mm"
width="1.6999966mm"
height="0.7999984mm"
shape="rect"
/>
<smtpad
portHints={["pin2"]}
pcbX="-2.699893mm"
pcbY="0.725043mm"
width="1.6999966mm"
height="0.7999984mm"
shape="rect"
/>
<silkscreenpath
route={[
{ x: 1.8500852000001942, y: -1.7000474000000168 },
{ x: -1.8499581999998327, y: -1.7000474000000168 },
]}
/>
<silkscreenpath
route={[
{ x: -1.8499581999998327, y: -1.3561313999999811 },
{ x: -1.8499581999998327, y: -1.7000474000000168 },
]}
/>
<silkscreenpath
route={[
{ x: -1.8499581999998327, y: 0.09382760000005419 },
{ x: -1.8499581999998327, y: -0.09395459999996092 },
]}
/>
<silkscreenpath
route={[
{ x: -1.8499581999998327, y: 1.5999714000000722 },
{ x: -1.8499581999998327, y: 1.3560806000000412 },
]}
/>
<silkscreenpath
route={[
{ x: 1.8500852000001942, y: -1.3561313999999811 },
{ x: 1.8500852000001942, y: -1.7000474000000168 },
]}
/>
<silkscreenpath
route={[
{ x: 1.8500852000001942, y: 0.09382760000005419 },
{ x: 1.8500852000001942, y: -0.09395459999996092 },
]}
/>
<silkscreenpath
route={[
{ x: 1.8500852000001942, y: 1.5999714000000722 },
{ x: 1.8500852000001942, y: 1.3560806000000412 },
]}
/>
<silkscreenpath
route={[
{ x: -1.8499581999998327, y: 1.5999714000000722 },
{ x: 1.8500852000001942, y: 1.5999714000000722 },
]}
/>
<silkscreentext
text="GND"
pcbX="-4.919853mm"
pcbY="-1.004951mm"
anchorAlignment="bottom_left"
fontSize="0.999998mm"
/>
<silkscreentext
text="{NAME}"
pcbX="-0.705993mm"
pcbY="2.611757mm"
anchorAlignment="center"
fontSize="1mm"
/>
<fabricationnotepath
route={[
{ x: -2.412822199999823, y: -1.7779745999998795 },
{ x: -2.412822199999823, y: -1.270025399999895 },
{ x: -1.9048983999998654, y: -1.7779745999998795 },
{ x: -2.412822199999823, y: -1.7779745999998795 },
]}
strokeWidth="0.254mm"
/>
<fabricationnotepath
route={[
{ x: -4.6297849999997425, y: -0.6549898000000667 },
{ x: -4.704791200000045, y: -0.5549899999999752 },
{ x: -4.765243199999986, y: -0.5549899999999752 },
{ x: -4.846624799999859, y: -0.6067805999999791 },
{ x: -4.8697641999998496, y: -0.6916927999999416 },
{ x: -4.8697641999998496, y: -0.7868665999999394 },
{ x: -4.8380395999997745, y: -0.8821165999999039 },
{ x: -4.785461599999849, y: -0.914984200000049 },
{ x: -4.698974599999815, y: -0.914984200000049 },
{ x: -4.6297849999997425, y: -0.8527033999998821 },
{ x: -4.6297849999997425, y: -0.8449818000000278 },
{ x: -4.699787399999764, y: -0.8449818000000278 },
{ x: -4.748672986801466, y: -0.7949818999999252 },
{ x: -4.699787399999764, y: -0.7449819999999363 },
{ x: -4.57979779999971, y: -0.7449819999999363 },
{ x: -4.544442528622767, y: -0.7596213699990813 },
{ x: -4.529785199999878, y: -0.7949691999998549 },
{ x: -4.529785199999878, y: -0.8749791999999843 },
{ x: -4.534116330461757, y: -0.8953193298966653 },
{ x: -4.546345999999858, y: -0.9121394000000009 },
{ x: -4.646345799999835, y: -1.0021315999999842 },
{ x: -4.6618837061439535, y: -1.0116432938779099 },
{ x: -4.679797599999915, y: -1.0149585999998862 },
{ x: -4.799787199999969, y: -1.0149586 },
{ x: -4.813566746379934, y: -1.0130221179749697 },
{ x: -4.826279399999862, y: -1.0073639999999386 },
{ x: -4.906289399999878, y: -0.9573767999999063 },
{ x: -4.91908578609241, y: -0.9459071025083858 },
{ x: -4.927244399999836, y: -0.9307829999999058 },
{ x: -4.967223999999874, y: -0.8107679999999391 },
{ x: -4.969129954307846, y: -0.8029708434577287 },
{ x: -4.969763999999827, y: -0.7949691999998549 },
{ x: -4.969763999999827, y: -0.6849871999999095 },
{ x: -4.969326131117782, y: -0.6783501989435763 },
{ x: -4.968011399999796, y: -0.6718299999998862 },
{ x: -4.938013999999839, y: -0.5618226000000277 },
{ x: -4.930028163124234, y: -0.5453119521865801 },
{ x: -4.91662719999988, y: -0.5327903999999535 },
{ x: -4.806645199999821, y: -0.46278800000004594 },
{ x: -4.793777254873589, y: -0.45697494918056236 },
{ x: -4.779797399999893, y: -0.45499019999988377 },
{ x: -4.679797599999915, y: -0.45499019999988377 },
{ x: -4.6574362939318235, y: -0.4602644906515252 },
{ x: -4.639792599999964, y: -0.47497999999995955 },
{ x: -4.549774999999954, y: -0.5949949999999262 },
{ x: -4.560381241797359, y: -0.6641990419718695 },
{ x: -4.6297849999997425, y: -0.6549898000000667 },
]}
strokeWidth="0.254mm"
/>
<fabricationnotepath
route={[
{ x: -4.479772599999933, y: -0.9849865999999565 },
{ x: -4.479772599999933, y: -0.5049774000000298 },
{ x: -4.444139578631052, y: -0.45714368437552366 },
{ x: -4.388053199999831, y: -0.47744379999994635 },
{ x: -4.1663619999999355, y: -0.8135365999999067 },
{ x: -4.159783399999924, y: -0.5039105999999265 },
{ x: -4.1087543641396, y: -0.4561599482648262 },
{ x: -4.059808999999859, y: -0.5060442000000194 },
{ x: -4.069791200000054, y: -0.9760457999999517 },
{ x: -4.105925351886299, y: -1.0229826109764417 },
{ x: -4.161510599999701, y: -1.0025125999999318 },
{ x: -4.379772799999955, y: -0.6716013999999859 },
{ x: -4.379772799999955, y: -0.9849865999999565 },
{ x: -4.429772700000058, y: -1.0338721868016592 },
{ x: -4.479772599999933, y: -0.9849865999999565 },
]}
strokeWidth="0.254mm"
/>
<fabricationnotepath
route={[
{ x: -3.9097965999998223, y: -0.48600360000000364 },
{ x: -3.918711999999914, y: -0.9228835999998637 },
{ x: -3.7525451999998722, y: -0.9162542000000258 },
{ x: -3.672357399999896, y: -0.7398257999999487 },
{ x: -3.703929599999924, y: -0.6056375999999091 },
{ x: -3.76491499999986, y: -0.5649975999999697 },
{ x: -3.8497763999998824, y: -0.5649975999999697 },
{ x: -3.898661986801585, y: -0.5149977000000945 },
{ x: -3.8497763999998824, y: -0.4649978000001056 },
{ x: -3.7497765999999046, y: -0.4649977999999919 },
{ x: -3.7352878692194054, y: -0.4671360690531401 },
{ x: -3.722039799999834, y: -0.47337979999986146 },
{ x: -3.6320475999998507, y: -0.5333745999998882 },
{ x: -3.618717137346721, y: -0.5464601941648652 },
{ x: -3.6111179999999194, y: -0.563524399999892 },
{ x: -3.571112999999741, y: -0.733526599999891 },
{ x: -3.570019476684479, y: -0.7498661523625287 },
{ x: -3.5742625999998836, y: -0.7656829999999673 },
{ x: -3.6742623999998614, y: -0.9856723999998849 },
{ x: -3.6918754478680285, y: -1.0064619452274428 },
{ x: -3.7177725999998756, y: -1.0149331999999731 },
{ x: -3.9677847999998903, y: -1.0249407999999676 },
{ x: -4.004789708265889, y: -1.0106793005584223 },
{ x: -4.019778599999881, y: -0.9739629999999124 },
{ x: -4.009770999999887, y: -0.48397160000001804 },
{ x: -3.9587924458110137, y: -0.4362129739033662 },
{ x: -3.9097965999998223, y: -0.48600360000000364 },
]}
strokeWidth="0.254mm"
/>
<courtyardoutline
outline={[
{ x: -3.8, y: 1.95 },
{ x: 3.8, y: 1.95 },
{ x: 3.8, y: -1.95 },
{ x: -3.8, y: -1.95 },
{ x: -3.8, y: 1.95 },
]}
/>
</footprint>
}
cadModel={{
objUrl: objPath,
stepUrl: stepPath,
pcbRotationOffset: 0,
modelOriginPosition: { x: 0, y: 0, z: 0.000003399999999986747 },
}}
{...chipProps}
/>
)
}