hardware design guidelines

pins

You can use almost any GPIO, except:

GPIO6–11: used for flash

GPIO34–39: input-only (not usable as output like SCL)

RMT

  • RMT_SIG_IN0~7
  • Any GPIO Pins
  • Eight channels for an IR transmitter and
  • RMT_SIG_OUT0~7 receiver of various waveforms

  • infrared-dat

Functions

RAM

ESP32 DRAM Configuration

ESP32 has 520 KB SRAM split into multiple regions:

  • DRAM0: 192 KB - Main data RAM for variables and heap
  • DRAM1: 128 KB - Instruction RAM cache (can be used as data RAM)
  • DRAM2: 200 KB - Used by WiFi/Bluetooth stack and DMA buffers

Key Points:

  • Internal DRAM: Fast access, used for critical data and stack
  • External PSRAM: Optional 4-8MB external RAM (via SPI)
  • DMA Capable: Some regions support DMA operations
  • Shared Memory: WiFi/BT libraries consume significant DRAM

Memory Management:

  • Heap allocation uses internal DRAM first
  • Large buffers should use PSRAM when available
  • Use esp_get_free_heap_size() to monitor usage

  • memory-dat

Module Compare

Diagram

boot mode

Table 3-1. Default Configuration of Strapping Pins

  • from esp32 chip datasheet
Strapping Pin note Default Configuration Bit Value
GPIO0 0 Pull-up 1
GPIO2 2 Pull-down 0
MTDI 12 Pull-down 0
MTDO 15 Pull-up 1
GPIO5 5 Pull-up 1

Table 6: Chip Boot Mode Control

  • from esp32 wroom module datasheet
Boot Mode GPIO0 GPIO2
SPI Boot Mode 1 Any value
Joint Download Boot Mode 0 0

documentas

Shields (stack boards)

In Development

ref

Chip Info

datasheet

EMAC = Ethernet

ref