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
PCB
Schematic
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 };