AnasSarkiz/ESP32_module

This circuit implements an ESP32-based wireless communication module with integrated crystal oscillator, decoupling capacitors, antenna, and multiple serial flash and RAM chips for storage.

Usage: To import and use the ESP32 module component: 1. Import the component: ```tsx import { ESP32Module } from "@tsci/AnasSarkiz.ESP32_module" ``` 2. Use in a circuit: ```tsx <board> <ESP32Module name="ESP32_1" /> </board> ``` The component includes a pre-configured ESP32 module with associated capacitors, resistors, and other supporting components. It can be directly added to a circuit board design.

Version
0.0.1
License
unset
Stars
5

dist/index.esm.js

PCBPCB preview for dist/index.esm.js
SchematicSchematic preview for dist/index.esm.js
import { createUseComponent, useCapacitor, useResistor } from '@tscircuit/core';

function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
const pinLabels = {
  pin1: ["VDDA"],
  pin2: ["LNA_IN"],
  pin3: ["VDD3P3"],
  pin4: ["VDD3P3"],
  pin5: ["SENSOR_VP"],
  pin6: ["SENSOR_CAPP"],
  pin7: ["SENSOR_CAPN"],
  pin8: ["SENSOR_VN"],
  pin9: ["CHIP_PU"],
  pin10: ["VDET_1"],
  pin11: ["VDET_2"],
  pin12: ["32K_XP"],
  pin13: ["32K_XN"],
  pin14: ["GPIO25"],
  pin15: ["GPIO26"],
  pin16: ["GPIO27"],
  pin17: ["MTMS"],
  pin18: ["MTDI"],
  pin19: ["VDD3P3_RTC"],
  pin20: ["MTCK"],
  pin21: ["MTDO"],
  pin22: ["GPIO2"],
  pin23: ["GPIO0"],
  pin24: ["GPIO4"],
  pin25: ["GPIO16"],
  pin26: ["VDD_SDIO"],
  pin27: ["GPIO17"],
  pin28: ["SD_DATA_2"],
  pin29: ["SD_DATA_3"],
  pin30: ["SD_CMD"],
  pin31: ["SD_CLK"],
  pin32: ["SD_DATA_0"],
  pin33: ["SD_DATA_1"],
  pin34: ["GPIO5"],
  pin35: ["GPIO18"],
  pin36: ["GPIO23"],
  pin37: ["VDD3P3_CPU"],
  pin38: ["GPIO19"],
  pin39: ["GPIO22"],
  pin40: ["U0RXD"],
  pin41: ["U0TXD"],
  pin42: ["GPIO21"],
  pin43: ["VDDA"],
  pin44: ["XTAL_N"],
  pin45: ["XTAL_P"],
  pin46: ["VDDA"],
  pin47: ["CAP1"],
  pin48: ["CAP2"],
  pin49: ["GND"]
};
const ESP32_D0WD = props => /*#__PURE__*/React.createElement("chip", _extends({}, props, {
  pinLabels: pinLabels,
  schHeight: 6,
  schWidth: 6,
  manufacturerPartNumber: "ESP32-D0WD",
  schPortArrangement: {
    leftSide: {
      pins: ["pin14", "pin13", "pin12", "pin11", "pin10", "pin9", "pin8", "pin7", "pin6", "pin5", "pin4", "pin3", "pin2", "pin1"],
      direction: "right-to-left"
    },
    bottomSide: {
      pins: ["pin24", "pin23", "pin22", "pin21", "pin20", "pin19", "pin18", "pin17", "pin16", "pin15"],
      direction: "top-to-bottom"
    },
    rightSide: {
      pins: ["pin38", "pin37", "pin36", "pin35", "pin34", "pin33", "pin32", "pin31", "pin30", "pin29", "pin28", "pin27", "pin26", "pin25"],
      direction: "left-to-right"
    },
    topSide: {
      pins: ["pin49", "pin48", "pin47", "pin46", "pin45", "pin44", "pin43", "pin42", "pin41", "pin40", "pin39"],
      direction: "bottom-to-top"
    }
  },
  schPinStyle: {
    pin49: {
      rightMargin: 2
    }
  },
  schPinSpacing: 0.3,
  footprint: "qfp49"
}));
const useESP32_D0WD = createUseComponent(ESP32_D0WD, pinLabels);

const ESP32Module = props => {
  const ESP32 = useESP32_D0WD("U2");

  // Capacitors
  const C1 = useCapacitor("C1", {
    capacitance: "0F"
  }); //TDB
  const C2 = useCapacitor("C2", {
    capacitance: "0F"
  }); //TDB
  const C3 = useCapacitor("C3", {
    capacitance: "100pF"
  });
  const C4 = useCapacitor("C4", {
    capacitance: "0.1uF"
  });
  const C5 = useCapacitor("C5", {
    capacitance: "10nF"
  }); // 10nF/6.3V (10%)
  const C6 = useCapacitor("C6", {
    capacitance: "3.3nF"
  }); // 3.3nf/6.3V (10%)
  const C9 = useCapacitor("C9", {
    capacitance: "1nF"
  });
  const C10 = useCapacitor("C10", {
    capacitance: "0.1uF"
  });
  const C11 = useCapacitor("C11", {
    capacitance: "1uF"
  });
  const C13 = useCapacitor("C13", {
    capacitance: "10uF"
  });
  const C14 = useCapacitor("C14", {
    capacitance: "0"
  }); // TBD
  const C15 = useCapacitor("C15", {
    capacitance: "0"
  }); // TBD
  const C19 = useCapacitor("C19", {
    capacitance: "0.1uF"
  });
  const C20 = useCapacitor("C20", {
    capacitance: "1uF"
  });
  const C21 = useCapacitor("C21", {
    capacitance: "0"
  }); // NC
  const C24 = useCapacitor("C24", {
    capacitance: "1uF"
  });

  // Resistors
  const R1 = useResistor("R1", {
    resistance: "20k"
  });
  const R2 = useResistor("R2", {
    resistance: "0Ω"
  }); //TDB
  const R3 = useResistor("R3", {
    resistance: "499Ω"
  });
  const R4 = useResistor("R4", {
    resistance: "2k"
  });
  const R9 = useResistor("R9", {
    resistance: "10k"
  });
  const R10 = useResistor("R10", {
    resistance: "1k"
  });
  return /*#__PURE__*/React.createElement("group", {
    subcircuit: true,
    routingDisabled: true
  }, /*#__PURE__*/React.createElement(ESP32, null), /*#__PURE__*/React.createElement(C1, {
    pos: ".U1 .XIN",
    neg: "net.GND",
    schX: 0.5,
    schY: 9,
    schRotation: "270deg"
  }), /*#__PURE__*/React.createElement(C2, {
    neg: "net.GND",
    pos: ESP32.XTAL_N,
    schX: 4.5,
    schY: 9,
    schRotation: "270deg"
  }), /*#__PURE__*/React.createElement(C3, {
    neg: "net.GND",
    pos: ".C20 .pos",
    schX: -10,
    schY: 9.1,
    schRotation: "90deg"
  }), /*#__PURE__*/React.createElement(C4, {
    neg: "net.GND",
    pos: ESP32.VDD3P3_CPU,
    schX: 4.8,
    schY: 3,
    schRotation: "270deg"
  }), /*#__PURE__*/React.createElement(C5, {
    neg: "net.GND",
    pos: ".C6 .pos",
    schX: -4,
    schY: 5.7,
    schRotation: "270deg"
  }), /*#__PURE__*/React.createElement(C6, {
    neg: ESP32.CAP1,
    pos: ESP32.CAP2,
    schX: -1.5,
    schY: 5
  }), /*#__PURE__*/React.createElement(C9, {
    neg: "net.GND",
    pos: ESP32.VDDA,
    schX: -7.8,
    schY: 5.5,
    schRotation: "90deg"
  }), /*#__PURE__*/React.createElement(C10, {
    neg: "net.GND",
    pos: ".L4 .pin1",
    schX: -10,
    schY: 3,
    schRotation: "90deg"
  }), /*#__PURE__*/React.createElement(C11, {
    neg: "net.GND",
    pos: ".C10 .pos",
    schX: -12,
    schY: 3,
    schRotation: "90deg"
  }), /*#__PURE__*/React.createElement(C13, {
    neg: "net.GND",
    pos: ".C11 .pos",
    schX: -14,
    schY: 3,
    schRotation: "90deg"
  }), /*#__PURE__*/React.createElement(C14, {
    neg: "net.GND",
    pos: ESP32.pin2,
    schX: -8,
    schY: 1.1,
    schRotation: "90deg"
  }), /*#__PURE__*/React.createElement(C15, {
    neg: "net.GND",
    pos: ".L5 .pin1",
    schX: -10,
    schY: 1.1,
    schRotation: "90deg"
  }), /*#__PURE__*/React.createElement(C19, {
    neg: "net.GND",
    pos: ESP32.VDD3P3_RTC,
    schX: 5,
    schY: -6,
    schRotation: "90deg"
  }), /*#__PURE__*/React.createElement(C20, {
    neg: "net.GND",
    pos: ESP32.pin46,
    schX: -8,
    schY: 9.5,
    schRotation: "90deg"
  }), /*#__PURE__*/React.createElement(C21, {
    neg: "net.GND",
    schX: -8,
    schY: 3,
    schRotation: "90deg"
  }), /*#__PURE__*/React.createElement(C24, {
    neg: "net.GND",
    pos: ".R4 .pin2",
    schX: 7,
    schY: -3,
    schRotation: "90deg"
  }), /*#__PURE__*/React.createElement(R1, {
    pin1: ".C6 .pos",
    pin2: ".C6 .neg",
    schX: -1.3,
    schY: 6
  }), /*#__PURE__*/React.createElement(R2, {
    pin1: ESP32.XTAL_P,
    pin2: ".C1 .pos",
    schX: 0.5,
    schY: 5,
    schRotation: "90deg"
  }), /*#__PURE__*/React.createElement(R3, {
    pin1: ESP32.U0TXD,
    pin2: "net.U0TXD",
    schX: 4,
    schY: 6
  }), /*#__PURE__*/React.createElement(R4, {
    pin1: "net.GND",
    pin2: ESP32.VDD_SDIO,
    schX: 5,
    schY: -3,
    schRotation: "90deg"
  }), /*#__PURE__*/React.createElement(R9, {
    pin1: "net.VDD33",
    pin2: ESP32.MTDI,
    schX: -3,
    schY: -5.58
  }), /*#__PURE__*/React.createElement(R10, {
    pin1: ".U4 .pin1",
    pin2: "net.VDD_SDIO",
    schX: 10.5,
    schY: -1.2,
    schRotation: "90deg"
  }), /*#__PURE__*/React.createElement("inductor", {
    name: "L4",
    inductance: "2.0nH",
    schX: -9,
    schY: 3.5
  }), /*#__PURE__*/React.createElement("inductor", {
    name: "L5",
    inductance: "TBD",
    schX: -9,
    schY: 1.58
  }), /*#__PURE__*/React.createElement("chip", {
    name: "ANT1",
    manufacturerPartNumber: "ANT-2.4-CW-RCL",
    schPortArrangement: {
      rightSide: {
        pins: ["pin2", "pin1"],
        direction: "top-to-bottom"
      }
    },
    schX: -14,
    schY: 1.1
  }), /*#__PURE__*/React.createElement("chip", {
    name: "U1",
    manufacturerPartNumber: "ATS400B",
    schPortArrangement: {
      topSide: {
        pins: ["pin1", "pin2"],
        direction: "top-to-bottom"
      },
      bottomSide: {
        pins: ["pin3", "pin4"],
        direction: "top-to-bottom"
      }
    },
    pinLabels: {
      pin1: "XIN",
      pin2: "GND",
      pin3: "XOUT",
      pin4: "GND"
    },
    schPinSpacing: 0.35,
    schHeight: 1,
    schWidth: 1,
    schX: 2.2,
    schY: 9
  }), /*#__PURE__*/React.createElement("chip", {
    name: "U3",
    manufacturerPartNumber: "W25Q32JVSSIQ",
    schPortArrangement: {
      leftSide: {
        pins: ["pin1", "pin6", "pin7"],
        direction: "top-to-bottom"
      },
      bottomSide: {
        pins: ["pin4"],
        direction: "top-to-bottom"
      },
      rightSide: {
        pins: ["pin5", "pin2", "pin3"],
        direction: "top-to-bottom"
      },
      topSide: {
        pins: ["pin8"],
        direction: "top-to-bottom"
      }
    },
    pinLabels: {
      pin1: "/CS",
      pin2: "DO",
      pin3: "/WP",
      pin4: "GND",
      pin5: "DI",
      pin6: "CLK",
      pin7: "/HOLD",
      pin8: "VDD_SDIO"
    },
    schPinSpacing: 0.35,
    schHeight: 1.5,
    schWidth: 1,
    schX: 12,
    schY: 2
  }), /*#__PURE__*/React.createElement("chip", {
    name: "U4",
    manufacturerPartNumber: "LY68L6400SLIT",
    schPortArrangement: {
      leftSide: {
        pins: ["pin1", "pin6", "pin7"],
        direction: "top-to-bottom"
      },
      bottomSide: {
        pins: ["pin4"],
        direction: "top-to-bottom"
      },
      rightSide: {
        pins: ["pin5", "pin2", "pin3"],
        direction: "top-to-bottom"
      },
      topSide: {
        pins: ["pin8"],
        direction: "top-to-bottom"
      }
    },
    pinLabels: {
      pin1: "CS",
      pin2: "SO/SIO1",
      pin3: "SIO2",
      pin4: "VSS",
      pin5: "SI/SIOO",
      pin6: "SCLK",
      pin7: "SIO3",
      pin8: "VDD_SDIO"
    },
    schPinSpacing: 0.35,
    schHeight: 1.5,
    schWidth: 1,
    schX: 12,
    schY: -3
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".C21 .pos",
    to: ".L4 .pin2"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".C14 .pos",
    to: ".L5 .pin2"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".C3 .pos",
    to: "net.VDD33"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".C13 .pos",
    to: "net.VDD33"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".C9 .pos",
    to: "net.VDD33"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".C19 .pos",
    to: "net.VDD33"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".C4 .pos",
    to: "net.VDD33"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".C24 .pos",
    to: "net.VDD_SDIO"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.pin3,
    to: ESP32.pin4
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.pin3,
    to: ".C21 .pos"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.SENSOR_VP,
    to: "net.SENSOR_VP"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.SENSOR_CAPP,
    to: "net.SENSOR_CAPP"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.SENSOR_CAPN,
    to: "net.SENSOR_CAPN"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.SENSOR_CAPN,
    to: "net.SENSOR_CAPN"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.SENSOR_VN,
    to: "net.SENSOR_VN"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.CHIP_PU,
    to: "net.EN"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.VDET_1,
    to: "net.GPIO34"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.VDET_2,
    to: "net.GPIO35"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.pin12,
    to: "net.GPIO32"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.pin13,
    to: "net.GPIO33"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO25,
    to: "net.GPIO25"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO26,
    to: "net.GPIO26"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO27,
    to: "net.GPIO27"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.MTMS,
    to: "net.GPIO14"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.MTDI,
    to: "net.GPIO12"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.MTCK,
    to: "net.GPIO13"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.MTDO,
    to: "net.GPIO15"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO2,
    to: "net.GPIO2"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO0,
    to: "net.GPIO0"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO4,
    to: "net.GPIO4"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO16,
    to: "net.GPIO16"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO17,
    to: "net.GPIO17"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.SD_DATA_2,
    to: "net.SHD/SD2"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.SD_DATA_3,
    to: "net.SWP/SD3"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.SD_CMD,
    to: "net.SCS/SMD"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.SD_CLK,
    to: "net.SCK/CLK"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.SD_DATA_0,
    to: "net.SDO/SD0"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.SD_DATA_1,
    to: "net.SDI/SD1"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO5,
    to: "net.GPIO51"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO18,
    to: "net.GPIO18"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO23,
    to: "net.GPIO23"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO19,
    to: "net.GPIO19"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO19,
    to: ESP32.VDD3P3_CPU
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO22,
    to: "net.GPIO22"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.U0RXD,
    to: "net.U0RXD"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GPIO21,
    to: "net.GPIO21"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.pin43,
    to: ESP32.pin46
  }), /*#__PURE__*/React.createElement("trace", {
    from: ESP32.GND,
    to: "net.GND"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".ANT1 .pin1",
    to: ".C15 .pos"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".ANT1 .pin2",
    to: "net.GND"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U1 .pin3",
    to: ".C2 .pos"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U1 .pin2",
    to: "net.GND"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U1 .pin4",
    to: "net.GND"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U3 .pin1",
    to: "net.SCS/CMD"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U3 .pin2",
    to: "net.SDO/SDO"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U3 .pin3",
    to: "net.SWP/SD3"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U3 .pin4",
    to: "net.GND"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U3 .pin5",
    to: "net.SDI/SD1"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U3 .pin6",
    to: "net.SCK/CLK"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U3 .pin7",
    to: "net.SHD/SD2"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U3 .pin8",
    to: "net.VDD_SDIO"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U4 .pin1",
    to: "net.GPIO16"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U4 .pin2",
    to: "net.SDO/SDO"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U4 .pin3",
    to: "net.SWP/SD3"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U4 .pin4",
    to: "net.GND"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U4 .pin5",
    to: "net.SDI/SD1"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U4 .pin6",
    to: "net.PSRAM_CLK"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U4 .pin7",
    to: "net.SHD/SD2"
  }), /*#__PURE__*/React.createElement("trace", {
    from: ".U4 .pin8",
    to: "net.VDD_SDIO"
  }));
};

export { ESP32Module };