Hardware and Environments
FastBee-Arduino no longer ships separate Lite, Standard, and Full editions. Release environments share one feature baseline; differences come from chip resources, partition layout, environment overrides, external hardware, and the runtime memory budget.
Release Matrix
| Environment | Chip | Flash | PSRAM | Partition | OTA | Typical Use |
|---|---|---|---|---|---|---|
esp32-F4R0 | ESP32 | 4MB | None | partitions/4MB.csv | No | Classic ESP32 node |
esp32-F8R0 | ESP32 | 8MB | None | partitions/8MB.csv | Yes | ESP32-WROOM OTA node |
esp32-F8R8 | ESP32 | 8MB | 8MB | partitions/8MB.csv | Yes | ESP32-WROVER gateway/cache |
esp32c3-F4R0 | ESP32-C3 | 4MB | None | partitions/4MB.csv | No | Low-cost WiFi node |
esp32c6-F4R0 | ESP32-C6 | 4MB | None | partitions/4MB.csv | No | WiFi 6 node |
esp32c6-F8R0 | ESP32-C6 | 8MB | None | partitions/8MB.csv | Yes | WiFi 6 OTA node |
esp32s3-F8R0 | ESP32-S3 | 8MB | None | partitions/8MB.csv | Yes | S3 OTA node without PSRAM |
esp32s3-F8R8 | ESP32-S3 | 8MB | 8MB | partitions/8MB.csv | Yes | Recommended development/controller target |
esp32s3-F16R8 | ESP32-S3 | 16MB | 8MB | partitions/16MB.csv | Yes | High-capacity gateway/controller |
These nine environments are the supported release matrix. Standard names no longer use F8R4: R0 means no PSRAM and R8 means 8MB PSRAM. F4R0 means 4MB Flash with no PSRAM. Always confirm the board or module specification instead of guessing from a similar product name.
Partitions and OTA
| Flash | Application Layout | LittleFS | OTA |
|---|---|---|---|
| 4MB | Single app, about 2.94MB | 1MB | No |
| 8MB | app0/app1, about 3.5MB each | 960KB | Yes |
| 16MB | app0/app1, about 7MB each | About 1.94MB | Yes |
The 4MB environments compile with FASTBEE_ENABLE_OTA=0; OTA routes are not registered. Upgrade them by flashing a complete merged image. The 8MB and 16MB environments provide an ota_1 partition and support Web upload or URL OTA when the image fits the target app partition.
See Partition Layout for offsets and validation rules.
Feature State
A feature is usable only when all four conditions pass:
compiled AND userEnabled AND budgetPassed AND NOT runtimeDisabled| State | Meaning | Action |
|---|---|---|
compiled=false | The environment excludes the feature, or hardware/partition constraints block it | It cannot be enabled in the Web console |
userEnabled=false | The feature is compiled but disabled by the user | Enable it in Feature Config |
active=false with a failed budget | Startup memory policy degraded the feature | Reduce concurrency or disable another heavy feature, then restart |
active=true | Compiled, enabled, and accepted by the budget | The feature can be used |
Common dependencies:
| Feature | Dependency |
|---|---|
| MQTTS | MQTT; TLS handshakes temporarily consume more internal DRAM |
| Command scripts | RuleScript engine |
| GB2312 fonts | LCD/OLED support |
| Modbus RTU | UART and an RS485 transceiver; release firmware defaults to master mode |
| Ethernet | W5500 SPI module and the ethernet feature |
| Cellular | EC801E-CN, SIM, reliable power, and the cellular feature |
| BLE | Not part of the current release path |
Basic peripheral drivers are compiled across the release matrix, but initialization still depends on feature state, memory budget, and valid pins. esp32s3-F8R8 disables IR/RF learning to avoid RMT/library conflicts; use esp32-F8R0, esp32s3-F16R8, or a validated custom environment when those features are required.
Choosing an Environment
| Requirement | Recommendation |
|---|---|
| WiFi, GPIO, and a few sensors | esp32-F4R0 or esp32c3-F4R0 |
| WiFi 6 at minimum cost | esp32c6-F4R0 |
| WiFi 6 with OTA | esp32c6-F8R0 |
| OTA without PSRAM | esp32-F8R0 or esp32s3-F8R0 |
| OTA, MQTTS, displays, or more rules | esp32s3-F8R8 |
| Larger Web/config capacity or gateway workloads | esp32s3-F16R8 |
| W5500 or cellular | Choose an environment that compiles the feature and confirm module pins and power |
Verification
- Confirm chip, Flash, and PSRAM from board documentation,
esptool, or the boot log. - Flash the matching merged image at address
0x0. - Check
/api/system/infofor hardware resources and/api/features/statusfor feature state. - When changing partition layouts or migrating from another firmware, back up configuration, erase Flash, then flash firmware and LittleFS from the same build.
After changing the build matrix, run node scripts/validate-build-matrix.js in the firmware repository.

