Overview
This project delivers a powerful, Pi-hole-class DNS ad-blocker on an incredibly cost-effective ESP32-C3 microcontroller, requiring no PSRAM. It ingeniously stores a massive blocklist of 537,000 domains as compact 40-bit FNV-1a hashes within the device's flash memory, enabling lightning-fast binary searches. Coupled with a user-friendly web dashboard and UDP DNS sinkhole functionality, this solution offers an accessible and efficient way to reclaim your network from intrusive ads and trackers.
Key Features
- Ultra-Low Cost Hardware: Runs on a ~$2 ESP32-C3, eliminating the need for more expensive hardware with PSRAM.
- Massive Domain Capacity: Stores an impressive 537,000 domains as 40-bit hashes, fitting into flash memory for efficient access.
- High Performance: Achieves sub-10ms DNS lookup times through efficient binary search on flash-stored hashes.
- Minimal RAM Footprint: Utilizes approximately 50 KB of RAM, making it ideal for resource-constrained devices.
- Intuitive Web Dashboard: Manage your ad-blocker, view stats, upload blocklists, and perform over-the-air (OTA) updates from a convenient web interface.
- Flexible Blocklist Management: Supports custom blocklists in various formats (hosts, plain domains, AdGuard/Adblock basic rules) and offers scheduled remote updates.
- Seamless WiFi Setup: Features a captive portal for easy network configuration without requiring re-flashing.
- Over-the-Air (OTA) Updates: Effortlessly update firmware and blocklists wirelessly.
- Robust Security: Implements HTTP Basic Auth for sensitive dashboard actions and incorporates CSRF protection measures.
Typical Use Cases
- Home Network Ad Blocking: Deploy on an ESP32-C3 plugged into a router's USB port for network-wide ad blocking without a dedicated server.
- IoT Device Network Security: Protect resource-limited IoT devices by filtering out malicious or ad-serving domains at the network level.
- Educational Projects: An excellent platform for learning about embedded systems, networking, DNS, and data storage optimizations.
- Portable Ad-Blocking Dongle: Create a small, portable ad-blocking solution for use on public or guest networks.
- Cost-Effective Network Filtering: Implement a budget-friendly DNS sinkhole solution for small businesses or personal projects where hardware cost is a primary concern.
