Repository navigation
EDS parameter 2 (Counts/Acquisition Time) - #13
claude[bot] wants to merge 4 commits into
Conversation
Recomputes the PR #11 voltage-selection criterion for AlSi10Mg (xraydb MACs, Kanaya-Okayama production depths, Philibert f(chi)) and states the falsifiable predictions for the standards-based 5/10/15/20 kV sessions. Co-authored-by: Ronnie Guymon <244881888+ronnie-guymon@users.noreply.github.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
@claude I have a couple ideas for a second and possibly third parameter. Right now I think the next two parameters are live time and beam current. Live Time: Beam current: Give me thoughts, as well as one or two papers (and I mean just one or two) for these subjects. Be concise, don't give me any extra info. Define important things if they have not been mentioned before. |
|
Claude finished @ronnie-guymon's task in 5m 51s —— View job Live timeLive time = the time the detector is actually available to count (real clock time minus dead time); acquisitions are specified in it, so counts scale linearly with it.
Beam current
Two papers
· Branch |
|
I think I will stick with live time/spectra counts as the second parameter. Mike's comments on this:#1 (comment) and claude's response #11 (comment). I think the big things to optimize are:
I'll look through all the cons that claude gave me and see if they are going to be big turn-offs. Also compare the live time vs counts for the two EDS sessions to see how big of a difference there was. |
|
Going off of #11 (comment) and other reasoning, there we will probably just take multiple, shorter scans from different areas close to one another and compile them together. This will help minimize carbon deposition, especially at lower voltages. |
|
In looking at the counts from our two EDS sessions: |
|
From the SEM class textbook, I learned that for standards-based SEM: I'm not sure exactly what kind of interference it is talking about, maybe interference due to the ionized gas used during VPSEM? either way, neither of our EDS sessions have produced over 10 million counts, the highest one was ~4.5 mil. This is great to know for CALIBER, and would be a great parameter to keep in mind when collecting our samples. @claude help me understand from #13 (comment) what the amp time does and how it affects the total counts. Help me understand why even though there was only a 130 sec increase of live time there was an almost 4 million increase of counts. I can talk with Mike about this to refresh myself too, but what are the easiest ways in Team to directly choose the acquisition time and/or number of counts? |
|
Claude finished @ronnie-guymon's task in 15m 55s —— View job Amp time is the per-photon measurement window — it never multiplies counts. The 4M-count gap is a count-rate story, and the rate came from the kV: your Apr numbers are the 15 kV map, your Aug numbers the 5 kV map.
1. What amp time doesAmp time (EDAX's name for process/shaping time) is how long the pulse processor integrates each individual photon's charge pulse to measure its energy — the ladder in TEAM is 0.96 / 1.92 / 3.84 / 7.68 μs.
2. Why +130 s gave +3.8M counts: it didn't — the rate did
Counts = rate × live time. The live times differ 1.41×, the rates 4.8×; 4.8 × 1.41 = the 6.8× count ratio exactly. At the Aug rate, Apr's extra 133 s would have added only ≈265,000 counts — everything else came from the rate. And the rate came from the beam voltage. The kV identification is from the PR #11 dead-time discussion ("Live time was 460.8 s (15 kV) vs 327.7 s (5 kV)") plus the committed 5 kV spectrum ( A side finding your numbers force: the ~49% / ~22% dead times inferred in PR #11 from remembered wall-clock can't be processor dead time. For the processor to be 49% busy at 1.92 μs amp time it would have to be swallowing >100 kcps — tens of millions of stored counts in 460.8 s, not 4.4M; likewise 22% at 7.68 μs implies ≈5M counts, not 652k. Both runs actually had the processor ≈97% idle; the wall-clock excess was mapping overhead (frames, flyback, per-pixel dwell bookkeeping). That weakens the pile-up explanation behind P7/P3 in the plan — the ×1.52 Mg/Al anomaly may survive at controlled dead time, which the plan already treats as a legitimate outcome. The 3. The textbook's "interference" — peak overlap, not VPSEM gasIt means spectral peak interference: two elements' lines closer than the detector can separate, so their peaks share counts (VPSEM gas causes beam-skirt scattering — a spatial problem, not a spectral one). Your alloy is literally the textbook's scenario: major Al Kα (1.487 keV) laying its tail across minor Mg Kα (1.254 keV) at a ~100–200:1 concentration ratio. So the >1M-count tier is where your Mg quant lives; >10M is for clean 200-ppm trace work (future Fe/Mn/Cu at spec limits); >100M is trace under someone's peak — not needed for Mg at 0.5–0.9 wt%. Unit conversion to the plan's language: the 5 kV spectrum carried ≈4,400 net Mg Kα in 652k total (0.67%), so the plan's ≥10⁴ net-Mg target ⟺ ≈1.5M total counts at 5 kV — the textbook threshold and the plan's line are the same demand. One caution: Apr's 4.4M does not make it the better spectrum; counts only buy accuracy when acquired inside the criterion (15 kV fails the Si absorption test that motivated this whole series). 4. Choosing time or counts in TEAM
One bookkeeping note: the plan doc calls both runs "July"; your comment dates them Apr (15 kV) and Aug (5 kV). If Apr/Aug is right I'll fix the labels in the plan (and add the amp-time column to §4's held-fixed list with 7.68 μs as the freeze value) — say the word. Sources: EDAX dead-time tips · UF EDAX TEAM SOP · EDAX Genesis Spectrum manual · PR #11 kV/dead-time comment --- · Branch |
|
@claude from
It makes it seem like with only a 4eV cost of resolution between the slowest and fastest amp time, it doesn't cause that big of a difference. Maybe choosing the amp time can be another parameter. Help me find out if differing amp time is worth it, how much it would actually affect anything. I think it would be worth at least testing the 0.96 us vs 7.68 us to see if the slimming of the Al and Mg peak helps noticeably. |
|
Claude finished @ronnie-guymon's task in 8m 28s —— View job The A/B is worth one 10–15 min appendix block, but flip its logic first: 7.68 µs is already the slim end — 0.96 µs broadens Mg Kα by 10–25% — and peak width was never what pushes Al counts under Mg anyway. Amp time's real lever is a ≈6× count-rate ceiling, which only matters once beam current rises. It shouldn't be a standalone CALIBER parameter; it's the partner knob of probe current.
1. What "under 4 eV" really costs at Mg KαFirst a direction check: longer amp time = slimmer peaks. The Aug 5 kV run already sat at 7.68 µs, the slimmest setting. So the A/B can't slim anything relative to today — it measures what the fast setting costs (width, shape) and buys (rate ceiling). The EDAX sheet's Figure 1 is measured at exactly your pair: Mn Kα resolution 124.1 eV at 7.68 µs → 128.0 eV at 0.96 µs, so the "under 4 eV" is really 3.9 eV — at 5.9 keV. It doesn't transfer to 1.25 keV, because a peak's width has two parts added in quadrature: the Fano width (irreducible statistics of electron–hole pair creation in the silicon — shrinks with photon energy) and electronic noise (a constant number of eV at every energy — this is what amp time controls). At Mn Kα the Fano part is about 120 eV, so extra noise hides under it; at Mg Kα the Fano part is only 55 eV, so the same noise increase shows up about 3× larger in relative terms. Propagating with the standard Fiori–Newbury scaling (it's in your textbook's EDS chapter), anchored to your file's measured 127.9 eV:
So "only 4 eV" is true at the spec energy and misleading at yours: Mg broadens 7–17 eV on a 69 eV peak, and the softest lines get hit hardest (note C Kα — your carbon-deposition monitor — at +20 to +47%). 2. Width is not the Al→Mg leverMg Kα and Al Kα sit 233 eV apart = 3.2 Al-FWHM at 7.68 µs, still 2.9 at 0.96 µs. The Gaussian bodies barely touch at either setting: the fraction of Al Kα's Gaussian falling in the Mg window is 6×10⁻⁸ at 7.68 µs — 0.04 counts if all 652k Aug counts had been Al Kα — and about 1 count at 0.96 µs. The thousands of real counts under Mg are continuum plus the Al low-energy tail (events from incomplete charge collection, recorded below their true energy) — a peak-shape property that resolution doesn't govern. So "slimming to make Mg pop out" has no lever to pull; what width does touch is per-channel peak-to-background, and that only moves the Mg detection limit and precision as √FWHM: +5% (EDAX's Δ) to +12% (conservative) worse at 0.96 µs. Real but small. The shape channel is the one that could matter: short amp times risk ballistic deficit — the pulse is clipped before the detector finishes collecting the charge, shifting events low and fattening the tail. Equal-or-worse tails at 0.96 µs is the expectation, never better. And the Mg k-ratio does not cancel the Al tail (your MgO standard contains no Al), so a tail change propagates straight into Mg wt%. That — not width — is the physically live question the A/B answers. 3. What amp time actually trades: the rate ceilingEDAX's own status bars (same sheet): at ≈30 kcps input, 7.68 µs stores 18.2 kcps at 39.7% dead time; 0.96 µs stores 27.5 kcps at 8.4%. That calibrates the processor's per-event cost at 16.8 µs vs 2.9 µs — so at the plan's matched 25–30% DT band, the ceiling is about 14 kcps stored at 7.68 µs vs 81 kcps at 0.96 µs (5.7×): the textbook 10⁷-count spectrum in ≈2 min instead of ≈12; the 1.5M-count spectrum (≈10⁴ net Mg at 5 kV) in ≈19 s instead of ≈106 s. But this only exists once probe current rises to feed it — at the Aug current both settings idle >96%, and amp time changes nothing but resolution, in the wrong direction. (Middle ground: 1.92 µs — where your Apr map already ran — costs just +2 eV at Mg for 3.5× the ceiling.) 4. Verdict and the test to runNot a standalone parameter. Amp time and probe current jointly set (dead time, resolution); alone, amp time has no benefit axis. The CALIBER-shaped rule: use the longest amp time whose rate ceiling reaches the count target within the session's time budget at ≤30% DT; step down only when it can't. That rule needs two measured detector numbers — ΔFWHM(Mg) and tail behavior — which is exactly what the cheap A/B provides. Pre-registrable predictions:
Run it as an appendix block in the 5 kV session, not inside the voltage series — §4 of the plan rightly freezes amp time so kV stays the only moving part, and standards bind to amp time too (switching mid-series would force duplicate standards blocks). One free check you can do today, no microscope: fit Al Kα FWHM in the existing Apr (1.92 µs) vs Aug (7.68 µs) exports — beam kV doesn't change detector resolution and both ran nearly idle, so the prediction is 75 vs 73 eV. Last caveat: whatever wins for throughput, keep 7.68 µs for the carbon-budget spectra — C Kα is where fast amp times bite hardest. No repo changes made — analysis only (numbers recomputed with the Fiori–Newbury FWHM scaling and the paralyzable dead-time model; EDAX figures verified from the tips sheet). Happy to append the A1–A4 block to the plan doc if you want it pre-registered. --- · Branch |
|
It looks like by going through Spectrum Only → Collect Spectrum it will be possible to collect until a certain amount of counts, maybe 1.1 million as the limit. I will email Mike to confirm this |
|
After talking with Paul, Mike, and Felipe today, they agreed that having a baseline of 1 million counts is a good idea. Xavier and I are planning on collecting spectra starting with 1 million, the increasing by factors of 2 and see at where the point of diminishing returns is. I emailed Dr. Rappleye so we can learn how to do ICP-MS and get a standard to compare our spectra against to determine how much accuracy increases with increased counts. |
|
@XZaitzeff at our lab tomorrow, since we still need to finish polishing the new specimen, we can just use the old sample and try to get the first counts done with times of 1,2 and 4 million. We can see generally if there is in an improvement when compared to a standard, and especially how much carbon deposition will increase as acquisition time increases. Start with 5 kV |
|
@claude reading the above comment, help find a good soap we can ultrasonicate the sample in as the first cleaning step. Make sure it is a soap that will leave no residue, and has no perfumes or dyes. Mike suggested using on that I think is called Micro, but I also could have remembered that wrong. |
|
Claude finished @ronnie-guymon's task in 5m 45s —— View job Mike's name was right — it's Micro-90 — but don't use it on this sample: the manufacturer's own MSDS lists "may etch aluminum … and its alloys" as a known incompatibility. The bottle that checks every box for polished AlSi10Mg is Alconox Luminox: pH 7.0, spec-sheet line "Fragrance and Dye Content: 0%", free-rinsing, explicitly rated for aluminum.
1. "Micro" = Micro-90 (International Products Corporation)You remembered correctly — Micro-90 is the standard critical-cleaning concentrate in EM and metallography labs: used at 1–2% in water, free-rinsing (surfactants formulated to rinse away completely rather than adsorb to the surface — the "no residue" property you asked for), no added dyes, and its faint ammonia odor is the chemistry, not a perfume. The catch is in its own MSDS: §10 Incompatibilities — "May etch aluminum, zinc, copper, and its alloys" — and §7 — "Do not store in contact with aluminum, zinc, copper or their alloys." It's alkaline (pH ≈ 9.5 neat), aluminum is attacked by alkali, and ultrasonic cavitation accelerates the attack. On this sample that's not cosmetic: polishing has just stripped the passive oxide (Alconox's aluminum technote recommends a neutral cleaner in exactly that state), and at 5 kV the entire Mg Kα signal comes from the top ≈ 0.3 µm — any selective attack on the Al matrix or Mg lands directly in the quantity CALIBER is trying to measure. IPC's gentler product (Micro Green Clean) is also pH 9.5 with the same avoid-extended-aluminum-contact caution in its SDS, so there's no in-family fix. 2. Buy instead: Alconox LuminoxEvery one of your requirements is an explicit line in the manufacturer's technical bulletin:
Smallest size is 1 gal (makes 20–50 gal of working solution); stocked by Fisher, cat. 16000141, VWR, and the usual suppliers. 3. Two footnotes
· Branch |
|
@claude check the shelf life of luminox, as well as if there is anywhere that sells it cheaper than $288/gallon. Or see if there is a product comparable to Luminox just a different brand for a better price |
|
Claude finished @ronnie-guymon's task in 8m 49s —— View job Shelf life: 42 months sealed — and your $288 was almost certainly for 4 gallons, not one. Single gallons run $87.50, and no other brand actually beats Luminox once you price the diluted bath.
1. Shelf life
2. The $288 decoded, and where to buy cheaperAlconox's smallest Luminox package is the case of 4 × 1 gal, catalog No. 1901 (the bulletin's sizes table — there is no single-gallon or quart SKU from the factory; distributors split cases as "1901-1"). Fisher's 16000141 lists supplier No. 1901 and "4 Bottles/Case" in its description, and $288 sits right among the other case-of-4 prices below while being 3.3× every street price for a single gallon. So that $288 is almost certainly $72/gal × 4 — worth a one-second glance at the listing's quantity field ("4/Case") to confirm. Prices verified today (Sep 18, 2026):
The shelf life settles which to buy: the bulletin says 1 gal makes 20–50 gal of solution, and at a 1–2 L ultrasonic beaker mixed fresh per session, one gallon outlasts the 42-month clock — the Fisher case saves $15/gal and then expires three bottles unused. Buy the single gallon ($87.50). Free option first: Alconox runs a trial-sample program — the request form sends a size that "makes approximately 2–6 gallons of detergent solution" to qualified commercial/industrial customers at their staff's discretion (you describe the application and they pick/approve the detergent). 2–6 gal of working solution is many cleaning sessions' worth of the voltage series before spending anything. 3. Comparable other-brand products — cheaper bottles, not cheaper bathsThe two credible neutral-pH competitors have lower sticker prices, but their own recommended ultrasonic dilutions undo it:
Bottom line: 42 months sealed, 1–2 weeks diluted; the $288 was four gallons in disguise; one $87.50 gallon from Thermal Scientific covers the project past its own expiration date; and the cheapest path of all is the free Alconox trial sample. No repo changes made — research only. --- · Branch |
|
Claude finished @ronnie-guymon's task in 4m 34s —— View job Break-even on the 4-pack is 3.3 gallons consumed before expiry — which translates to roughly a liter-scale Luminox bath every working day from now until 2030. If the novel-alloy pipeline really runs at sample-a-day cadence, the use-it-up logic holds and the case saves $62; if cadence stays anywhere near today's, about $200 of it expires unused.
What "using it all up" requiresConcentrate use tracks baths mixed, not samples made — several mounts share one beaker, and a mixed bath keeps 1–2 weeks, so batching samples is nearly free. At the ultrasonic-strength 2% dilution (1 gal = 3,785 mL of concentrate):
At the label's 1% low end, everything lasts twice as long. So "we'd use it up before it expired" is true exactly in the world where the lab runs a 1 L bath — or a multi-stage 250 mL clean — essentially every working day, sustained for the full 3.5 years. The cadence so far (a cleaning session every few weeks) stays inside a single gallon all the way to expiry. The asymmetry behind the approvalSingle gallons are a stocked catalog item at $87.50 (Thermal Scientific), so Luminox isn't scarce — the only thing the case buys is the $15.50/gal discount:
So the $288 is really a wager on the high-throughput roadmap being live well before 2030 — the detergent economics are a rounding error next to that call, and either choice is defensible if the roadmap is believed. Two footnotes
No repo changes — purchasing math only. --- · Branch |
|
Beam current faraday cup measurement is 3.29 nA for data collected on 9/23/2026 |
|
@claude what is the best way to determine, other than visually, if the Mg count is becoming more pronounced than the noise? Right now, just by looking at it, it seems like we have not yet reached the point of diminishing returns, but I want to be able to numerically determine the Mg signal-to-noise ratio.
|
|
Claude finished @ronnie-guymon's task in 55m 3s —— View job Fit the Mg Kα peak and track SNR = net Mg counts ÷ their Poisson σ. SNR rises as √(total counts) and never bends, so the curve itself won't show you "diminishing returns". You find that point by comparing the counting σ with (a) the scatter between repeat spectra and (b) how far Mg moves when you change the background model. In your screenshot, Mg is already ≈11–30σ above background in all four spectra, and its peak/background ratio stays at 0.22–0.25. The peak "popping out" more is the noise shrinking, not the peak growing.
1. The numbers to use instead of eyeballing
2. Your four spectra
3. Finding the diminishing-returns point numericallyEvery doubling of time buys ×1.41 SNR, at every count level. The useful place to stop is where counting σ is no longer the largest error. Three numbers tell you where that is:
4. How to get the numbersNow (no standards needed). Save this as import sys
import numpy as np
DEG = 2 # background polynomial order; rerun with 3 to see how much Mg depends on the background model
FWHM = 0.0691 # Mg Kα FWHM (keV) = sqrt(FWHM_MnKa² − 2.5·(5895 − 1254)) eV, FWHM_MnKa = 128 eV
s = FWHM / 2.3548
for f in sys.argv[1:]: # EDAX CSV export: energy (keV), counts
E, y = np.loadtxt(f, delimiter=",", unpack=True)
m = (E >= 1.02) & (E <= 1.36) # Mg Kα plus both shoulders, stopping short of Al Kα
x = E[m] - 1.2536
g = np.exp(-0.5 * (x / s) ** 2) * (E[1] - E[0]) / (s * np.sqrt(2 * np.pi)) # unit-area Mg Kα peak
X = np.column_stack([x**k for k in range(DEG + 1)] + [g]) # background (continuum + Al Kα tail) + Mg Kα
w = 1 / np.maximum(y[m], 1) # Poisson weights
cov = np.linalg.inv(X.T @ (X * w[:, None]))
a = cov @ (X.T @ (w * y[m]))
P, sP = a[-1], np.sqrt(cov[-1, -1])
win = np.abs(x) <= 0.6 * FWHM # 1.2-FWHM window: the width that maximizes P/√B
B = (X[win, :-1] @ a[:-1]).sum()
chi2 = (w * (y[m] - X @ a) ** 2).sum() / (m.sum() - DEG - 2)
print(f"{f}: N={y.sum():,.0f} Mg={P:,.0f} ± {sP:,.0f} SNR={P / sP:.1f} "
f"Z={P * g[win].sum() / np.sqrt(2 * B):.1f} Mg/N={1e6 * P / y.sum():.0f} ppm chi2={chi2:.2f}")
After the standards block. In DTSA-II's Script tab,
5. Correction to my earlier numbersThe "≈4,400 net Mg Kα counts" for the Aug 5 kV spectrum was wrong. It appears in plan §4 and my Sep 1 and Sep 7 comments, and it came from PR #11's whole-spectrum hyperspy fit (rerun here: 4,435).
Do you want me to fix plan §4 (along with the July → Apr/Aug labels from last time) and commit the script as Check Commands run + outputsNo repo changes — analysis only. Sources: Harries, Microscopy Today 25(1):28 (2017) · Ritchie & Newbury, Anal. Chem. 84:9956 (2012) (DTSA-II's uncertainty model) · NIST's |
|
I'll see what @XZaitzeff thinks of this, he'll probably be able to help me better understand it along with its implications. |
|
Beam current for 8x1M spectra on 9/30/2026 is 3.24nA |
|
From the Oct 2 atomizer meeting: the 4047-in-6063 powder from the Oct 2 run (u23y78) would be a good test case for the acquisition-time work, since the question we want to answer is how well it mixed. That means EDS on powder samples from, e.g., the top, middle and bottom of the jar. cc @ronnie-guymon and @XZaitzeff, noting that @trneslen could also help with doing an SEM run. @claude roughly what counts would we need to tell apart a 1 wt% difference in Si between samples (e.g., top vs bottom of the jar)? Use Edison and the tooling developed here in caliber. @claude also, is EBSD on powders a thing? Or is that where people would just typically use powder x-ray diffraction (P-XRD) and not bother with EBSD? Comment drafted by claude, edited and approved by sgbaird |
|
Claude finished @sgbaird's task in 37m 9s —— View job About 3×10⁴ counts per spectrum is enough to resolve 1 wt% Si from counting statistics alone, so the 1M baseline is roughly 30× more than Si needs. What decides top vs bottom is how many particles you measure and where the beam lands on each one. On loose powder at 5 kV, a spot within ±0.3 R of the apex reads Si within −0.4/+0.2 wt%. At 15 kV the same window spans ±1.3 wt%, which is enough to hide a 1 wt% difference. EBSD on powders is an established research method, but it doesn't measure mixing; P-XRD and ICP give lot averages.
1. Counting statistics: Si is an easy peakOn the real Aug 5 kV AlSi10Mg spectrum ( The table scales that spectrum to other Si levels. The DTSA-II column is the measured scatter of standards-based Si wt% over 12 simulated Poisson spectra (pure Al, Si and MgO standards):
2. Powder geometry: Si Kα is the line most sensitive to where the beam hits a sphereSi Kα (1.740 keV) sits just above the Al K edge (1.560 keV), so Al absorbs it strongly (1/e length 1.3 µm). Al Kα barely notices a change in escape path, so normalization can't cancel the effect. I ran NISTMonte (DTSA-II's Monte Carlo) on an Al-6Si-0.5Mg sphere on carbon, with bulk MC standards, and moved the beam along the detector direction. Values are normalized Si wt%; true is 6.00, and flat bulk reads 6.16 (5 kV) / 6.08 (15 kV), an offset shared by every row:
3. How many particles per jar positionEach particle's reading combines its true Si with geometry, microstructure and counting errors. Call the particle-to-particle SD σ_p. To detect Δ = 1 wt% (two-sample, 95% two-sided, 80% power) you need n = 15.7·σ_p² particles per position:
4. Is EBSD on powders a thing?Yes, as a research method, not as routine lot QC (Edison answer). Particles are mounted, sectioned and polished:
What EBSD adds per particle: grains per particle, grain size vs particle size, and atomization deformation. For example, several dendrite arms can share one grain, so cell spacing is not grain size. Fine precipitates and eutectic Si are often smaller than practical step sizes. P-XRD is preferred for lot averages. It gives phases, Rietveld fractions, and the α-Al lattice parameter as a proxy for supersaturated Si: as-atomized AlSi10Mg read 0.4046 / 0.4050 nm vs 0.4051 nm annealed (Albu 2020). A minor phase needs to be present at a few wt% to be detected. For u23y78: neither technique measures Si per particle. XRD on top/bottom splits is useful supporting evidence, but EBSD doesn't address mixing. If EBSD is wanted later for solidification structure, it can reuse the same polished mounts: do EDS before any colloidal-silica step. Commands run + key outputsThe only repo changes are the Edison artifacts under |
Co-authored-by: Sterling G. Baird <45469701+sgbaird@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…on powders Co-authored-by: Sterling G. Baird <45469701+sgbaird@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Sterling G. Baird <45469701+sgbaird@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>



Working PR for the second round of EDS parameter work — follow-on to #11 ("EDS parameter #1").
Sets up the standards-based 5/10/15/20 kV beam-voltage series on AlSi10Mg that tests whether the CALIBER voltage recommendation (5 kV, criterion cap ≈7.5 kV, from PR #11 section 4) worked right:
docs/eds_voltage_series_plan.md— the hypothesis, seven falsifiable predictions (P1–P7), the acquisition protocol (per-voltage standards block, dead-time control, Duane–Hunt check), and pre-registered decision rules for what each outcome does to CALIBERscripts/eds_voltage_predictions.py— independent recomputation of the criterion (xraydb Elam MACs, Kanaya–Okayama production depths, Philibert f(χ)); reproduces the PR EDS parameter 1 (Beam Energy) #11 numbers exactly and writes the prediction table (CSV) and figureSession data from the four microscope runs goes under
outputs/voltage-series/<E0>kV/on this branch.Addresses issue #1.
Generated with Claude Code