I’ve developed a sketch that sends distance data (derived from a VL53L1X Time-of-Flight sensor) from a 4MB ESP32 C6 Qwiic Pocket (EQP) to a Hubitat hub. With a little effort (i.e., using the Double Luck Voodoo pairing process well-known to Hubitat users), the EQP pairs fine. I’ve posted my sketch and an accompanying Hubitat driver in the Hubitat community forum.
Compiled, my sketch uses 54% of the program storage space; maximum is 1,310,720 bytes. I used the partition scheme “Zigbee ZCZR 4MB with spiffs”.
I tried adding WiFi and OTA capability, but the libraries needed for that functionality put my sketch at 109% of the available program storage space.
I tried a LOT (with the help of Claude AI) to craft a custom partition scheme that provided more program space while staying within 4MB and enabling both OTA and Zigbee, but no variant would work. Below is the last version I tried, which sent the EQP into an endless boot loop.
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x6000,
phy_init, data, phy, 0xf000, 0x1000,
otadata, data, ota, 0x10000, 0x2000,
app0, app, ota_0, 0x20000, 0x1A0000,
app1, app, ota_1, 0x1C0000,0x1A0000,
zb_storage, data, fat, 0x360000,0x4000,
zb_fct, data, fat, 0x364000,0x1000,
zb_nvram, data, fat, 0x365000,0x4000,
spiffs, data, spiffs, 0x369000,0x97000,
Has anyone crafted a working custom partition scheme that provides more program space while staying within 4MB and enabling both OTA and Zigbee?