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
Recommended Modules
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
NOT Recommended
- 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
- Use modules with Flash headroom (8 MB) for future updates
- Add external Flash/EEPROM for long-term statistics storage
- Choose modules with PSRAM for advanced TFT display interfaces
- Select FCC/CE certified modules for commercial products
Final Recommendation
- Stable operation at 240 MHz
- Excellent price/performance ratio
- Wide market availability