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/EC11E183440C/EC11E183440C.tsx

import objPath from "./EC11E183440C.obj"
import stepPath from "./EC11E183440C.step"
import type { ChipProps } from "@tscircuit/props"

const pinLabels = {
  pin6: ["pin6"],
  pin7: ["pin7"],
  pin8: ["A"],
  pin9: ["C"],
  pin10: ["B"],
  pin11: ["D"],
  pin12: ["E"],
} as const

export const EC11E183440C = (props: ChipProps<typeof pinLabels>) => {
  return (
    <pinout
      pinAttributes={{
        pin6: { isPassive: true },
        pin7: { isPassive: true },
        pin8: { isPassive: true },
        pin9: { isPassive: true },
        pin10: { isPassive: true },
        pin11: { isPassive: true },
        pin12: { isPassive: true },
      }}
      pinLabels={pinLabels}
      symbol={
        <symbol>
          <schematicpath
            points={[
              { x: -0.34, y: -0.34 },
              { x: -0.28, y: -0.34 },
              { x: -0.26, y: -0.34 },
              { x: -0.26, y: -0.26 },
              { x: 0.26, y: -0.26 },
              { x: 0.26, y: -0.34 },
              { x: 0.34, y: -0.34 },
              { x: 0.34, y: 0.38 },
              { x: 0.26, y: 0.38 },
              { x: 0.26, y: 0.3 },
              { x: -0.26, y: 0.3 },
              { x: -0.26, y: 0.38 },
              { x: -0.34, y: 0.38 },
              { x: -0.34, y: -0.34 },
            ]}
            strokeColor="#880000"
          />
          <schematiccircle
            center={{ x: 0, y: 0.02 }}
            radius={0.23}
            strokeWidth={0.02}
            color="#880000"
          />
          <schematicpath
            points={[
              { x: -0.2, y: -0.26 },
              { x: -0.2, y: -0.4 },
              { x: -0.2, y: -0.4 },
            ]}
            strokeColor="#880000"
          />
          <schematicpath
            points={[
              { x: 0, y: -0.26 },
              { x: 0, y: -0.4 },
            ]}
            strokeColor="#880000"
          />
          <schematicpath
            points={[
              { x: 0.2, y: -0.26 },
              { x: 0.2, y: -0.4 },
            ]}
            strokeColor="#880000"
          />
          <schematicpath
            points={[
              { x: -0.2, y: 0.3 },
              { x: -0.2, y: 0.4 },
            ]}
            strokeColor="#880000"
          />
          <schematicpath
            points={[
              { x: 0.2, y: 0.3 },
              { x: 0.2, y: 0.4 },
            ]}
            strokeColor="#880000"
          />
          <port
            name="pin8"
            pinNumber={8}
            aliases={["A"]}
            direction="down"
            schX={-0.2}
            schY={-0.6}
            schStemLength={0.2}
          />
          <port
            name="pin10"
            pinNumber={10}
            aliases={["B"]}
            direction="down"
            schX={0.2}
            schY={-0.6}
            schStemLength={0.2}
          />
          <port
            name="pin9"
            pinNumber={9}
            aliases={["C"]}
            direction="down"
            schX={0}
            schY={-0.6}
            schStemLength={0.2}
          />
          <port
            name="pin11"
            pinNumber={11}
            aliases={["D"]}
            direction="up"
            schX={-0.2}
            schY={0.6}
            schStemLength={0.2}
          />
          <port
            name="pin12"
            pinNumber={12}
            aliases={["E"]}
            direction="up"
            schX={0.2}
            schY={0.6}
            schStemLength={0.2}
          />
          <port
            name="pin6"
            pinNumber={6}
            aliases={["6"]}
            direction="right"
            schX={0.6}
            schY={0}
            schStemLength={0.26}
          />
          <port
            name="pin7"
            pinNumber={7}
            aliases={["7"]}
            direction="left"
            schX={-0.6}
            schY={0}
            schStemLength={0.26}
          />
        </symbol>
      }
      supplierPartNumbers={{
        jlcpcb: ["C370986"],
      }}
      manufacturerPartNumber="EC11E183440C"
      footprint={
        <footprint>
          <platedhole
            portHints={["pin8"]}
            pcbX="-2.540127mm"
            pcbY="-7.250049mm"
            outerDiameter="1.7999964mm"
            holeDiameter="1.3000228mm"
            shape="circle"
          />
          <platedhole
            portHints={["pin9"]}
            pcbX="-0.000127mm"
            pcbY="-7.250049mm"
            outerDiameter="1.7999964mm"
            holeDiameter="1.3000228mm"
            shape="circle"
          />
          <platedhole
            portHints={["pin10"]}
            pcbX="2.539873mm"
            pcbY="-7.250049mm"
            outerDiameter="1.7999964mm"
            holeDiameter="1.3000228mm"
            shape="circle"
          />
          <platedhole
            portHints={["pin11"]}
            pcbX="-2.540127mm"
            pcbY="7.250049mm"
            outerDiameter="1.7999964mm"
            holeDiameter="1.3000228mm"
            shape="circle"
          />
          <platedhole
            portHints={["pin12"]}
            pcbX="2.539873mm"
            pcbY="7.250049mm"
            outerDiameter="1.7999964mm"
            holeDiameter="1.3000228mm"
            shape="circle"
          />
          <platedhole
            portHints={["pin6"]}
            pcbX="5.499989mm"
            pcbY="0.250063mm"
            holeWidth="3.200019mm"
            holeHeight="1.5000224mm"
            outerWidth="3.999992mm"
            outerHeight="2.2999954mm"
            pcbRotation="90deg"
            shape="pill"
          />
          <platedhole
            portHints={["pin7"]}
            pcbX="-5.499989mm"
            pcbY="0.250063mm"
            holeWidth="3.200019mm"
            holeHeight="1.5000224mm"
            outerWidth="3.999992mm"
            outerHeight="2.2999954mm"
            pcbRotation="90deg"
            shape="pill"
          />
          <silkscreenpath
            route={[
              { x: -5.900115200000187, y: 6.250076400000012 },
              { x: -5.900115200000187, y: 2.4218391999999085 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: 5.899861199999918, y: 2.421966199999929 },
              { x: 5.899988199999825, y: 6.250076400000012 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: 5.899861199999918, y: -5.7500012000000424 },
              { x: -5.900115200000187, y: -5.749950399999989 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: -5.900115200000187, y: 6.250000199999931 },
              { x: -3.065932400000065, y: 6.250076400000012 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: -2.794127000000117, y: 1.266063000000031 },
              { x: 2.7938729999999623, y: 1.266063000000031 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: -5.900115200000187, y: 6.250076400000012 },
              { x: -5.900115200000187, y: 2.4218391999999085 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: -5.900115200000187, y: -1.9217131999998855 },
              { x: -5.900115200000187, y: -5.749950399999989 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: 5.899861199999918, y: -5.749950399999989 },
              { x: 5.899861199999918, y: -1.9218402000001333 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: 4.787925399999949, y: 2.2820629999999937 },
              { x: 3.9749475999998367, y: 2.2820629999999937 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: 4.787925399999949, y: -1.7819369999999708 },
              { x: 3.9749475999998367, y: -1.7819369999999708 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: -5.900115200000187, y: -1.9217131999998855 },
              { x: -5.900115200000187, y: -5.749950399999989 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: -4.05142699999999, y: 2.2820629999999937 },
              { x: -4.787925400000063, y: 2.2820629999999937 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: -4.787925400000063, y: -1.7819369999999708 },
              { x: -3.810127000000193, y: -1.7819369999999708 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: -2.0143216000001303, y: 6.250076400000012 },
              { x: 2.0140675999999758, y: 6.250076400000012 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: 3.065678399999797, y: 6.250076400000012 },
              { x: 5.899861199999918, y: 6.250076400000012 },
            ]}
          />
          <silkscreenpath
            route={[
              { x: 1.777872999999886, y: 1.266063000000031 },
              { x: 1.8859268226797212, y: 1.0415664378789415 },
              { x: 1.965765487822864, y: 0.8055577038286401 },
              { x: 2.016194617789324, y: 0.5615674625264546 },
              { x: 2.0364597983467547, y: 0.313245781119349 },
              { x: 2.026257864624995, y: 0.06430752462142664 },
              { x: 1.9857414364294073, y: -0.18152321805769134 },
              { x: 1.9155166350651598, y: -0.4205688460729107 },
              { x: 1.816634015828754, y: -0.6492532631477843 },
              { x: 1.6905728518174783, y: -0.864155375580367 },
              { x: 1.5392190041659433, y: -1.0620602714290044 },
              { x: 1.3648367097707705, y: -1.2400073152409732 },
              { x: 1.1700347085575231, y: -1.3953344388321511 },
              { x: 0.9577272170164406, y: -1.5257179655351365 },
              { x: 0.7310903318468718, y: -1.6292073721451743 },
              { x: 0.4935145158983687, y: -1.7042544685333496 },
              { x: 0.24855387722118394, y: -1.7497365584006275 },
              { x: -0.00012700000013410317, y: -1.7649732346892506 },
              { x: -0.24880787722145215, y: -1.7497365584006275 },
              { x: -0.4937685158986369, y: -1.7042544685333496 },
              { x: -0.73134433184714, y: -1.6292073721451743 },
              { x: -0.9579812170165951, y: -1.5257179655351365 },
              { x: -1.1702887085576776, y: -1.3953344388321511 },
              { x: -1.3650907097710387, y: -1.2400073152409732 },
              { x: -1.5394730041660978, y: -1.0620602714290044 },
              { x: -1.6908268518177465, y: -0.864155375580367 },
              { x: -1.8168880158289085, y: -0.6492532631477843 },
              { x: -1.9157706350653143, y: -0.4205688460729107 },
              { x: -1.9859954364295618, y: -0.18152321805769134 },
              { x: -2.026511864625263, y: 0.06430752462142664 },
              { x: -2.0367137983469092, y: 0.313245781119349 },
              { x: -2.0164486177894787, y: 0.5615674625264546 },
              { x: -1.9660194878230186, y: 0.8055577038286401 },
              { x: -1.8861808226799894, y: 1.0415664378789415 },
              { x: -1.7781270000000404, y: 1.266063000000031 },
            ]}
          />
          <silkscreencircle
            pcbX="-0.000127mm"
            pcbY="0.250063mm"
            radius="4.325366mm"
          />
          <silkscreencircle
            pcbX="-0.000127mm"
            pcbY="0.250063mm"
            radius="3.3528mm"
          />
          <silkscreencircle
            pcbX="-0.000127mm"
            pcbY="0.250063mm"
            radius="3.048mm"
          />
          <silkscreentext
            text="{NAME}"
            pcbX="-0.000127mm"
            pcbY="9.149463mm"
            anchorAlignment="center"
            fontSize="1mm"
          />
          <courtyardoutline
            outline={[
              { x: -6.600127000000043, y: 8.399462999999969 },
              { x: 6.599872999999889, y: 8.399462999999969 },
              { x: 6.599872999999889, y: -8.407337000000098 },
              { x: -6.600127000000043, y: -8.407337000000098 },
              { x: -6.600127000000043, y: 8.399462999999969 },
            ]}
          />
        </footprint>
      }
      cadModel={{
        objUrl: objPath,
        stepUrl: stepPath,
        pcbRotationOffset: 0,
        modelOriginPosition: {
          x: 0.000012700000070253736,
          y: -0.24998729999992975,
          z: -0.000006999999999646178,
        },
      }}
      {...props}
    />
  )
}