Loading 3D model… large boards can take a moment.
A single-transducer ultrasonic scanner that measures the crystal orientation fabric (COF) of an ice core disk. The machine rotates a 100 mm ice disk through a full turn while a spring-free vertical carriage repeatedly seats an ultrasonic probe against the rim under a controlled contact force. At each azimuth the probe fires a pulse across the diameter and records the back-wall echoes. Because sound travels faster along the crystal c-axis than across it, the velocity varies with azimuth, and the pattern v(theta) = v0 + A cos 2(theta - phi) reveals the predominant crystal orientation without cutting or melting the sample.
The measurement leans on two design decisions:
For every azimuth in the sweep the machine, fully unattended:
When the sweep finishes the machine parks itself: the probe homes to the top stop and the stage unwinds back to azimuth 0.
| Path | Contents |
|---|
hardware/pcb/ | KiCad schematic and layout for the controller board (RP2040 Pico, 2x TMC2209, HX711, DS18B20, AS5600 inputs), the bare-board STEP export, and the component 3D models |
hardware/3d/ | STEP and GLB exports of the assembled controller board (board plus fitted modules) |
hardware/Gcode/ | CNC milling toolpaths used to machine the prototype board, plus the Makera CAM source project (.mkc) |
software/firmware/ | Pico C++ firmware. Serial command reference in PROTOCOL.md |
software/GUI/ | Streamlit control application: jog, dock, sweep, run browser, analysis. See its README |
docs/ | LaTeX machine manual |
.vscode/ | editor tasks for one-click firmware build, flash and GUI launch |
Run Scanner GUI.bat | double-click launcher; installs a private Python runtime on first use |
The ultrasound pulser (OPLab box) and oscilloscope are separate USB instruments driven by the host application. The controller board handles motion and sensing only; no ultrasound signal passes through it.
Run Scanner GUI.bat. The first run downloads a
self-contained Python runtime into the repository (internet required,
a few minutes); after that it starts offline and immediately. It also
creates Pulse-Echo Azimuthal Scanner.lnk, a shortcut with the
project icon, which can be used from then on.To rebuild the firmware, see software/firmware/README.md.
Values measured on this machine during commissioning:
| Quantity | Value | Notes |
|---|---|---|
| Rotation drive | 71.188 steps/degree | 1.8 degree motor, 32 microsteps, belt reduction; calibrated against the absolute encoder |
| Azimuth truth | 0.34 degrees RMS | AS5600 absolute encoder after a 2-harmonic correction for magnet eccentricity and tilt (2.14 degrees RMS raw) |
| Rotation backlash | ~0.1 degree | approach direction is constant during a sweep |
| Vertical drive | 1600 steps/mm | two-start T8 leadscrew, 4 mm lead; no encoder on this axis |
| Vertical homing | 0.03 to 0.06 mm | sensorless StallGuard to the top mechanical stop |
| Dock repeatability | ~5 um within-angle (best case) | position at 5 g contact, rigid target |
| Contact force | 5 g nominal | load-cell noise 0.65 g rms idle, 2.6 g peak-to-peak; median filter plus 2-sample debounce; under 20 um over-travel at the 0.06 mm/s creep |
| Contact calibration | repeatable, not absolute | no reference mass on site; the force units are consistent counts, which is what the physics needs |
| Thermal drift | dv/dT about -2.3 m/s per K | DS18B20 in the tailstock logs temperature per trace; reference revisits detrend the residual |
| Cycle time | 11 to 17 s per trace | dominated by the final slow creep; a 360 degree sweep at 1 degree steps with 3 traces per angle takes 3.5 to 6 hours |
Machine constraints worth knowing:
VLIMIT while the probe is above the disk.The full machine manual (operation, hardware, theory of operation, calibration and accuracy, serial protocol, software architecture) is in docs/scanner-manual.pdf, built from the LaTeX sources alongside it.
The full list, with paper PDFs as they become available, is at jeromegraves.com. An archived DOI for this repository will be added on publication of the 2026 papers.
No comments yet. Be the first to ask about this board.