hrithik18k/Chatting-Device

This code defines React components representing surface-mount voltage regulator and resistor chips with specified pin layouts, footprints, and 3D CAD models for electronic hardware design.

Version
1.0.0
License
unset
Stars
0

index.modular.circuit.tsx

PCBPCB preview for index.modular.circuit.tsx
SchematicSchematic preview for index.modular.circuit.tsx
import React from "react"
import { B2B_PH_K_S_LF__SN_ } from "./imports/B2B_PH_K_S_LF__SN_"
import { B_2100S02P_A110 } from "./imports/B_2100S02P_A110"
import { CC0805KRX7R9BB104 } from "./imports/CC0805KRX7R9BB104"
import { RVT1A471M0607 } from "./imports/RVT1A471M0607"
import { ESP32_WROOM_32E_N4 } from "./imports/ESP32_WROOM_32E_N4"
import { AMS1117_3_3 } from "./imports/AMS1117_3_3"

const singleRowFootprint = (pins: number, pitch = 2.54) => (
  <footprint>
    {Array.from({ length: pins }, (_, i) => <React.Fragment key={i}><platedhole portHints={[`pin${i + 1}`]} pcbX={(i - (pins - 1) / 2) * pitch} pcbY={0} shape="circle" holeDiameter="1mm" outerDiameter="1.8mm" /></React.Fragment>)}
    <silkscreenrect width={pins * pitch} height="2.5mm" />
  </footprint>
)

const dualRowFootprint = (pinsPerRow: number, rowSpacing: number, pitch = 2.54) => (
  <footprint>
    {Array.from({ length: pinsPerRow }, (_, i) => <React.Fragment key={i}>
      <platedhole portHints={[`pin${i + 1}`]} pcbX={-rowSpacing / 2} pcbY={(pinsPerRow - 1) * pitch / 2 - i * pitch} shape="circle" holeDiameter="1mm" outerDiameter="1.8mm" />
      <platedhole portHints={[`pin${pinsPerRow * 2 - i}`]} pcbX={rowSpacing / 2} pcbY={(pinsPerRow - 1) * pitch / 2 - i * pitch} shape="circle" holeDiameter="1mm" outerDiameter="1.8mm" />
    </React.Fragment>)}
    <silkscreenrect width={rowSpacing + 2.8} height={pinsPerRow * pitch} />
  </footprint>
)

const esp32Pins = {
  pin1: "V3_3", pin2: "EN", pin3: "GPIO36", pin4: "GPIO39", pin5: "GPIO34", pin6: "GPIO35", pin7: "GPIO32", pin8: "GPIO33", pin9: "GPIO25", pin10: "GPIO26", pin11: "GPIO27", pin12: "GPIO14", pin13: "GPIO12", pin14: "GND1", pin15: "GPIO13", pin16: "GPIO9", pin17: "GPIO10", pin18: "GPIO11", pin19: "VIN",
  pin20: "GND2", pin21: "GPIO23", pin22: "GPIO22", pin23: "GPIO1", pin24: "GPIO3", pin25: "GPIO21", pin26: "GND3", pin27: "GPIO19", pin28: "GPIO18", pin29: "GPIO5", pin30: "GPIO17", pin31: "GPIO16", pin32: "GPIO4", pin33: "GPIO0", pin34: "GPIO2", pin35: "GPIO15", pin36: "GPIO8", pin37: "GPIO7", pin38: "GPIO6",
} as const

export default function LoRaChattingDevice() {
  return <board width="70mm" height="120mm" layers={2}>
    <schematicsection name="Power" displayName="Battery, charging and 5V boost" />
    <schematicsection name="Controller" displayName="ESP32 DevKit V1" />
    <schematicsection name="Radio" displayName="RYLR993 / RYLR998 LoRa UART" />
    <schematicsection name="Display" displayName="2.8in ILI9341 + XPT2046 touch" />
    <schematicsection name="Time" displayName="DS3231 RTC" />

    <ESP32_WROOM_32E_N4 name="U1" pcbX={-10} pcbY={2} schX={0} schY={0} schHeight={4.8} schSectionName="Controller" />
    <AMS1117_3_3 name="U2" pcbX={10} pcbY={-39} schX={9} schY={-17} schSectionName="Power" />
    <chip name="J1" manufacturerPartNumber="RYLR993-LITE-UART-MODULE" supplierPartNumbers={{ jlcpcb: ["C50950"] }} footprint={singleRowFootprint(5)} pinLabels={{ pin1: "VDD", pin2: "NRST", pin3: "RXD", pin4: "TXD", pin5: "GND" }} pcbX={-25} pcbY={-30} pcbRotation={90} schX={-12} schY={0} schHeight={0.6} schSectionName="Radio" />
    <chip name="J2" manufacturerPartNumber="ILI9341-XPT2046-2.8IN-14PIN" supplierPartNumbers={{ jlcpcb: ["C7509524"] }} footprint={singleRowFootprint(14)} pinLabels={{ pin1: "VCC", pin2: "GND", pin3: "TFT_CS", pin4: "TFT_RST", pin5: "TFT_DC", pin6: "SDI_MOSI", pin7: "SCK", pin8: "LED", pin9: "SDO_MISO", pin10: "T_CLK", pin11: "T_CS", pin12: "T_DIN", pin13: "T_DO", pin14: "T_IRQ" }} pcbX={0} pcbY={54} schX={13} schY={0} schSectionName="Display" />
    <chip name="J3" manufacturerPartNumber="DS3231-RTC-MODULE" supplierPartNumbers={{ jlcpcb: ["C40877"] }} footprint={singleRowFootprint(6)} pinLabels={{ pin1: "SQW", pin2: "SCL", pin3: "SDA", pin4: "VCC", pin5: "GND", pin6: "32K" }} pcbX={25} pcbY={-28} pcbRotation={90} schX={-12} schY={-10} schSectionName="Time" />
    <chip name="J4" manufacturerPartNumber="TP4056-PROTECTED-MODULE-6PIN" supplierPartNumbers={{ jlcpcb: ["C40877"] }} footprint={singleRowFootprint(6)} pinLabels={{ pin1: "IN_PLUS", pin2: "IN_MINUS", pin3: "BAT_PLUS", pin4: "BAT_MINUS", pin5: "OUT_PLUS", pin6: "OUT_MINUS" }} pcbX={-24} pcbY={-49} schX={0} schY={-12} schSectionName="Power" />
    <chip name="J5" manufacturerPartNumber="XL6009-BOOST-MODULE-4PIN" supplierPartNumbers={{ jlcpcb: ["C2718488"] }} footprint={singleRowFootprint(4)} pinLabels={{ pin1: "IN_PLUS", pin2: "IN_MINUS", pin3: "OUT_PLUS", pin4: "OUT_MINUS" }} pcbX={-6} pcbY={-49} schX={6} schY={-12} schSectionName="Power" />
    <B2B_PH_K_S_LF__SN_ name="BT1" pcbX={26} pcbY={-53} schX={-6} schY={-12} schSectionName="Power" />
    <B_2100S02P_A110 name="SW1" pcbX={7} pcbY={-51} schX={3} schY={-15} schSectionName="Power" />
    <RVT1A471M0607 name="C1" pcbX={20} pcbY={-42} schX={10} schY={-6} schRotation={-90} schSectionName="Power" />
    <CC0805KRX7R9BB104 name="C2" pcbX={29} pcbY={-42} schX={15.5} schY={-12} schRotation={-90} schSectionName="Power" />

    <hole name="H1" diameter="3.2mm" pcbX={-31} pcbY={56} /><hole name="H2" diameter="3.2mm" pcbX={31} pcbY={56} />
    <hole name="H3" diameter="3.2mm" pcbX={-31} pcbY={-56} /><hole name="H4" diameter="3.2mm" pcbX={31} pcbY={-56} />
    <silkscreenrect pcbX={0} pcbY={32} width="56mm" height="40mm" />
    <silkscreentext text="2.8in TOUCH DISPLAY" pcbX={0} pcbY={12} fontSize="1.2mm" />
    <silkscreentext text="LoRa Chatting Device" pcbX={0} pcbY={58} fontSize="1.6mm" /><silkscreentext text="IN865 / RYLR993" pcbX={-20} pcbY={-15} fontSize="1.2mm" />

    <trace from="U1.3V3" to="net.V3_3" width="0.15mm" /><trace from="U1.EN" to="net.V3_3" width="0.15mm" />
    <trace from="U1.GND1" to="net.GND" width="0.15mm" /><trace from="U1.GND2" to="net.GND" width="0.15mm" /><trace from="U1.GND3" to="net.GND" width="0.15mm" /><trace from="U1.GND4" to="net.GND" width="0.15mm" />
    <trace from="J1.VDD" to="net.V3_3" width="0.15mm" /><trace from="J1.GND" to="net.GND" width="0.15mm" /><trace from="J1.RXD" to="U1.IO13" width="0.15mm" /><trace from="J1.TXD" to="U1.IO14" width="0.15mm" /><trace from="J1.NRST" to="net.V3_3" width="0.15mm" />
    <trace from="J3.VCC" to="net.V3_3" width="0.15mm" /><trace from="J3.GND" to="net.GND" width="0.15mm" /><trace from="J3.SDA" to="U1.IO25" width="0.15mm" /><trace from="J3.SCL" to="U1.IO26" width="0.15mm" />
    <trace from="J2.VCC" to="net.V3_3" width="0.15mm" /><trace from="J2.LED" to="net.V3_3" width="0.15mm" /><trace from="J2.GND" to="net.GND" width="0.15mm" />
    <trace from="J2.TFT_CS" to="U1.IO15" width="0.15mm" /><trace from="J2.TFT_RST" to="U1.IO4" width="0.15mm" /><trace from="J2.TFT_DC" to="U1.IO2" width="0.15mm" />
    <trace from="J2.SDI_MOSI" to="U1.IO23" width="0.15mm" /><trace from="J2.SCK" to="U1.IO18" width="0.15mm" /><trace from="J2.SDO_MISO" to="U1.IO19" width="0.15mm" />
    <trace from="J2.T_CLK" to="U1.IO18" width="0.15mm" /><trace from="J2.T_CS" to="U1.IO21" width="0.15mm" /><trace from="J2.T_DIN" to="U1.IO23" width="0.15mm" /><trace from="J2.T_DO" to="U1.IO19" width="0.15mm" />
    <trace from="J2.T_IRQ" to="U1.IO22" width="0.15mm" />
    <trace from="BT1.pin1" to="J4.BAT_PLUS" width="0.15mm" /><trace from="BT1.pin2" to="J4.BAT_MINUS" width="0.15mm" />
    <trace from="J4.OUT_PLUS" to="SW1.pin1" width="0.15mm" /><trace from="J4.OUT_MINUS" to="net.GND" width="0.15mm" /><trace from="SW1.pin2" to="J5.IN_PLUS" width="0.15mm" /><trace from="J5.IN_MINUS" to="net.GND" width="0.15mm" />
    <trace from="J5.OUT_PLUS" to="net.V5" width="0.15mm" /><trace from="J5.OUT_MINUS" to="net.GND" width="0.15mm" /><trace from="C1.pin1" to="net.V5" width="0.15mm" /><trace from="C1.pin2" to="net.GND" width="0.15mm" /><trace from="C2.pin1" to="net.V3_3" width="0.15mm" /><trace from="C2.pin2" to="net.GND" width="0.15mm" />
    <trace from="U2.VIN" to="net.V5" width="0.15mm" /><trace from="U2.VOUT1" to="net.V3_3" width="0.15mm" /><trace from="U2.VOUT2" to="net.V3_3" width="0.15mm" /><trace from="U2.GND" to="net.GND" width="0.15mm" />
  </board>
}