Skip to the content
PCBKitNew board
4 layers150 × 110 mmController, the printed circuit board in 3D

Aquarium skimmer controller: capacitive sensing, ESP32-C6 firmware, and separated mains switching

Size
150 × 110 mm
Copper layers
4
Thickness
1.61 mm
Parts
117
Nets
75
Pads
345
Tracks, vias
656, 102
Pours
80
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
11 Sep 2026
Updated
31 Oct 2026

Overview

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.

Main components

12

README

pcb/sensor/kicad/README.md

Sensor routing handoff

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.

Parts

117
QtyValueFootprintReferences
1100kΩCrystalShim_Controller:Controller_R43R43
1100nFCrystalShim_Controller:Controller_C40C40
1100nFCrystalShim_Controller:Controller_C6C6
1100nFCrystalShim_Controller:Controller_C31C31
1100nFCrystalShim_Controller:Controller_C21C21
1100nFCrystalShim_Controller:Controller_C46C46
1100nFCrystalShim_Controller:Controller_C30C30
1100nFCrystalShim_Controller:Controller_C11C11
1100nFCrystalShim_Controller:Controller_C41C41
1100nFCrystalShim_Controller:Controller_C45C45
1100nFCrystalShim_Controller:Controller_C12C12
1100nFCrystalShim_Controller:Controller_C8C8
1100nFCrystalShim_Controller:Controller_C42C42
1100nFCrystalShim_Controller:Controller_C7C7
1100ΩCrystalShim_Controller:Controller_R80R80
1100ΩCrystalShim_Controller:Controller_R84R84
1100ΩCrystalShim_Controller:Controller_R82R82
1100ΩCrystalShim_Controller:Controller_R20R20
110kΩCrystalShim_Controller:Controller_R64R64
110kΩCrystalShim_Controller:Controller_R2R2
110kΩCrystalShim_Controller:Controller_R15R15
110kΩCrystalShim_Controller:Controller_R12R12
110kΩCrystalShim_Controller:Controller_R67R67
110kΩCrystalShim_Controller:Controller_R81R81
110kΩCrystalShim_Controller:Controller_R50R50
110kΩCrystalShim_Controller:Controller_R65R65
110kΩCrystalShim_Controller:Controller_R66R66
110kΩCrystalShim_Controller:Controller_R83R83
110kΩCrystalShim_Controller:Controller_R52R52
110kΩCrystalShim_Controller:Controller_R46R46
110kΩCrystalShim_Controller:Controller_R51R51
110kΩCrystalShim_Controller:Controller_R11R11
110kΩCrystalShim_Controller:Controller_R53R53
110kΩCrystalShim_Controller:Controller_R85R85
110uFCrystalShim_Controller:Controller_C44C44
11kΩCrystalShim_Controller:Controller_R42R42
11uFCrystalShim_Controller:Controller_C20C20
11uFCrystalShim_Controller:Controller_C43C43
11uFCrystalShim_Controller:Controller_C9C9
12.7kΩCrystalShim_Controller:Controller_R61R61
12.7kΩCrystalShim_Controller:Controller_R60R60
12.7kΩCrystalShim_Controller:Controller_R73R73
12.7kΩCrystalShim_Controller:Controller_R72R72
122uFCrystalShim_Controller:Controller_C5C5
122uFCrystalShim_Controller:Controller_C4C4
122uFCrystalShim_Controller:Controller_C1C1
122uFCrystalShim_Controller:Controller_C2C2
122uFCrystalShim_Controller:Controller_C47C47
122uFCrystalShim_Controller:Controller_C3C3
122ΩCrystalShim_Controller:Controller_R45R45
122ΩCrystalShim_Controller:Controller_R71R71
122ΩCrystalShim_Controller:Controller_R44R44
122ΩCrystalShim_Controller:Controller_R62R62
122ΩCrystalShim_Controller:Controller_R70R70
122ΩCrystalShim_Controller:Controller_R63R63
13.2mm NPTHCrystalShim_Controller:Controller_H3H3
13.2mm NPTHCrystalShim_Controller:Controller_H4H4
13.2mm NPTHCrystalShim_Controller:Controller_H1H1
13.2mm NPTHCrystalShim_Controller:Controller_H2H2
1330ΩCrystalShim_Controller:Controller_R55R55
14.7µHCrystalShim_Controller:Controller_L1L1
143045-0200CrystalShim_Controller:Controller_J6J6
143045-0200CrystalShim_Controller:Controller_J7J7
143045-0200CrystalShim_Controller:Controller_J8J8
143045-0200CrystalShim_Controller:Controller_J9J9
143045-0600CrystalShim_Controller:Controller_J3J3
143045-0600CrystalShim_Controller:Controller_J5J5
143650-0300CrystalShim_Controller:Controller_J1J1
15.1kΩCrystalShim_Controller:Controller_R40R40
15.1kΩCrystalShim_Controller:Controller_R41R41
16.8ΩCrystalShim_Controller:Controller_R69R69
16.8ΩCrystalShim_Controller:Controller_R68R68
1680ΩCrystalShim_Controller:Controller_R54R54
195.3kΩCrystalShim_Controller:Controller_R14R14
1AO3400ACrystalShim_Controller:Controller_Q3Q3
1AO3400ACrystalShim_Controller:Controller_Q2Q2
1AO3400ACrystalShim_Controller:Controller_Q4Q4
1AO3400ACrystalShim_Controller:Controller_Q1Q1
1AP63203WU-7CrystalShim_Controller:Controller_U2U2
1B3F-1002-GCrystalShim_Controller:Controller_SW3SW3

The 80 most common of 117 parts.

Questions

How big is the Controller PCB?

It measures 150 × 110 mm and has 4 copper layers, 1.61 mm thick.

What parts does the Controller use?

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.

Where can I download the Controller KiCad files?

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.

Can I use the Controller design in my own project?

Its repository states no licence, so its author keeps all rights: ask micthiesen before reusing the design.

More from micthiesen/crystal-shim

2
  • 2 layers150 × 110 mmMains, the printed circuit board in 3D

    Mains

    micthiesen/crystal-shim

    Aquarium skimmer controller: capacitive sensing, ESP32-C6 firmware, and separated mains switching

    26 parts
  • 4 layers18 × 64 mmSensor, the printed circuit board in 3D

    Sensor

    micthiesen/crystal-shim

    Aquarium skimmer controller: capacitive sensing, ESP32-C6 firmware, and separated mains switching

    16 parts

Similar boards

  • 2 layers85.6 × 54 mmSnakeBusinessCard, the printed circuit board in 3D

    SnakeBusinessCard

    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.

    136 parts
  • 4 layers68.6 × 53.3 mmPcb main nautilus atmega4809, the printed circuit board in 3D

    Pcb main nautilus atmega4809

    apcountryman/pcb-main-nautilus-atmega4809

    A Microchip ATmega4809 based mainboard PCB.

    91 parts
  • 6 layers82 × 155 mmCm5-carrier, the printed circuit board in 3D

    Cm5-carrier

    SPIRIT-org/SPIRIT

    Smartphone based on the Raspberry Pi CM 5.

    138 parts1.4k
  • 4 layers118 × 250 mmPcb lab, the printed circuit board in 3D

    Pcb lab

    y-watal/pcb_lab

    285 parts
  • 2 layers147.3 × 119.4 mmPCB Design, the printed circuit board in 3D

    PCB Design

    arsal18/HW-Lab

    This reporsitory contains the lab work and the project of module Hardware Engineering.

    69 parts
  • 4 layers65 × 55 mmGateway, the printed circuit board in 3D

    Gateway

    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.

    45 parts
  • 2 layers80 × 83 mmSection, the printed circuit board in 3D

    Section

    BennetLeff/temper

    a breville control freak ++

    21 parts1
  • 4 layers120 × 85 mmVirtual scoring box, the printed circuit board in 3D

    Virtual scoring box

    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.

    146 partsMIT