A $2 ESP32-C3 runs a Pi-hole-style DNS ad-blocker with 537,000 domains and no PSRAM

ESP32-C3 Adblock

This project packs a Pi-hole-style DNS sinkhole into a $2 ESP32-C3 by storing 537,000 domains as sorted 40-bit FNV-1a hashes in flash and binary-searching them, using only ~50 KB of RAM. It answers blocked lookups in ~10 ms, forwards everything else, and serves a web dashboard with OTA updates. The trick beats string-in-RAM approaches and scales to millions of domains on larger chips.

Hashes in flash beat strings in PSRAM basically everywhere; the C3 just makes it undeniable.

More from this day

2026-10-07