krishnax12/watchy-eink-smartwatch

This code defines a hardware schematic and PCB layout for a smartwatch using components like ESP32 microcontroller, sensors, Bluetooth module, power regulation, and connectors, with detailed component footprints and PCB outlines.

Version
1.2.1
License
unset
Stars
2

imports/ESP32_PICO_D4.tsx

import type { ChipProps } from "tscircuit";
import esp32Step from "../assets/ESP32_PICO_D4.step";

const pinLabels = {
  "pin1": [
    "pin1",
    "1"
  ],
  "pin2": [
    "pin2",
    "2"
  ],
  "pin3": [
    "pin3",
    "3"
  ],
  "pin4": [
    "pin4",
    "4"
  ],
  "pin5": [
    "pin5",
    "5"
  ],
  "pin6": [
    "pin6",
    "6"
  ],
  "pin7": [
    "pin7",
    "7"
  ],
  "pin8": [
    "pin8",
    "8"
  ],
  "pin9": [
    "pin9",
    "9"
  ],
  "pin10": [
    "pin10",
    "10"
  ],
  "pin11": [
    "pin11",
    "11"
  ],
  "pin12": [
    "pin12",
    "12"
  ],
  "pin13": [
    "pin13",
    "13"
  ],
  "pin14": [
    "pin14",
    "14"
  ],
  "pin15": [
    "pin15",
    "15"
  ],
  "pin16": [
    "pin16",
    "16"
  ],
  "pin17": [
    "pin17",
    "17"
  ],
  "pin18": [
    "pin18",
    "18"
  ],
  "pin19": [
    "pin19",
    "19"
  ],
  "pin20": [
    "pin20",
    "20"
  ],
  "pin21": [
    "pin21",
    "21"
  ],
  "pin22": [
    "pin22",
    "22"
  ],
  "pin23": [
    "pin23",
    "23"
  ],
  "pin24": [
    "pin24",
    "24"
  ],
  "pin25": [
    "pin25",
    "25"
  ],
  "pin26": [
    "pin26",
    "26"
  ],
  "pin27": [
    "pin27",
    "27"
  ],
  "pin28": [
    "pin28",
    "28"
  ],
  "pin29": [
    "pin29",
    "29"
  ],
  "pin30": [
    "pin30",
    "30"
  ],
  "pin31": [
    "pin31",
    "31"
  ],
  "pin32": [
    "pin32",
    "32"
  ],
  "pin33": [
    "pin33",
    "33"
  ],
  "pin34": [
    "pin34",
    "34"
  ],
  "pin35": [
    "pin35",
    "35"
  ],
  "pin36": [
    "pin36",
    "36"
  ],
  "pin37": [
    "pin37",
    "37"
  ],
  "pin38": [
    "pin38",
    "38"
  ],
  "pin39": [
    "pin39",
    "39"
  ],
  "pin40": [
    "pin40",
    "40"
  ],
  "pin41": [
    "pin41",
    "41"
  ],
  "pin42": [
    "pin42",
    "42"
  ],
  "pin43": [
    "pin43",
    "43"
  ],
  "pin44": [
    "pin44",
    "44"
  ],
  "pin45": [
    "pin45",
    "45"
  ],
  "pin46": [
    "pin46",
    "46"
  ],
  "pin47": [
    "pin47",
    "47"
  ],
  "pin48": [
    "pin48",
    "48"
  ],
  "pin49": [
    "pin49",
    "49"
  ],
  "pin50": [
    "pin50",
    "50"
  ],
  "pin51": [
    "pin51",
    "51"
  ],
  "pin52": [
    "pin52",
    "52"
  ],
  "pin53": [
    "pin53",
    "53"
  ],
  "pin54": [
    "pin54",
    "54"
  ],
  "pin55": [
    "pin55",
    "55"
  ],
  "pin56": [
    "pin56",
    "56"
  ],
  "pin57": [
    "pin57",
    "57"
  ]
} as const;

export const ESP32_PICO_D4 = (props: ChipProps<typeof pinLabels>) => {
  return (
    <chip
      pinLabels={pinLabels}
      footprint={
        <footprint>
          <smtpad portHints={["pin1", "1"]} pcbX="3.4375mm" pcbY="-2.6mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin2", "2"]} pcbX="3.4375mm" pcbY="-2.2mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin3", "3"]} pcbX="3.4375mm" pcbY="-1.8mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin4", "4"]} pcbX="3.4375mm" pcbY="-1.4mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin5", "5"]} pcbX="3.4375mm" pcbY="-1mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin6", "6"]} pcbX="3.4375mm" pcbY="-0.6mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin7", "7"]} pcbX="3.4375mm" pcbY="-0.2mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin8", "8"]} pcbX="3.4375mm" pcbY="0.2mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin9", "9"]} pcbX="3.4375mm" pcbY="0.6mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin10", "10"]} pcbX="3.4375mm" pcbY="1mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin11", "11"]} pcbX="3.4375mm" pcbY="1.4mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin12", "12"]} pcbX="3.4375mm" pcbY="1.8mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin13", "13"]} pcbX="3.4375mm" pcbY="2.2mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin14", "14"]} pcbX="3.4375mm" pcbY="2.6mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin15", "15"]} pcbX="2.6mm" pcbY="3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin16", "16"]} pcbX="2.2mm" pcbY="3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin17", "17"]} pcbX="1.8mm" pcbY="3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin18", "18"]} pcbX="1.4mm" pcbY="3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin19", "19"]} pcbX="1mm" pcbY="3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin20", "20"]} pcbX="0.6mm" pcbY="3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin21", "21"]} pcbX="0.2mm" pcbY="3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin22", "22"]} pcbX="-0.2mm" pcbY="3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin23", "23"]} pcbX="-0.6mm" pcbY="3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin24", "24"]} pcbX="-1mm" pcbY="3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin25", "25"]} pcbX="-1.4mm" pcbY="3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin26", "26"]} pcbX="-1.8mm" pcbY="3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin27", "27"]} pcbX="-2.2mm" pcbY="3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin28", "28"]} pcbX="-2.6mm" pcbY="3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin29", "29"]} pcbX="-3.4375mm" pcbY="2.6mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin30", "30"]} pcbX="-3.4375mm" pcbY="2.2mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin31", "31"]} pcbX="-3.4375mm" pcbY="1.8mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin32", "32"]} pcbX="-3.4375mm" pcbY="1.4mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin33", "33"]} pcbX="-3.4375mm" pcbY="1mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin34", "34"]} pcbX="-3.4375mm" pcbY="0.6mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin35", "35"]} pcbX="-3.4375mm" pcbY="0.2mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin36", "36"]} pcbX="-3.4375mm" pcbY="-0.2mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin37", "37"]} pcbX="-3.4375mm" pcbY="-0.6mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin38", "38"]} pcbX="-3.4375mm" pcbY="-1mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin39", "39"]} pcbX="-3.4375mm" pcbY="-1.4mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin40", "40"]} pcbX="-3.4375mm" pcbY="-1.8mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin41", "41"]} pcbX="-3.4375mm" pcbY="-2.2mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin42", "42"]} pcbX="-3.4375mm" pcbY="-2.6mm" width="0.875mm" height="0.2mm" shape="rect" />
          <smtpad portHints={["pin43", "43"]} pcbX="-2.6mm" pcbY="-3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin44", "44"]} pcbX="-2.2mm" pcbY="-3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin45", "45"]} pcbX="-1.8mm" pcbY="-3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin46", "46"]} pcbX="-1.4mm" pcbY="-3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin47", "47"]} pcbX="-1mm" pcbY="-3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin48", "48"]} pcbX="-0.6mm" pcbY="-3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin49", "49"]} pcbX="-0.2mm" pcbY="-3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin50", "50"]} pcbX="0.2mm" pcbY="-3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin51", "51"]} pcbX="0.6mm" pcbY="-3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin52", "52"]} pcbX="1mm" pcbY="-3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin53", "53"]} pcbX="1.4mm" pcbY="-3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin54", "54"]} pcbX="1.8mm" pcbY="-3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin55", "55"]} pcbX="2.2mm" pcbY="-3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin56", "56"]} pcbX="2.6mm" pcbY="-3.4375mm" width="0.2mm" height="0.875mm" shape="rect" />
          <smtpad portHints={["pin57", "57"]} pcbX="0mm" pcbY="0mm" width="5.6mm" height="5.6mm" shape="rect" />
        </footprint>
      }
      cadModel={{ stepUrl: esp32Step }}
      {...props}
    />
  );
};