diff --git a/docs/tutorials/esp32-module-schematic.mdx b/docs/tutorials/esp32-module-schematic.mdx new file mode 100644 index 00000000..9660694d --- /dev/null +++ b/docs/tutorials/esp32-module-schematic.mdx @@ -0,0 +1,366 @@ +--- +title: ESP32 Module Circuit Example +description: >- + Build a schematic-only ESP32-WROOM style module circuit with USB-UART, + enable/reset, boot strapping, crystal, decoupling, and expansion headers. +--- + +import CircuitPreview from "@site/src/components/CircuitPreview" + +## Overview + +This tutorial walks through a schematic-only ESP32 module circuit similar to +what you would see in a hardware academy reference design. The goal is not a +finished PCB layout. The goal is a readable schematic that shows the supporting +parts an ESP32-WROOM style module needs before you start routing: + +- 3.3 V power input and local decoupling +- EN reset pull-up and reset button +- BOOT strap button on GPIO0 +- USB-UART TX/RX wiring +- 40 MHz crystal load capacitors for bare-module variants +- GPIO expansion header labels for the signals you will use later + +The examples use only built-in tscircuit primitives so you can paste each block +into a new project without installing a package. + +## Final schematic + + ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +) +`} /> + +## Step 1: Represent the ESP32 module + +Start with the module symbol. The pin labels matter more than the placeholder +footprint for this schematic-only exercise because the labels become stable +selectors for traces and documentation. + + ( + + + +) +`} /> + +## Step 2: Add power and decoupling + +ESP32 modules draw short Wi-Fi current bursts, so place bulk and high-frequency +decoupling on the 3.3 V rail. In a real layout, these capacitors should be close +to the module power pins and should return to the same ground reference. + + ( + + + + + + + + + + + + + + + + +) +`} /> + +## Step 3: Add reset and boot strapping + +The EN pin needs a pull-up and a reset button to ground. GPIO0 needs a pull-up +and a BOOT button to ground so you can enter the serial bootloader while +flashing firmware. + + ( + + + + + + + + + + + + + + + + + +) +`} /> + +## Step 4: Wire USB-UART programming + +Cross the UART bridge signals: bridge TXD goes to ESP32 RXD0, and bridge RXD +goes to ESP32 TXD0. The optional DTR and RTS outputs can be added later for +auto-reset, but a manual EN and BOOT pair is enough for a clear first schematic. + + ( + + + + + + + + + +) +`} /> + +## Step 5: Add expansion headers + +Break out the signals you actually plan to use. The header below keeps the +common SPI-capable pins together, then leaves the UART and reset pins on the +programming header. + +| Header pin | ESP32 signal | Typical use | +| ---------- | ------------ | ----------- | +| GPIO23 | MOSI | SPI data out | +| GPIO22 | SCL | I2C clock | +| GPIO21 | SDA | I2C data | +| GPIO19 | MISO | SPI data in | +| GPIO18 | SCK | SPI clock | +| GPIO17 | TX2 | Secondary UART | +| GPIO16 | RX2 | Secondary UART | +| GPIO5 | CS | SPI chip select | + +## Schematic review checklist + +Before turning this into a PCB, check the schematic against this list: + +- Every 3.3 V pin has a nearby 100 nF decoupling capacitor. +- EN is pulled up and can be pulled low by the reset button. +- GPIO0 is pulled up and can be pulled low by the BOOT button. +- USB-UART TXD/RXD are crossed into ESP32 RXD0/TXD0. +- GPIO12, GPIO0, GPIO2, GPIO15, and EN are not accidentally forced into a bad + boot strap state by external circuitry. +- The antenna side of the module is kept free of copper and tall components + when you move from schematic to PCB.