Hardware & Performance
System Limits
| Limit | Default | Configurable |
|---|---|---|
| Maximum controllers | 30 | YB_MAX_CONTROLLERS |
| Maximum protocol commands | 50 | YB_PROTOCOL_MAX_COMMANDS |
| Maximum HTTP clients | 13 | ESP-IDF limit |
| WebSocket message queue | 100 messages | HTTPController |
Performance Monitoring
Built-in profiling via IntervalTimer:
- Per-controller loop execution time
- Rolling average over configurable window
- Accessible via stats API and web interface
- Framerate calculation (main loop Hz)
Hardware Support
Primary Target
- ESP32-S3: Full support including USB CDC and Bluetooth Improv
- 16MB flash recommended (8MB minimum)
- PSRAM optional
Memory Usage
The basic requirements for Yarrboard Framework are an ESP32 S3 board with at least 8mb flash.
Even though the compiled firmware is only about 2mb, due to the nature of OTA, you need 2 partitions that can each hold the full firmware. Additionally, the board configuration json file is stored in a LittleFS partition.
Minimal
Flash: ~1.9MB RAM: ~323kib (201kib free heap after boot on ESP32-S3)
Standard (with NimBLE)
Adding the NimBLE bluetooth stack for provisioning ImprovWifi over bluetooth requires additional memory and flash space:
Flash: ~2.1MB RAM: ~345kib (179kib free heap after boot on ESP32-S3)
Supported Targets
- ESP32 (tested)
- ESP32-S3 (tested)
- ESP32-C3
- ESP32-C5
- ESP32-C6
- ESP32-S2
The firmware compiles for the other targets, but has not been tested yet.
Peripherals
- RGB LED: FastLED-compatible (WS2812, etc.)
- Buzzer: PWM-capable piezo buzzer
- Channels: GPIO, I2C, SPI, ADC, etc. (application-defined)