Tool Open source · MIT

ESP32-C3 AdBlock

ESP32-C3 AdBlock is an open-source DNS ad-blocking firmware project for ESP32-C3 boards that do not have PSRAM. It extracts queried domains, computes 40-bit FNV-1a hashes including parent suffixes, and binary-searches sorted hashes stored in flash rather than loading domain strings into RAM. Matching queries receive a 0.0.0.0 sinkhole response; other queries are forwarded to an upstream resolver and relayed. The repository reports that the approach uses about 50 KB of RAM and supports blocklists ranging from the default roughly 100,000-domain configuration to an aggressive 537,000-domain list, subject to the selected flash partition layout and hash collisions.

View repository

Overview

The firmware includes a web dashboard with statistics, client banning, custom block and allow entries, mDNS discovery at c3adblock.local, a captive portal for Wi-Fi setup, and over-the-air firmware and blocklist updates. The accompanying PlatformIO tooling converts hosts files, plain domain lists, and supported AdGuard or Adblock basic rules into the binary hash table; unsupported rule types are skipped and reported. State-changing dashboard endpoints and network OTA require configured credentials, while the device otherwise serves plain HTTP on the local network. The project is released under the MIT License.