# Open-source ESP32-C3 DNS ad blocker supports up to over 500,000 domains without PSRAM

DevFeed: [Open-source ESP32-C3 DNS ad blocker supports up to over 500,000 domains without PSRAM](<https://devfeed.tech/articles/open-source-esp32-c3-dns-ad-blocker-supports-up-to-over-500-000-domains-without-psram-84264.md>)

Original publisher: [Read original article](<https://www.cnx-software.com/2026/10/09/open-source-esp32-c3-dns-ad-blocker-supports-up-to-over-500000-domains-without-psram/>)

Author: Debashis Das

Published: 2026-10-09T12:00:44Z

Content type: news

Language: en

Sources: [CNX Software - Embedded Systems News](<https://devfeed.tech/sources/cnx-software-embedded-systems-news.md>)

Topics: [ESP32-C3](<https://devfeed.tech/topics/esp32-c3.md>), [Bitcoin](<https://devfeed.tech/topics/bitcoin.md>)

Tags: [arduino](<https://devfeed.tech/tags/arduino.md>), [dns](<https://devfeed.tech/tags/dns.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [esp32-c3](<https://devfeed.tech/tags/esp32-c3.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [firmware](<https://devfeed.tech/tags/firmware.md>), [flash](<https://devfeed.tech/tags/flash.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [iot](<https://devfeed.tech/tags/iot.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [security](<https://devfeed.tech/tags/security.md>), [server](<https://devfeed.tech/tags/server.md>)

## AI overview

An open-source ESP32-C3 DNS ad blocker stores sorted 40-bit hashes in flash rather than domain strings in RAM, enabling blocklists of up to about 537,000 domains without PSRAM. The larger capacity uses a single-app partition and disables firmware OTA updates; smaller configurations preserve OTA support.

## Source excerpt

Developed by Zed (M-Abozaid), the esp32-c3-adblock is an open-source, Pi-hole-style DNS ad blocker that runs on a $2 ESP32-C3 microcontroller board/module without requiring PSRAM. It blocks ads and tracking domains across devices on a home or small office network by filtering DNS requests. Instead of storing domain strings in RAM, the project stores them as sorted 40-bit FNV-1a hashes in flash memory and uses binary search to check DNS requests. When a UDP DNS query comes in, the C++ firmware extracts the domain, hashes it (including parent suffixes), and performs a binary search against the flash hash table. If the domain is on the blocklist, the ESP32-C3 returns 0.0.0.0 to block the request. Otherwise, it forwards the query to an upstream DNS server and returns the response to the client. This method fits over 140,000 domains into ~0.7 MB of flash memory while using only ~50 KB of RAM. A [...] The post Open-source ESP32-C3 DNS ad blocker supports up to over 500,000 domains without PSRAM appeared first on CNX Software - Embedded Systems News.