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…
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.
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.
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.
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.
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…
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…