硬件与环境
FastBee-Arduino 只有一个固件产品和统一功能模型。发布环境根据实际芯片和分区构建,功能默认启停由配置文件决定,仍需满足硬件、编译能力与运行时内存预算。设备屏幕仅面向 ESP32-S3。不同芯片的二进制文件不能互刷。
发布环境矩阵
| 环境 | 芯片 | Flash | PSRAM | 分区 | OTA | 发布用途 |
|---|---|---|---|---|---|---|
esp32-F4R0 | ESP32 | 4MB | 无 | partitions/4MB.csv | 否 | 经典 ESP32 节点 |
esp32-F8R0 | ESP32 | 8MB | 无 | partitions/8MB.csv | 是 | ESP32-WROOM OTA 节点 |
esp32-F8R8 | ESP32 | 8MB | 8MB | partitions/8MB.csv | 是 | ESP32-WROVER 网关/缓存 |
esp32c3-F4R0 | ESP32-C3 | 4MB | 无 | partitions/4MB.csv | 否 | 低成本 WiFi 节点 |
esp32c6-F4R0 | ESP32-C6 | 4MB | 无 | partitions/4MB.csv | 否 | WiFi 6 节点 |
esp32c6-F8R0 | ESP32-C6 | 8MB | 无 | partitions/8MB.csv | 是 | WiFi 6 OTA 节点 |
esp32s3-F8R0 | ESP32-S3 | 8MB | 无 | partitions/8MB.csv | 是 | S3 无 PSRAM OTA 节点 |
esp32s3-F8R8 | ESP32-S3 | 8MB | 8MB | partitions/8MB.csv | 是 | 推荐主力开发/控制器 |
esp32s3-F16R8 | ESP32-S3 | 16MB | 8MB | partitions/16MB.csv | 是 | 大容量网关/控制器 |
以上 9 个环境均属于正式发布矩阵。标准命名不再使用 F8R4;R0 表示无 PSRAM,R8 表示 8MB PSRAM。F4R0 表示 4MB Flash + 无 PSRAM,不改成 N4R0。请以开发板/模组实际 Flash 和 PSRAM 规格选择,不要只按环境名猜测。
分区和 OTA
| Flash | app 布局 | LittleFS | OTA |
|---|---|---|---|
| 4MB | 单 app(3.1875MB) | 768KB | 不支持 |
| 8MB | app0/app1,各约 3.5MB | 960KB | 支持 |
| 16MB | app0/app1,各约 7MB | 约 1.94MB | 支持 |
4MB 环境在构建时显式关闭 FASTBEE_ENABLE_OTA,OTA 路由不会注册,升级请重新烧录完整固件。8MB/16MB 环境有 ota_1 分区,可使用 Web 上传或 URL OTA;固件必须小于目标 app 分区。
详细偏移和校验规则见 分区布局。
功能状态
功能状态由编译、用户开关、资源预算和运行期保护共同决定:
text
compiled AND userEnabled AND budgetPassed AND NOT runtimeDisabled需要网络或父功能的模块,还必须等待网络就绪并满足依赖关系。
| 状态 | 含义 | 处理方式 |
|---|---|---|
compiled=false | 当前环境未包含有效实现,或受硬件/分区限制;也可能是保留宏尚无实现 | 不能在 Web 中开启 |
userEnabled=false | 已编译但用户关闭(出厂默认大部分为此状态) | 在“功能配置”中开启 |
active=false 且预算未通过 | 内存不足,启动时自动降级 | 减少并发/关闭其他重型功能后重启 |
runtimeDisabled=true | 运行期内存保护临时停用该功能 | 等待资源恢复并核对实例状态;仅旧版已持久化的 MQTT 禁用记录需用户明确保存并启用,当前开发候选不再写入这类记录 |
active=true | 准入门控通过,兼容字段含义为 admission_only | 再核对 instanceState/instanceScope、有效数据和真实读回;不等于服务已运行或实物可用 |
常见依赖和硬件要求:
| 功能 | 依赖 |
|---|---|
| MQTTS | MQTT;TLS 握手会临时占用较多 DRAM |
| 命令脚本 | 规则脚本引擎 |
| GB2312 字库 | LCD/OLED |
| Modbus | UART/RS485 收发器;默认作为主站 |
| 以太网 | W5500 SPI 模块,并启用 ethernet |
| 4G | EC801E-CN、SIM 卡和供电,并启用 cellular |
| BLE | 当前不在发布功能路径中 |
外设可用性提示
所有环境都编译基础外设驱动,但实际初始化仍受功能开关、内存预算和芯片引脚限制影响。ESP32-S3 F8R8 环境关闭红外/RF 学习以避免 RMT 与库冲突;需要这类功能时使用 esp32-F8R0、esp32s3-F16R8 或自定义环境,并先验证内存。
如何选型
| 需求 | 建议 |
|---|---|
| 只需 WiFi、GPIO、少量传感器 | esp32-F4R0 或 esp32c3-F4R0 |
| 需要 WiFi 6 且成本优先 | esp32c6-F4R0 |
| 需要 WiFi 6 + OTA | esp32c6-F8R0 |
| 需要 OTA、MQTTS、显示或较多规则 | esp32s3-F8R8 |
| 需要无 PSRAM 的 8MB OTA | esp32-F8R0 或 esp32s3-F8R0 |
| 需要更大 Web/配置空间、网关或长期运行 | esp32s3-F16R8 |
| 需要 W5500/4G | 选择有足够 Flash/PSRAM 的环境,并确认外部模块引脚和构建开关 |
验证方法
- 用
esptool或开发板资料确认芯片、Flash、PSRAM。 - 选择同规格合并固件,烧录地址保持
0x0。 - 启动后在
/api/system/info查看芯片和资源,在/api/features/status查看功能状态。 - 若切换分区或从其它项目迁移,先保全身份、网络、认证、协议和非Web文件并核对恢复方案;只有确认需要且获准时才擦除Flash。常规升级按实际范围更新应用或Web,不能默认覆盖现场配置。
构建矩阵发生变化后,在源码仓库执行 node scripts/validate-build-matrix.js。

