Every hard cap in the SDK, in one place. These are compile-time constants in the firmware, not tunables — an app cannot raise them.

Display and input

Resource Limit
Frame text rows 7
Frame row width ~21 characters
Canvas (windowed) 128×48 pixels
Canvas (fullscreen) 128×64 pixels
Input return value 64 characters

Storage

Resource Limit
Open file handles 4 per session
KV key length 64 characters
KV value length 256 characters
IPC payload 512 bytes
File path length 160 characters

Wireless

Resource Limit
BLE scan results 20
BLE advertisement payload 31 bytes
BLE device name 32 characters
BLE simultaneous connections 2 per session
ESP-NOW payload 250 bytes
TCP listener 1
TCP accepted connections 2
TCP recv buffer 1024 bytes per call
HTTPS request body 2048 bytes

Apps and background

Resource Limit
Background tasks (device-wide) 8
Background task run quota 30 seconds
Background task minimum interval 60 seconds
Manifest capabilities 16
Native app pool 64 KB (hub + one module)