Skip to the content
PCBKitNew board
2 layers76.5 × 48.5 mmPolarizationBoard, the printed circuit board in 3D

PolarizationBoard

ethanewer/ece455

One proton precession magnetometer design: a polarization board, a signal-processing and control board with a Raspberry Pi Pico 2 and an ADS1256 ADC, an off-board two-stage amplifier, the sensing and polarizing coils…

Size
76.5 × 48.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
22
Nets
10
Pads
49
Tracks, vias
77, 19
Pours
3
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
9 Sep 2026
Updated
28 Oct 2026

Overview

PolarizationBoard is an open-source printed circuit board by ethanewer, from the ethanewer/ece455 repository on GitHub. It is a 2-layer board of 76.5 × 48.5 mm with 22 parts on 10 nets, routed with 77 tracks and 19 vias.

It is built around the TC4420CPA, LM340T-12 and SMCJ58CA. Its parts include 5 resistors, 4 capacitors, 4 connectors, 2 ICs and 1 diode.

Main components

3

README

README.md

ECE 455 proton magnetometer

One proton precession magnetometer design: a polarization board, a signal-processing and control board with a Raspberry Pi Pico 2 and an ADS1256 ADC, an off-board two-stage amplifier, the sensing and polarizing coils, and the Pico firmware. docs/design.md describes how they fit together and lists open issues.

Layout

Design files, one folder per type:

FolderContentsEdit with
kicad/Polarization board and signal-processing & control board: schematics, PCBs, Gerbers, BOMKiCad 10
ltspice/AmplificationSim.asc: coil, tuning tank, and the off-board amplifierLTspice
firmware/Pico 2 ADS1256 capture and frequency firmware, and its serial plotterPico SDK 2.3.1
spreadsheets/CoilDesign.xlsx: coil windings and polarizing field; TuningCapacitors.xlsx: measured coil inductances and LC tuningExcel
3d_models/Sensing coil V1 and polarizing coil V2 forms: SolidWorks parts and sliced print filesSolidWorks, Bambu Studio

Everything else:

  • util/ reads those files and holds the simulation, breadboard layout, firmware host harness, and tests.
  • docs/ has the design description, the verification plan, generated simulation and breadboard reports, datasheets, and references.
  • local/ is for uncommitted output.

Setup

sh
python3 -m venv .venv
. .venv/bin/activate
pip install -e '.[test,bench]'
brew install ngspice        # or: sudo apt-get install ngspice

make firmware and make test compile the firmware on the host with $CC, or clang or gcc. Building and flashing the Pico needs the Pico SDK and Arm toolchain; see firmware/README.md.

Commands

sh
make test         # all tests: board/schematic/BOM/firmware consistency, coil forms, LTspice translation, breadboard, estimator
make firmware     # only the firmware estimator tests
make sim          # simulate ltspice/AmplificationSim.asc and regenerate docs/simulation/
make breadboard   # check the breadboard layout and regenerate docs/breadboard/
make verify       # test, sim, and breadboard
make flash        # build the Pico firmware and flash it over USB
make plot         # plot captures from the Pico (sets up .venv on first use)

Status

Both PCBs match their schematics, and the firmware's SPI pins match the ADS1256 header on J3. The amplifier exists only as an LTspice drawing and a breadboard layout; no op amp has been chosen. From the coil workbook and print files, the coils as built should give a best-case FID of about 2 µV, a fifth of the drawing's 10 µV. The coil forms are sized for the sensing coils to sit inside the polarizing coil, where its turn-off would induce on the order of 100 V in them, beyond what the damping switch and amplifier input are rated for. The firmware now polarizes and captures on a button press but does not drive the damping switch. Nothing here has been measured on hardware; see docs/verification-plan.md.

Parts

22
QtyValueFootprintReferences
4MountingHole_3.2mm_M3MountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
2100nCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC2, C3
210kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1, R3
2BatteryTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_HorizontalJ1, J4
10.22uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1
1100Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR4
11uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC4
12.2kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR5
122Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR2
1FuseFuse:Fuseholder_Cylinder-5x20mm_Schurter_0031_8201_Horizontal_OpenF1
1LM340T-12Package_TO_SOT_THT:TO-220-3_VerticalU1
1MicrocontrollerTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_HorizontalJ3
1Polarization CoilTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_HorizontalJ2
1Q_NMOS_GDSPackage_TO_SOT_THT:TO-220-3_VerticalQ1
1SMCJ58CADiode_SMD:D_SMC_HandsolderingD1
1TC4420Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU2

Questions

How big is the PolarizationBoard PCB?

It measures 76.5 × 48.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the PolarizationBoard use?

22 parts, built around the TC4420CPA, LM340T-12 and SMCJ58CA. 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 PolarizationBoard KiCad files?

From the ethanewer/ece455 repository on GitHub, at the commit this page was made from: the board is kicad/polarization_board/PolarizationBoard.kicad_pcb and its schematic kicad/polarization_board/PolarizationBoard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PolarizationBoard design in my own project?

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

More from ethanewer/ece455

1
  • 2 layers99 × 99 mmSignalProcessing&ControlBoard, the printed circuit board in 3D

    SignalProcessing&ControlBoard

    ethanewer/ece455

    One proton precession magnetometer design: a polarization board, a signal-processing and control board with a Raspberry Pi Pico 2 and an ADS1256 ADC, an off-board two-stage amplifier, the sensing and polarizing coils…

    60 parts

Similar boards

  • 4 layers114.3 × 134.5 mmExoskeleton, the printed circuit board in 3D

    Exoskeleton

    Bihyungbetter/exoskeleton

    Exoskeleton is a powered lower-limb exoskeleton with six actuated joints — hip flexion, hip abduction, and knee flexion per leg.

    60 parts
  • 4 layers100 × 57 mmESP32LedDriverV2, the printed circuit board in 3D

    ESP32LedDriverV2

    AdamCLarsen/Esp32LedDriver

    An ESP32 PWM LED Driver for use with ESPHome

    60 parts9MIT
  • 2 layers86.4 × 70.5 mmAdjustable Load v1.1, the printed circuit board in 3D

    Adjustable Load v1.1

    kholia/Adjustable-Load-v1.1

    Easy + Cost-Effective Variable Electronic Load.

    20 parts8
  • 4 layers59 × 71 mmPEC Sensor, the printed circuit board in 3D

    PEC Sensor

    WAFFLE-Systems/PEC_Sensor

    Electrical schematics and PCB gerber files for the Pulsed Eddy Current Sensor

    98 parts1
  • 2 layers97 × 79 mmBciChess boardControlShield, the printed circuit board in 3D

    BciChess boardControlShield

    allita99/8x8-LED-Matrix-Control-Circuit

    KiCad design files and Gerber outputs for an 8×8 LED matrix controller capable of driving 64 LEDs at 15 V.

    72 parts
  • 2 layers85 × 72 mmQcw board, the printed circuit board in 3D

    Qcw board

    arsinovgleb5-create/Mikola_Tesla-QCW-DRSSTC-controller

    QCW DRSSTC controller: ESP32 ramp generator + interrupter, CYD ramp display, single-sided control board. CC BY 4.0

    34 parts
  • 2 layers142.2 × 49.5 mmDropphoto, the printed circuit board in 3D

    Dropphoto

    bullestock/dropphoto

    37 partsGPL-3.0
  • 2 layers110 × 80 mmAlarm Panel, the printed circuit board in 3D

    Alarm Panel

    garyt72/Alarm-Panel

    The current config is based on the ideaspark ESP32 0.96in OLED board used for the alarm-panel-oled device. It uses an SSD1306 128x64 OLED on I2C GPIO21/GPIO22 and keeps the alarm-zone inputs and outputs mapped around…

    35 partsGPL-3.0