
Mains
micthiesen/crystal-shim
Aquarium skimmer controller: capacitive sensing, ESP32-C6 firmware, and separated mains switching

Aquarium skimmer controller: capacitive sensing, ESP32-C6 firmware, and separated mains switching
Controller is an open-source printed circuit board by micthiesen, from the micthiesen/crystal-shim repository on GitHub. It is a 4-layer board of 150 × 110 mm with 117 parts on 75 nets, routed with 656 tracks and 102 vias.
It is built around the ERJ3EKF1003V, ERJ3EKF1000V and ERJ3EKF1002V, with the ERA3AEB103V, ERJ3EKF1001V and ERJ3EKF2701V among its other parts. Its parts include 39 resistors, 23 capacitors, 7 connectors, 4 transistors and 1 IC.
Open sensor.kicad_pro. The compact sensor is 18 × 64 mm, four layers, with 16 footprints and zero unrouted connections. Mount its mask-covered glass face with thin adhesive film, top 2 mm below the rim. J1 is six outward-face solder pads; the pigtail exits left when looking at the electronics. No component lead or mount sits between electrode copper and glass.
The glass-facing B.Cu electrodes and In2.Cu driven shields are fixed geometry. F.Cu holds electronics and all ordinary routes; In1.Cu provides continuous ground. The accepted routing has 117 track segments and nine tented vias, including five GND vias. All ground pads share the F.Cu fill, connected to In1.Cu. Preserve the routed board and its exact accepted glass-side breakouts. Through vias default to 0.45/0.20 mm.
Strict ERC and schematic parity are clean. Six exact, UUID-bound padstack warnings are excluded because the intentional driven-shield pads exist only on In2.Cu. Their complete geometry/net contract is checked separately; unrelated padstack warnings remain enabled. See the routing guide, design basis and handoff lock for current acceptance and evidence. Final preparation records the outward pad-number/RIM labels and native mask/paste/via verification. The subsequent stencil receipt selects the 100 µm process without changing native geometry. Older two-layer and above-rim instructions are superseded.
Keep this project, its custom rules and local libraries together. Route, refill
with B, save and run sh scripts/check-routing.sh sensor --final before
fabrication checks/export. Unconnected items are allowed without --final.
Physical capacitance and adhesive response remain commissioning measurements.
Owner routing is accepted in the routing receipt. Final pre-fabrication review remains deferred until all three boards are reviewed together.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | 100kΩ | CrystalShim_Controller:Controller_R43 | R43 |
| 1 | 100nF | CrystalShim_Controller:Controller_C40 | C40 |
| 1 | 100nF | CrystalShim_Controller:Controller_C6 | C6 |
| 1 | 100nF | CrystalShim_Controller:Controller_C31 | C31 |
| 1 | 100nF | CrystalShim_Controller:Controller_C21 | C21 |
| 1 | 100nF | CrystalShim_Controller:Controller_C46 | C46 |
| 1 | 100nF | CrystalShim_Controller:Controller_C30 | C30 |
| 1 | 100nF | CrystalShim_Controller:Controller_C11 | C11 |
| 1 | 100nF | CrystalShim_Controller:Controller_C41 | C41 |
| 1 | 100nF | CrystalShim_Controller:Controller_C45 | C45 |
| 1 | 100nF | CrystalShim_Controller:Controller_C12 | C12 |
| 1 | 100nF | CrystalShim_Controller:Controller_C8 | C8 |
| 1 | 100nF | CrystalShim_Controller:Controller_C42 | C42 |
| 1 | 100nF | CrystalShim_Controller:Controller_C7 | C7 |
| 1 | 100Ω | CrystalShim_Controller:Controller_R80 | R80 |
| 1 | 100Ω | CrystalShim_Controller:Controller_R84 | R84 |
| 1 | 100Ω | CrystalShim_Controller:Controller_R82 | R82 |
| 1 | 100Ω | CrystalShim_Controller:Controller_R20 | R20 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R64 | R64 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R2 | R2 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R15 | R15 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R12 | R12 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R67 | R67 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R81 | R81 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R50 | R50 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R65 | R65 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R66 | R66 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R83 | R83 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R52 | R52 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R46 | R46 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R51 | R51 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R11 | R11 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R53 | R53 |
| 1 | 10kΩ | CrystalShim_Controller:Controller_R85 | R85 |
| 1 | 10uF | CrystalShim_Controller:Controller_C44 | C44 |
| 1 | 1kΩ | CrystalShim_Controller:Controller_R42 | R42 |
| 1 | 1uF | CrystalShim_Controller:Controller_C20 | C20 |
| 1 | 1uF | CrystalShim_Controller:Controller_C43 | C43 |
| 1 | 1uF | CrystalShim_Controller:Controller_C9 | C9 |
| 1 | 2.7kΩ | CrystalShim_Controller:Controller_R61 | R61 |
| 1 | 2.7kΩ | CrystalShim_Controller:Controller_R60 | R60 |
| 1 | 2.7kΩ | CrystalShim_Controller:Controller_R73 | R73 |
| 1 | 2.7kΩ | CrystalShim_Controller:Controller_R72 | R72 |
| 1 | 22uF | CrystalShim_Controller:Controller_C5 | C5 |
| 1 | 22uF | CrystalShim_Controller:Controller_C4 | C4 |
| 1 | 22uF | CrystalShim_Controller:Controller_C1 | C1 |
| 1 | 22uF | CrystalShim_Controller:Controller_C2 | C2 |
| 1 | 22uF | CrystalShim_Controller:Controller_C47 | C47 |
| 1 | 22uF | CrystalShim_Controller:Controller_C3 | C3 |
| 1 | 22Ω | CrystalShim_Controller:Controller_R45 | R45 |
| 1 | 22Ω | CrystalShim_Controller:Controller_R71 | R71 |
| 1 | 22Ω | CrystalShim_Controller:Controller_R44 | R44 |
| 1 | 22Ω | CrystalShim_Controller:Controller_R62 | R62 |
| 1 | 22Ω | CrystalShim_Controller:Controller_R70 | R70 |
| 1 | 22Ω | CrystalShim_Controller:Controller_R63 | R63 |
| 1 | 3.2mm NPTH | CrystalShim_Controller:Controller_H3 | H3 |
| 1 | 3.2mm NPTH | CrystalShim_Controller:Controller_H4 | H4 |
| 1 | 3.2mm NPTH | CrystalShim_Controller:Controller_H1 | H1 |
| 1 | 3.2mm NPTH | CrystalShim_Controller:Controller_H2 | H2 |
| 1 | 330Ω | CrystalShim_Controller:Controller_R55 | R55 |
| 1 | 4.7µH | CrystalShim_Controller:Controller_L1 | L1 |
| 1 | 43045-0200 | CrystalShim_Controller:Controller_J6 | J6 |
| 1 | 43045-0200 | CrystalShim_Controller:Controller_J7 | J7 |
| 1 | 43045-0200 | CrystalShim_Controller:Controller_J8 | J8 |
| 1 | 43045-0200 | CrystalShim_Controller:Controller_J9 | J9 |
| 1 | 43045-0600 | CrystalShim_Controller:Controller_J3 | J3 |
| 1 | 43045-0600 | CrystalShim_Controller:Controller_J5 | J5 |
| 1 | 43650-0300 | CrystalShim_Controller:Controller_J1 | J1 |
| 1 | 5.1kΩ | CrystalShim_Controller:Controller_R40 | R40 |
| 1 | 5.1kΩ | CrystalShim_Controller:Controller_R41 | R41 |
| 1 | 6.8Ω | CrystalShim_Controller:Controller_R69 | R69 |
| 1 | 6.8Ω | CrystalShim_Controller:Controller_R68 | R68 |
| 1 | 680Ω | CrystalShim_Controller:Controller_R54 | R54 |
| 1 | 95.3kΩ | CrystalShim_Controller:Controller_R14 | R14 |
| 1 | AO3400A | CrystalShim_Controller:Controller_Q3 | Q3 |
| 1 | AO3400A | CrystalShim_Controller:Controller_Q2 | Q2 |
| 1 | AO3400A | CrystalShim_Controller:Controller_Q4 | Q4 |
| 1 | AO3400A | CrystalShim_Controller:Controller_Q1 | Q1 |
| 1 | AP63203WU-7 | CrystalShim_Controller:Controller_U2 | U2 |
| 1 | B3F-1002-G | CrystalShim_Controller:Controller_SW3 | SW3 |
The 80 most common of 117 parts.
It measures 150 × 110 mm and has 4 copper layers, 1.61 mm thick.
117 parts, built around the ERJ3EKF1003V, ERJ3EKF1000V, ERJ3EKF1002V and ERA3AEB103V. 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.
From the micthiesen/crystal-shim repository on GitHub, at the commit this page was made from: the board is pcb/controller/kicad/controller.kicad_pcb and its schematic pcb/controller/kicad/controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask micthiesen before reusing the design.

micthiesen/crystal-shim
Aquarium skimmer controller: capacitive sensing, ESP32-C6 firmware, and separated mains switching

micthiesen/crystal-shim
Aquarium skimmer controller: capacitive sensing, ESP32-C6 firmware, and separated mains switching

alex1324575/snake-pcb-business-card
STM32-powered PCB business card with a 10x9 LED Snake game, USB-C power, and passive NFC. KiCad hardware, C firmware, and verification reports.

apcountryman/pcb-main-nautilus-atmega4809
A Microchip ATmega4809 based mainboard PCB.



arsal18/HW-Lab
This reporsitory contains the lab work and the project of module Hardware Engineering.

opensimgear/device-gateway
Work-in-progress STM32 Cyphal/CAN-to-USB gateway with automatic input/output enrollment, ordered HID controllers, guarded configuration/leased action/event routing and native/Pico debug simulation.


AndrewCraswell/agency
Native KiCad engineering prototype, separate from the earlier ESP32/tscircuit board. Open usb-scoring-platform.kicadpro in KiCad 10; schematic and PCB are the editable source, with no generator required.