Skip to content

Hardware Selection Guide ​

This guide helps you pick the right ESP32 chip, development board, and FastBee firmware environment. Release environments share one feature baseline, with hardware-dependent compile overrides and runtime activation from the Web Feature Config page. Selection is based on the real chip, Flash, and PSRAM specification rather than the old Lite / Standard / Full labels.

1. Chip Quick Reference ​

ChipFlashRAMUARTTypical Use CaseFlash Env
ESP32 (classic)4MB520KB3General node, Modbus, basic peripheralsesp32-F4R0
ESP32 (classic)8MB520KB3OTA node without PSRAMesp32-F8R0
ESP32 (classic)8MB + 8MB PSRAM520KB3WROVER gateway/cacheesp32-F8R8
ESP32-C34MB400KB2Low-cost sensor nodeesp32c3-F4R0
ESP32-C64MB512KB3Low-cost WiFi 6 nodeesp32c6-F4R0
ESP32-C68MB512KB3WiFi 6 OTA nodeesp32c6-F8R0
ESP32-S38MB512KB+3S3 OTA node without PSRAMesp32s3-F8R0
ESP32-S38MB + 8MB PSRAM512KB+3Recommended display/rule controlleresp32s3-F8R8
ESP32-S316MB + 8MB PSRAM512KB+3High-capacity gateway/controlleresp32s3-F16R8

Selection Principle

The decision is mainly driven by flash size and PSRAM availability:

  • 4MB flash -> the 2.94MB app partition is a hard cap and OTA is unavailable; the runtime budget still protects internal DRAM
  • 8MB/16MB flash → OTA upgrade supported, more filesystem space
  • PSRAM -> large displays, TLS, and large JSON buffers are easier to run reliably; never flash an R8 image onto an R0 board

2. Unified Firmware Model ​

All factory environments share one model:

AspectDescription
Common baselineCore Web, MQTT, Modbus, peripheral, and automation code follows one release model; hardware features may be excluded per environment
Disabled by defaultOptional features stay off until needed, reducing active tasks and buffers
Enable via WebFeature Config exposes compiled features; the startup budget rejects combinations the hardware cannot afford

Not sure which one?

Run the smart recommender script in the repository — it can auto-detect the chip and flash size from a connected device:

powershell
# From the FastBee-Arduino repo root
powershell -File scripts/recommend-env.ps1 -DetectPort COM5
powershell -File scripts/recommend-env.ps1 -All   # full recommendation table

3. Board Recommendations ​

Beginner / Education ​

BoardChipNotes
PZ ESP32 boardESP32Rich peripherals (OLED/buttons/IR), see test case docs
ESP32-C3 SuperMiniESP32-C3Tiny and cheap, ideal for sensor nodes
ESP32-C6 DevKitESP32-C6WiFi6, LED quickstart example

Production / Industrial ​

BoardChipNotes
WaveShare ESP32-S3ESP32-S3Industrial relay board
ECM50-A terminalESP32-S34G + Ethernet W5500 + WiFi tri-network switching
ESP32 + RS485 moduleESP32Modbus RTU industrial acquisition

4. Peripheral Hardware Notes ​

  • USB-serial chips: prefer CP2102 / CH340 / CP2104 for driver compatibility (drivers available in the Downloads Center); FT232 also works. The batch flashing script deploy-all.ps1 auto-detects all three.
  • Power: WiFi connection peaks can reach 500mA — unstable supply causes reboots. Add a 100µF+ capacitor near the power input.
  • UART and cellular: C3/C6 release environments do not compile cellular support. ESP32/S3 builds that include it still require a free UART, correct pins, and stable power.
  • S3 USB-CDC: some S3 boards need the BOOT button held during first power-on to enter download mode.

5. Next Steps ​

FastBee | fastbee.cn