Skip to the content
2 layers36 × 96.5 mmSmall panel, the printed circuit board in 3D

Open, low-cost torsion balance for measuring the spurious forces (supply-lead Lorentz forces, heating, convection) that dominate small-force and thrust experiments: printable CadQuery mechanics, a validated force-noise model, and JLCPCB-assembled RP2040 electronics designed in KiCad and ngspice.

Size
36 × 96.5 mm
Copper layers
2
Thickness
1.2 mm
Parts
41
Nets
3
Pads
41
Tracks, vias
5, 1
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
24 Oct 2026
Updated
7 Nov 2026

Overview

Small panel is an open-source printed circuit board by arcticoder, from the arcticoder/spurious-force-balance repository on GitHub, published under the MIT licence. It is a 2-layer board of 36 × 96.5 mm with 41 parts on 3 nets, routed with 5 tracks and 1 via.

It belongs with the sensors and measurement boards and the RP2040 boards of this library.

README

README.md

spurious-force-balance

An open, low-cost torsion balance for measuring the spurious forces that dominate small-force and thrust experiments, with printable mechanics, a validated force-noise model and fab-assembled electronics.

The question. On an open, fully SMT-assembled, low-cost torsion balance operating in air, quantify the forces that usually pass for thrust: the Lorentz force of supply-lead currents in the ambient magnetic field, and the thermal and convective forces of a dissipating device. Measure them as functions of current, lead geometry and dissipated power, with the balance's force noise floor, calibration constant and drift fully characterized. The instrument claim is a resolution of 0.4 nN or better (5σ on a 20 nN term) in a 1000 s measurement, at a parts cost to be filled in from the final bill of materials.

Status

PieceState
G1 measurement goalconfirmed 2026-10-23
G2 mechanicsan FR4 arm board on edge hung from a torsion head, collision-free over the swing, centre of mass solved onto the axis; JLC mechanical boards (Gerbers and DRC done); stock-size acrylic enclosure; field-modelled eddy damper; cutting jigs; fabrication decisions, assembly steps
G3 force-noise prediction0.108 nN (1σ, 1000 s, in air): a conditional go
WP1–WP3: requirements, 48 JLC-stocked parts, analog block simulationsdone
WP4 schematicdone as checked netlists (main board + four head boards, 50 JLC parts); sheet rendering and WP5 layout wait
A5: prototype noise measurementnext; it decides layout and the board order

The prediction is dominated by air currents (4.8 nN/√Hz), so the verdict flips at about 4 mm/s of air-speed fluctuation; the enclosure is the biggest noise control. The model reproduces six published numbers, from Soni and Roy (Rev. Sci. Instrum. 84, 095103, 2013) and the cryogenic torsion balance of arXiv:2206.02890.

Layout

PathWhat
docs/plan.mdthe plan: goal, mechanics, noise budget, environment control, calibration
docs/fabrication.md, docs/assembly.mdhow each part is made (fab boards, PLA, bought; JLC orders, coupons and parcels) and how to build it
docs/bringup.md, docs/procedures.mdpowering up the electronics step by step; the prototype check, calibration and measurement campaign
docs/paper/the paper skeleton (LaTeX; results are placeholders)
hardware/balance/parametric CAD (balance.py, STL and STEP in cad/), the FR4 boards for JLC (boards.py, boards/fab/), jigs, analytic model, parameters, checks
hardware/instrument/the electronics: requirements, pin map, parts table, ngspice simulations, checks
hardware/tools/jlc_query.pysearch of the JLCPCB parts snapshot
tools/force_noise_budget.pythe force-noise prediction and the anchor checks
docs/TODO-agent.md, docs/TODO-arcticoder.mdthe work lists (TODO-BLOCKED.md, TODO-backlog.md, TODO-completed.md beside them)

Running the checks

Setup (Linux/WSL) is in hardware/README.md: KiCad 9, a Python venv with CadQuery, SKiDL and ngspice.

text
python3 tools/force_noise_budget.py                       # the noise prediction and anchor checks
~/.venvs/lab-hw/bin/python tools/run_all_smoke_tests.py   # CAD, pin map, power budget, simulations

Construction rules

  • Every electronic part is a machine-placed SMT part from JLCPCB's own library; nothing is hand-soldered and nothing is mailed to the fab.
  • USB power only; nothing above 50 V DC or 30 V AC. The device current is capped at 300 mA by the USB budget.
  • The balance carries no permanent magnet on the moving arm (a 6 × 3 mm N42 disc alone would add about 7 nN/√Hz of field noise); masses on the arm are brass or plastic.

Companion circuits

The bench circuits this experiment uses for its prototype check (lock-in amplifier, optical shadow readout, R-2R signal generator) live in arcticoder/lab, which also holds the shared parts inventory and order ledger.

License

  • Code (MIT, LICENSE): the Python sources, including the CadQuery scripts and the noise model.
  • Hardware designs and their documentation (CERN-OHL-P v2, LICENSE-HARDWARE): the CAD outputs (STL, STEP), KiCad files when they exist, SPICE netlists, parts tables and BOMs, and the assembly and design documents. A CadQuery .py file is code (MIT) whose output is hardware (CERN-OHL-P).

More from arcticoder/spurious-force-balance

2
  • 2 layers76 × 70 mmHeads panel, the printed circuit board in 3D

    Heads panel

    arcticoder/spurious-force-balance

    Open, low-cost torsion balance for measuring the spurious forces (supply-lead Lorentz forces, heating, convection) that dominate small-force and thrust experiments: printable CadQuery mechanics, a validated force-noise…

    58 partsMIT
  • 2 layers24 × 34 mmElec board, the printed circuit board in 3D

    Elec board

    arcticoder/spurious-force-balance

    Open, low-cost torsion balance for measuring the spurious forces (supply-lead Lorentz forces, heating, convection) that dominate small-force and thrust experiments: printable CadQuery mechanics, a validated force-noise…

    2 partsMIT

Similar boards

  • 2 layers70 × 35 mmTLF35584 breakout, the printed circuit board in 3D

    TLF35584 breakout

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    41 parts1.2k
  • 2 layers270 × 11 mmDaylight Disco, the printed circuit board in 3D

    Daylight Disco

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    41 parts1.1kGPL-3.0
  • 2 layers27.5 × 48.3 mmICE40DevBoard, the printed circuit board in 3D

    ICE40DevBoard

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    41 parts915
  • 2 layers45 × 25 mmEasy PD Sink, the printed circuit board in 3D

    Easy PD Sink

    openwch/ch32v003

    CH32V003 is an ultra-cheap RISC-V MCU with 2KB SRAM, 16KB flash, and up to 18 GPIOs that sells for under $0.10

    41 parts599
  • 2 layers97 × 78.5 mmDumbpad, the printed circuit board in 3D

    Dumbpad

    imchipwood/dumbpad

    Simple 4x4 numpad with rotary encoder. Powered by QMK via ATmega32u4 Pro Micro

    41 parts517GPL-2.0
  • 2 layers37 × 15 mmCanTactDist, the printed circuit board in 3D

    CanTactDist

    bondus/KlipperToolboard

    A 3D printer tool head controller board

    41 parts373GPL-3.0
  • 2 layers20.3 × 69.7 mmPG attiny404, the printed circuit board in 3D

    PG attiny404

    fabiansteiner/OpenValve

    3D-printable pinch valve for irrigation and sensor-driven liquid control.

    41 parts276CERN-OHL-S-2.0

Questions

How big is the Small panel PCB?

It measures 36 × 96.5 mm and has 2 copper layers, 1.2 mm thick.

What parts does the Small panel use?

41 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 Small panel KiCad files?

From the arcticoder/spurious-force-balance repository on GitHub, at the commit this page was made from: the board is hardware/balance/boards/small_panel.kicad_pcb and its schematic hardware/instrument/schematic/out/sensor_head_2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Small panel design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).