

Programmer
Ad Blocking with an ESP32
- Size
- 40 × 20 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 21
- Nets
- 54
- Pads
- 128
- Tracks, vias
- 155, 22
- Pours
- 7
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 9 Apr 2021
- Updated
- 24 May 2021
Overview
Programmer is an open-source printed circuit board by zachmorr, from the zachmorr/esper repository on GitHub, published under the MIT licence. It is a 2-layer board of 40 × 20 mm with 21 parts on 54 nets, routed with 155 tracks and 22 vias.
It is built around the ASDMB-12.000MHZ-LC-T, FT2232HL and TLV75533PDBV, with the 2N7002ET1G-ES and 10118192-0001LF among its other parts. Its parts include 8 capacitors, 4 resistors, 3 ICs, 2 diodes and 2 transistors. It belongs with the interfaces and adapters boards of this library.
Main components
5ASDMB-12.000MHZ-LC-T
SMD2520-4P0℃~+70℃ 1.8V~3.3V 12MHz ±50ppm SMD2520-4P Programmable Oscillators ROHSAbraconProgrammable OscillatorsFT2232HL
QFP64Dual High Speed USB to Multipurpose UART/FIFO ICFTDIUncategorisedTLV75533PDBV
SOT-23-5-40℃~+125℃@(Tj) 1 238mV@(500mA) 25uA 3.3V 46dB@(100kHz) 5.5V 500mA 71.5uVrms Fixed Over Current Protection、Thermal Shutdown、Input undervoltage protection Positive SOT-23-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTexas InstrumentsVoltage Regulators - Linear, Low Drop Out (LDO) Regulators2N7002ET1G-ES
SOT-23-55℃~+150℃ 1 N-channel 1.6V 1.85Ω@10V 1.8nC@4.5V 11pF 28pF 300mA 350mW 4pF 60V N-Channel SOT-23 MOSFETs ROHSElecSuperMOSFETs10118192-0001LF
SMD-30℃~+80℃ 1 1.8A 100V 5P Black Female Micro-B Surface Mount, Right Angle USB 2.0 SMD USB Connectors ROHSAmphenolUSB Connectors
README
README.md
About Esper
Heavily inspired by the Pi-Hole, this project aims to bring network wide ad-blocking to another popular device popular among makers and hobbyists, the ESP32.
What is DNS?
Commonly referred to as the "phone book for the internet", the DNS protocol is how devices map human readable urls like google.com or facebook.com into IP addresses that the device can use.
How does Esper block ads?
Just like the Pi-Hole, Esper acts as a DNS server for devices. When sent a DNS query, Esper will read the url the device is requesting, then decide to block the request by returning 0.0.0.0 or forward the request on to a real DNS server.
Differences between Pi-hole and Esper
The biggest, and most obvious difference is the hardware these projects run on. Pi-hole aims to be available on any Linux powered hardware, while Esper is an ESP32 specific project. Due to being run on a microcontroller, Esper is much more limited in it's capabilities and is therefore much more minimal in it's design.
Why choose Esper instead of Pi-hole?
Choose whatever one suits you! If you like tinkering with hardware, and do not have much experience with the Raspberry Pi/Linux ecosystem, setting up the Esper software on an ESP32 dev board might be an interesting project. And while Esper may not be nearly as powerful as a Raspberry Pi, DNS protocol is very lightweight in nature. Unless you are in a household with 10+ people that are always online you will likely never going to need more computing power than a microcontroller can provide.
At the same time, if you have no problem using a shell and Linux environment, the Pi-hole is a much more feature rich and powerful piece of software that is a joy to use.
How can I get an Esper?
The easiest way, is to purchase a pre-made one from the Tindie store.
If you have some ESP32 development boards collecting dust, it will work on those too! (Just follow the instructions here!)
DISCLAIMER: It is heavily recommended to use a device with ethernet. Even the best Wifi will significantly increase latency and decrease reliability compared to a good copper connection.
If you want to try you hand an making an Esper from scratch, the repository contains all the schematic, pcb, and enclosure files needed to build one yourself.
Reprogramming Esper
Do you like the Esper hardware, but want to use it for something other than ad-blocking? Great! The Esper hardware is completely reprogrammable and includes an on-board USB-UART converter, no extra programmers are needed!
Esper Development
Tools Used
- KiCAD - EDA tool used to design PCB
- FreeCAD - 3D modeling tool for designing enclosure
- ESP-IDF - Contains ESP32 API and build tools for firmware development
- Python 3.7 - Scripts to glue everything together
Directory Structure
├── hardware # Hardware root directory
│ ├── custom components # Custom KiCad component files
│ ├── enclosure # FreeCAD project and STL files for enclosure
│ ├── product # KiCad projects for Esper
│ │ ├── usb-programmable # Includes CP2102 for easy usb programming
│ │ └── jtag-header # 10-pin header for JTAG & UART, meant to be used with programmer
│ └── programmer # KiCad project for programmer/debugger
└── software # Software root directory
├── firmware # ESP-IDF project that contains all code for Esper
├── scripts # Scripts used in build process and testing
└── website # For website development, contains symbolic links to HTML filesParts
21| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | 0.1uF | Capacitor_SMD:C_0603_1608Metric | C1, C2, C5, C6, C7, C8, C9 |
| 2 | 12K | Resistor_SMD:R_0603_1608Metric | R1, R2 |
| 2 | 2N7002ET1G | Package_TO_SOT_SMD:SOT-23 | Q1, Q2 |
| 2 | 470 | Resistor_SMD:R_0603_1608Metric | R3, R4 |
| 1 | 10118192-0001LF | Esper_Footprints:AMPHENOL_10118192-0001LF | J1 |
| 1 | 1uF | Capacitor_SMD:C_0603_1608Metric | C3 |
| 1 | 3220-10-0100-00 | Esper_Footprints:CNC_3220-10-0100-00 | J2 |
| 1 | ASDMB-12.000MHz | Oscillator:Oscillator_SMD_Abracon_ASDMB-4Pin_2.5x2.0mm | U3 |
| 1 | BLU | LED_SMD:LED_0603_1608Metric | D1 |
| 1 | FT2232HL | Package_QFP:LQFP-64_10x10mm_P0.5mm | U2 |
| 1 | GRN | LED_SMD:LED_0603_1608Metric | D2 |
| 1 | TLV75533PDBV | Package_TO_SOT_SMD:SOT-23-5 | U1 |
Questions
How big is the Programmer PCB?
It measures 40 × 20 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Programmer use?
21 parts, built around the ASDMB-12.000MHZ-LC-T, FT2232HL, TLV75533PDBV and 2N7002ET1G-ES. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Programmer KiCad files?
From the zachmorr/esper repository on GitHub, at the commit this page was made from: the board is hardware/programmer/programmer.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Programmer design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
More from zachmorr/esper
2- 4 layers51 × 48 mm

- 4 layers51 × 48 mm

Similar boards
- 4 layers61.3 × 61.3 mm

- 4 layers95.9 × 90.2 mm

Eps
SFUSatClub/eps-hardware
This repository uses the SFU Satellite Team's KiCad component library as a submodule. To start working on the repository:
194 parts1 - 2 layers95.9 × 90.2 mm

Battery
SFUSatClub/Battery
This repository uses the SFU Satellite Team's KiCad component library as a submodule. To start working on the repository:
32 parts - 4 layers118.2 × 93.2 mm

BMS
Vincent-Cauquil/5A-Projet-Parking
PSM Major Project: A modular smart parking system combining AI (ANPR/OCR), real-time control (Zephyr/STM32), and FPGA-based motor management (LiteX RISC-V SoC), all coordinated via MQTT for seamless access control and…
376 parts - 2 layers43.5 × 15 mm

- 4 layers55 × 35 mm

Pocketbeagle
beagleboard/pocketbeagle
BeagleBoard.org PocketBeagle - ultra small, ultra flexible, ultra affordable
50 parts284CC-BY-4.0 - 4 layers46.8 × 34.8 mm

SmartWatch V4
Bellafaire/ESP32-Smart-Watch
An open source smartwatch based on the ESP32 compatible with the Arduino IDE.
74 parts258MIT - 2 layers113.8 × 58 mm

CB Deluxe Test Jig v1 0
neubauek/CircuitBrains
Small form-factor 48-pin castellated pad module. Designed to allow an easy implementation of CircuitPython in maker/hacker projects without the bulk of a large breakout board.
94 parts50MIT