Skip to Content

Hardware Requirements

Minimum ESP32 specifications, RAM and Flash memory requirements. ESP32 module selection guide.




Minimum Requirements


Processor

  • Chip: ESP32 (dual-core)
  • Clock Speed: 240 MHz (mandatory for accurate measurements)
  • Cores: 2x Xtensa LX6 cores (single-core versions NOT supported)


Memory

  • RAM: minimum 320 KB SRAM
  • ~100 KB for RBgrid library
  • ~50 KB for Arduino framework
  • ~80 KB for FreeRTOS and system
  • ~90 KB for user application
  • Flash: minimum 4 MB
  • ~1.5 MB for main application (factory partition)
  • ~1.5 MB for OTA updates (ota_0 partition)
  • ~64 KB for coredump
  • Remainder for NVS and system data


ADC Requirements

  • ADC1: 4-8 channels (used by library)
  • ADC2: free for user
  • Resolution: 12-bit
  • DMA: ADC DMA support mandatory




Optimal Choice

ESP32-WROOM-32E or ESP32-WROOM-32UE
- 4 MB Flash / 8 MB Flash
- 520 KB SRAM
- Integrated antenna (32E) or external antenna connector (32UE)
- Full library compatibility


Premium Choice

ESP32-WROVER-E or ESP32-S3-WROOM-1
- 4/8/16 MB Flash
- 520 KB SRAM + 8 MB PSRAM (WROVER)
- Suitable for extended features (web interface, data logging)


Budget Choice

ESP32-WROOM-32D
- 4 MB Flash
- 520 KB SRAM
- Full core functionality without limitations




❌ Incompatible Chips
- ESP32-C3 - single-core RISC-V
- ESP32-C6 - single-core RISC-V
- ESP32-S2 - single-core Xtensa LX7
- ESP8266 - insufficient resources

❌ Problematic Configurations
- Modules with Flash < 4 MB
- Modules with custom firmware
- Clones with unknown chips




Peripheral Requirements


GPIO Pins

  • Minimum 6 free GPIOs:
  • 4 pins for ADC sensors (GPIO 32-39: ADC1)
  • 1 pin for Zero-Cross detection (any input pin)


Power Supply

  • Stable 3.3V for ESP32
  • Separate ADC power (recommended for stable readings)
  • Power filtering with capacitors



Compatibility Check


Command to Verify Chip

esptool.py --port COM3 chip_id




Resource Usage Estimation


RAM Usage (typical)

DRAM: 95 KB - data and BSS
IRAM: 28 KB - critical code
PSRAM: 0 KB - not required


Flash Usage

Application: ~1.2 MB
Bootloader: 25 KB
Partition table: 3 KB


CPU Load

Core 0: 15-25% - Arduino loop, WiFi, statistics
Core 1: 60-80% - ADC DMA, calculations




Production Recommendations

  1. Use modules with Flash headroom (8 MB) for future updates
  2. Add external Flash/EEPROM for long-term statistics storage
  3. Choose modules with PSRAM for advanced TFT display interfaces
  4. Select FCC/CE certified modules for commercial products



Final Recommendation

For the RBgrid library, the optimal choice is ESP32-WROOM-32E with 4 MB Flash. This module provides:
- Sufficient memory for all features
- Stable operation at 240 MHz
- Excellent price/performance ratio
- Wide market availability