Your whole house, ad-free β for $2 and one free flash
Somebody taught a $2 chip the size of a USB stick to swallow 105,023 ad and tracker domains, then plugged it into the back of their router.
No Raspberry Pi. No subscription. No app on every device. That is the whole idea.
Why it matters: one tiny thing on your network, and the ads stop for every device you own β the TV, the phones, the laptop, the console, your guestβs tablet β at the same time, forever.
What makes it unique: the board stores each blocked domain as a tiny 5-byte fingerprint instead of a full name. That single trick is why a $2 chip can hold a list that used to demand an $8 board or a $60 Raspberry Pi.
Why you should care: you flash it once, it updates itself after that, and the ad money quietly stops being spent on your network.
What it is, in plain words
Your devices ask a phone book question before they load anything: what is the address of ads.example.com? That phone book is DNS. This board becomes your houseβs phone book, and when something asks for an ad serverβs name, it answers with a dead end. The request dies right there.
So the ad does not download β on the TV, the phone, the laptop, the console, your guestβs tablet, everything on your network at once.
The clever part is how a $2 board holds a list that big. It keeps each blocked domain as a tiny 5-byte fingerprint in the chipβs storage, instead of as a name in its memory. That board has only 400 KB of memory and 4 MB of storage, so fingerprints in storage fit 105,023 domains while the whole thing runs on about 50 KB of memory. Older builds needed an extra memory chip for the same job, which pushed the price to about $8. Same result, a quarter of the cost.
The chain, in one line: one $2 chip β plug into your router β ads stopped before they load β updates itself over Wi-Fi.
The numbers, straight
- 105,023 ad and tracker domains in the list shipping today
- ~50 KB of memory used, out of 400 KB
- ~10 ms to answer a blocked lookup
- 0.5 MB of the boardβs 4 MB storage
- The projectβs own ceiling is 537,000 domains, reached with a different storage layout that gives up one of the two firmware slots
- Board price: $1.45β$2.41 on AliExpress, roughly $5β$6 from Western resellers
What it blocks β and the one thing it cannot
Banners, trackers, pop-ups, telemetry, analytics, malware and phishing domains: all fair game, on every device at once.
YouTubeβs in-video ads are the honest exception. They arrive from the same domains that serve the video itself, so a domain blocker cannot remove them without breaking the video. NextDNS writes this on its own help page, and AdGuard lists YouTube and Twitch the same way. That limit belongs to Pi-hole, to AdGuard Home and to this board equally β it is a limit of the method, not of the chip. Sponsored posts inside Facebook, X and Instagram sit in the same bucket.
Two smaller realities worth knowing before you buy. On a device set to encrypted DNS β Androidβs Private DNS, or Chromeβs Secure DNS β the lookup walks past this board and resolves on its own, so turn that off on the devices you care about. And this filters by domain, so an ad served from a web address made of raw numbers slips through.
Getting it running β 4 steps, no coding
- Buy the board. Search ESP32-C3 SuperMini β the cheap one with 4 MB of storage and a USB-C port, about $2.
- Buy one adapter. A USB-A to USB-C dongle lets the board plug straight into the spare USB port on the back of your router. That is its power supply β no charger, no extra box, nothing on your shelf.
- Flash it once over USB β that just means writing the software onto the board one time. The project documents PlatformIO for this, a free tool that does the writing for you, and the single trap is version: the PlatformIO package inside many Linux distributions is too old and fails, so use a current one.
- Point your routerβs DNS at the boardβs address. Every device on the Wi-Fi is now filtered. A router that refuses that setting is exactly what build 8 below is for.
After that first flash, both the firmware and the blocklist update themselves over Wi-Fi. Set it up once and forget it.
Eight more builds from the same family
This is the part worth bookmarking. The project is one branch of a family tree, and one of these will fit your situation better than the original.
- s60sc/ESP32_AdBlocker β the grandparent of them all. Alive since 2021, still updated, and the project above credits it for the starting idea.
- ESP32_AdBlocker_Reborn β the heavy version, on a LilyGO board with a real Ethernet port: about 700,000 domains and around 2,200 lookups a second.
- esphole β asks its own DNS provider over an encrypted connection, plus a fail-open mode so your internet keeps working while the board is off.
- ESP_hole β the same job, the same job with a lighter way of storing the list, which suits an even smaller chip.
- 9M2PJU ESP32-C3 AdBlocker β a fork you flash from your browser, with no toolchain on your computer.
- dns32 and esper β smaller siblings, good reading material.
- XIAO ESP32-S3 DNS sinkhole β built as a drop-in replacement for a Raspberry Pi running Pi-hole, in a very small footprint.
- ESP32 AdBlock Gateway β the answer for locked-down routers. It creates its own protected Wi-Fi network and hands out the settings itself, so no router permission is needed.
The list you load decides how much you block, so here are the three families worth feeding it: HaGeZi runs Light at 55,349, Normal at 157,685, Pro at 193,151 and Ultimate at 230,104; OISD Big is the single-file set built to break nothing; StevenBlack is the classic. The projectβs build script accepts all of them.
Three cases where something else wins
- You want ads gone on your phone outside the house, with zero setup. That is NextDNS β a cloud service that follows your devices anywhere.
- You want per-device rules, parental controls and encrypted upstream. That is AdGuard Home on a Pi or any always-on box.
- You want ten years of guides and the biggest community. That is Pi-hole.
This board replaces a Pi for DNS blocking on one network at a tiny fraction of the cost β and not for everything else a Pi running Pi-hole does.
Why this one deserves your attention
The board is the demo. The idea is the gift: a 5-byte fingerprint instead of a name, sorted, searched in storage. That same trick scales up as well β on a 16 MB chip it holds about 2,700,000 domains, against about 466,000 when the names stay in memory.
105,023 ad domains blocked tonight, $2, one free flash, and a whole family of upgrades waiting when you want more. Flash yours and post it below β I want to see which list you loaded.
The board: search ESP32-C3 SuperMini β specs and where to buy Β· repo Β· blocklist releases
Coverage: CNX Software Β· Open Source For You Β· Meterpreter Β· Hacker News thread

!