Skip to the content
PCBKitNew board
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…

Size
99 × 99 mm
Copper layers
2
Thickness
1.6 mm
Parts
60
Nets
74
Pads
258
Tracks, vias
350, 114
Pours
230
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
9 Sep 2026
Updated
28 Oct 2026

Overview

SignalProcessing&ControlBoard is an open-source printed circuit board by ethanewer, from the ethanewer/ece455 repository on GitHub. It is a 2-layer board of 99 × 99 mm with 60 parts on 74 nets, routed with 350 tracks and 114 vias.

Its parts include 21 capacitors, 9 resistors, 7 connectors, 4 switches and 2 ICs. It belongs with the RP2040 boards of this library.

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

60
QtyValueFootprintReferences
6TestPointTestPoint:TestPoint_Keystone_5000-5004_MiniatureTP1, TP2, TP3, TP4, TP5, TP6
410kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR3, R6, R7, R8
4MountingHole_2.2mm_M2MountingHole:MountingHole_2.2mm_M2Hole1, Hole2, Hole3, Hole4
30.1uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC15, C17, C19
21uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC14, C21
222uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC16, C20
2DDiode_SMD:D_SOD-123D1, D2
2NMOSPackage_TO_SOT_THT:TO-92_InlineQ1, Q2
1100Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR2
1100kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR4
1100nFCapacitor_THT:C_Rect_L18.0mm_W9.0mm_P15.00mm_FKS3_FKP3C10
110nFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC6
110uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC18
1150nFCapacitor_THT:C_Rect_L18.0mm_W11.0mm_P15.00mm_FKS3_FKP3C11
11K PotentiometerPotentiometer_THT:Potentiometer_Bourns_3296W_VerticalRV1
11nFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC2
12.2nFCapacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolderC3
12.2uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC13
1220Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1
1220nCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC12
122nFCapacitor_THT:C_Rect_L13.0mm_W6.0mm_P10.00mm_FKS3_FKP3_MKS4C7
122uHWurth_7447714220:L_Wurth_7447714220_WE-PD_1050L1
124.9kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR5
13.3nFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC4
14.7nFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC5
1470pFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1
147nFCapacitor_THT:C_Rect_L18.0mm_W6.0mm_P15.00mm_FKS3_FKP3C8
1510Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR9
182nFCapacitor_THT:C_Rect_L26.5mm_W6.0mm_P22.50mm_MKS4C9
1AINConnector_PinSocket_2.54mm:PinSocket_2x08_P2.54mm_VerticalJ4
1Amplifier InputTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ5
1Amplifier OutputTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ6
1Buck Converter ICPackage_SO:Texas_HTSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.95x4.9mm_Mask2.4x3.1mm_ThermalViasU1
1BufferPackage_TO_SOT_SMD:SOT-23-5U2
1Button1Button_Switch_THT:SW_PUSH_6mm_H9.5mmSW3
1Button2Button_Switch_THT:SW_PUSH_6mm_H9.5mmSW4
1PowerTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ2
1RaspberryPi_PicoModule:RaspberryPi_Pico_Common_UnspecifiedA1
1SPIConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ3
1SW_DIP_x03Button_Switch_THT:SW_DIP_SPSTx03_Slide_9.78x9.8mm_W7.62mm_P2.54mmSW1
1SW_DIP_x08Button_Switch_THT:SW_DIP_SPSTx08_Slide_9.78x22.5mm_W7.62mm_P2.54mmSW2
1SensingCoilsTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ1
1UARTConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ7

Questions

How big is the SignalProcessing&ControlBoard PCB?

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

What parts does the SignalProcessing&ControlBoard use?

60 parts. 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 SignalProcessing&ControlBoard KiCad files?

From the ethanewer/ece455 repository on GitHub, at the commit this page was made from: the board is kicad/signal_control_board/SignalProcessing&ControlBoard.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 SignalProcessing&ControlBoard 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 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…

    22 parts

Similar boards

  • 2 layers35 × 50 mmGoblin, the printed circuit board in 3D

    Goblin

    kelu124/echomods

    Open source ultrasound processing modules and building blocks

    60 parts463
  • 2 layers32.9 × 119.1 mmConnector, the printed circuit board in 3D

    Connector

    thpoll83/PolyKybd

    PolyKybd

    60 parts411CERN-OHL-W-2.0
  • 2 layers35.9 × 62.7 mmRp2040-memcard, the printed circuit board in 3D

    Rp2040-memcard

    sd2psx/pcb

    The PCB must be produced in 0.8mm thickness. Production files are provided under the "Releases" tab. These do not include the through-hole OLED module.

    60 parts241
  • 2 layers58 × 110 mmBrain ui split pulse, the printed circuit board in 3D

    Brain ui split pulse

    shmoergh/moduleur

    Fully analog DIY-friendly modular synth

    60 parts222
  • 2 layers52 × 90 mmEmu brd, the printed circuit board in 3D

    Emu brd

    rscott2049/DECstation2040

    A RP2040 based DECstation emulator

    60 parts212BSD-3-Clause
  • 2 layers42.5 × 80 mmSimplemixsmall, the printed circuit board in 3D

    Simplemixsmall

    nickajeglin/Eurorack-pcbs

    A collection of easy to solder DIY eurorack PCB's

    60 parts208
  • 2 layers57.4 × 12 mmZicada, the printed circuit board in 3D

    Zicada

    CoretechR/Zicada

    DIY Zigbee Multisensor

    60 parts205GPL-3.0
  • 2 layers87.9 × 123.9 mmBitdoglab, the printed circuit board in 3D

    Bitdoglab

    BitDogLab/BitDogLab

    Open-source educational hardware for embedded systems, programming, electronics, and physical computing.

    60 parts203