AnasSarkiz/grid-of-LEDs-with-an-ESP32

This circuit integrates a Wi-Fi-enabled ESP32 microcontroller, a 5V power supply, and a chain of 25 WS2812B addressable LEDs with related resistors and capacitors for power stabilization, enabling synchronized LED control via USB-C connection.

Usage: To import and use the "@tsci/AnasSarkiz.grid-of-LEDs-with-an-ESP32" component: 1. Import the component in your project: ```tsx import GridOfLEDsWithESP32 from "@tsci/AnasSarkiz.grid-of-LEDs-with-an-ESP32" ``` 2. Use the component in a tscircuit board: ```tsx export default () => ( <board> <GridOfLEDsWithESP32 /> </board> ) ``` The component creates a board with 25 WS2812B LEDs, an ESP32, USB-C, voltage regulators, and supporting components, all pre-configured and interconnected.

Version
0.0.1
License
unset
Stars
4

index.ts

PCBPCB preview for index.ts
SchematicSchematic preview for index.ts
import manualEdits from "./manual-edits.json"
import { useUsbC } from "@tsci/seveibar.smd-usb-c"
import { useAMS1117_3_3 } from "@tsci/AnasSarkiz.AMS1117_3_3"
import { useESP_12F_ESP8266MOD_ } from "@tsci/AnasSarkiz.ESP_12F_ESP8266MOD_"
import {useWS2812B_2020} from "@tsci/seveibar.WS2812B_2020"
import { useA_2_54_1x6P__ } from "@tsci/AnasSarkiz.A_2_54_1x6P__"
import { useA_0603WAF182JT5E } from "@tsci/AnasSarkiz.A_0603WAF182JT5E"
import { useC1206C106K3RACTU } from "@tsci/AnasSarkiz.C1206C106K3RACTU"
import { useA_0603WAF2101T5E } from "@tsci/AnasSarkiz.A_0603WAF2101T5E"
import { useC0603C104K5RACTU } from "@tsci/AnasSarkiz.C0603C104K5RACTU"
import { useResistor, useCapacitor } from "@tscircuit/core"

export default () => {
  const ledArray = []
  for (let i = 1; i <= 25; i++) {
    ledArray.push(useWS2812B_2020(`LED${i}`))
  }

  const SOT223 = useAMS1117_3_3("SOT223")
  const USBC = useUsbC("USBC")
  const ESP32_12F = useESP_12F_ESP8266MOD_("ESP32_12F")
  const H1 = useA_2_54_1x6P__("H1")
  const R1 = useResistor("R1", { resistance: "10k", footprint: "0603" })
  const R2 = useResistor("R2", { resistance: "1k", footprint: "0603" })
  const C1 = useCapacitor("C1", { footprint: "1206", capacitance: "10uF" })
  const C2 = useCapacitor("C2", { footprint: "ca0603", capacitance: "0.1uF" })  
    return (
    <board
      autorouter="auto-cloud"
      routingDisabled
      manualEdits={manualEdits}
      width="30mm"
      height="70mm"
    >
      {ledArray.map((LED, index) => {
        const row = Math.floor(index / 5)
        const col = index % 5

        return (
          <>
            <LED
              key={`LED${index + 1}`}
              schX={col * 5}
              schY={row * 2.6 + 4}
              pcbX={col * 5 - 10}
              pcbY={row * 5 + 9}
            />
            {/* Connect GND */}
            <trace from={`.LED${index + 1} > .pin2`} to="net.GND" />

            {/* Connect VDD */}
            <trace from={`.LED${index + 1} > .pin4`} to="net.VCC_5V" />

            {/* Connect DI to DO */}
            {index > 0 && (
              <trace
                from={`.LED${index} > .pin1`}
                to={`.LED${index + 1} > .pin3`}
              />
            )}
          </>
        )
      })}

      <SOT223 schX={8} />
      <USBC schX={4} />
      <ESP32_12F />
      <H1 schX={14} />
      <R1  schY={-5} />
      <R2 schX={4} schY={-5} />
      <C1 pcbRotation={90}  schY={-8} />
      <C2 schX={4} schY={-8} />

      <trace from=".ESP32_12F > .pin19" to=".LED1 > .pin3" />

      <trace from=".USBC > .pin1" to="net.GND" />
      <trace from=".USBC > .pin2" to="net.GND" />
      <trace from=".ESP32_12F > .pin9" to="net.GND" />
      <trace from=".SOT223 > .pin1" to="net.GND" />
      <trace from=".ESP32_12F > .pin9" to="net.GND" />
      <trace from=".H1 > .pin2" to="net.GND" />

      <trace from=".USBC > .pin3" to="net.VCC_5V" />
      <trace from=".USBC > .pin4" to="net.VCC_5V" />
      <trace from=".SOT223 > .pin3" to="net.VCC_5V" />

      <trace from=".SOT223 > .pin2" to="net.VCC_3_3V" />
      <trace from=".ESP32_12F > .pin8" to="net.VCC_3_3V" />
      <trace from=".H1 > .pin1" to="net.VCC_3_3V" />

      <trace from=".H1 > .pin3" to=".ESP32_12F > .pin15" />
      <trace from=".H1 > .pin4" to=".ESP32_12F > .pin16" />
      <trace from=".H1 > .pin5" to=".ESP32_12F > .pin5" />
      <trace from=".H1 > .pin6" to=".ESP32_12F > .pin3" />

      <trace from=".R1 > .pin1" to=".ESP32_12F > .pin12" />
      <trace from=".R1 > .pin2" to="net.VCC_3_3V" />

      <trace from=".R2 > .pin1" to=".USBC > .pin6" />
      <trace from=".R2 > .pin2" to="net.GND" />

      <trace from=".C1 > .pin1" to=".ESP32_12F > .pin3" />
      <trace from=".C1 > .pin2" to="net.GND" />

      <trace from=".C2 > .pin1" to=".ESP32_12F > .pin4" />
      <trace from=".C2 > .pin2" to="net.GND" />
    </board>
  )
}