← All Pull Requests

Fix ball pitch (0.45 -> 0.25mm, intentional overlap) + add paste material spec #10

Merged opened by Drew Owens 2026-07-10

Corrects the dispense pitch: 0.30mm balls land at 0.25mm centers with a slight intentional overlap (paste.rs's DOT_PITCH=0.45 is the bug, flagged for update). Adds the paste material spec (63Sn/37Pb leaded, Indium 12.8HF flux, Type 6-SGS mesh, 80% metal) and 3D rendering guidance (hemispheres, flat face on pad). From Drew.

Diff

--- a/README.md+++ b/README.md@@ -1,38 +1,61 @@-# Adom Footprint Standard: 300um Solder-Ball (Jet-Paste) Layer--**Every Adom-owned footprint must carry a dedicated, hidden-by-default layer marking where the-300um solder-paste balls land when assembled on the Essemtec solder-paste JET dispenser.**--## The rule--- Add a dedicated **User layer** to every footprint - proposed **`User.9` named `Adom.SolderBalls`**-  (independent of `F.Paste`, so stencil paste and jet-deposit positions never conflict).-- On that layer, place the **300um (Ø0.30mm) dot positions** at **0.45mm pitch** across each pad's-  paste aperture (the InstaPCB jet-dispense pattern already implemented in-  `adom-footprint/src/paste.rs`: `DOT_DIA=0.30`, `DOT_PITCH=0.45`, `MARGIN=0.06`).-- The layer is **HIDDEN BY DEFAULT** in every viewer (it is assembly/process data, not for normal-  review). FpView already exposes a "paste dots" toggle, off by default - keep that behavior.-- **Through-hole pads** (machine pins etc.) get a **ring of 300um dots around the annular pad** (they-  have no `F.Paste` aperture today, so `paste.rs` yields zero dots for them - this must be extended).--## Why persist it (vs compute on the fly)--Today `paste.rs` computes the dots **ephemerally** (SVG overlay only, SMD pads only). Making it a-**persisted layer** in the `.kicad_mod` means: the jet-dispense program is reproducible and reviewable,-it travels with the footprint into KiCad/Fusion/Altium, and the assembly team sees exactly where paste-lands - hidden until they turn it on.--## Reconcile the dot diameter--The `adom-footprint` code uses **300um** (`DOT_DIA=0.30`); the `adom-footprint` SKILL text says-**250um**. **Standardize on 300um** (per the dispenser spec) and fix the skill text.--## Action for footprint owners (Drew, Arav, Ray)--1. Extend `adom-footprint/src/paste.rs` to (a) EMIT the dots onto the `Adom.SolderBalls` User layer in-   the `.kicad_mod` (not only the SVG overlay), and (b) handle **through-hole** pads (annular ring).-2. Backfill the layer into existing Adom footprints (a batch pass over the libraries).-3. Keep it hidden by default in FpView / all viewers.--Reference implementation of the through-hole ring + 300um hemispheres in a 3D viewer:-the **[Adom machine-pin pages](https://wiki.adom.inc/adom/machinepinmediumstandard)** (this work).+# Adom Footprint Standard: 300um Solder-Ball (Jet-Paste) Layer++**Every Adom-owned footprint must carry a dedicated, hidden-by-default layer marking where the+300um solder-paste balls land when assembled on the Essemtec solder-paste JET dispenser.**++## The rule++- Add a dedicated **User layer** to every footprint - proposed **`User.9` named `Adom.SolderBalls`**+  (independent of `F.Paste`, so stencil paste and jet-deposit positions never conflict).+- On that layer, place the **300um (Ø0.30mm) dot positions** at **0.25mm pitch** — a slight,+  intentional overlap between adjacent balls (0.30mm balls at 0.25mm centers). The overlap is+  correct; do not spread the balls apart to "fix" it.+  `adom-footprint/src/paste.rs` currently implements `DOT_DIA=0.30`, `DOT_PITCH=0.45`,+  `MARGIN=0.06` — the **0.45mm pitch is wrong and must be updated to 0.25mm**.+- The layer is **HIDDEN BY DEFAULT** in every viewer (it is assembly/process data, not for normal+  review). FpView already exposes a "paste dots" toggle, off by default - keep that behavior.+- **Through-hole pads** (machine pins etc.) get a **ring of 300um dots around the annular pad** (they+  have no `F.Paste` aperture today, so `paste.rs` yields zero dots for them - this must be extended).++## Why persist it (vs compute on the fly)++Today `paste.rs` computes the dots **ephemerally** (SVG overlay only, SMD pads only). Making it a+**persisted layer** in the `.kicad_mod` means: the jet-dispense program is reproducible and reviewable,+it travels with the footprint into KiCad/Fusion/Altium, and the assembly team sees exactly where paste+lands - hidden until they turn it on.++## The paste itself (material spec)++The paste run through the jet dispenser is **leaded** — never assume a lead-free (SAC) alloy for+Adom paste work unless explicitly told otherwise.++| Property | Value |+|---|---|+| Alloy composition | **63Sn / 37Pb** (leaded, eutectic tin-lead, melts ~183 C) |+| Flux | **Indium 12.8HF** (the flux vehicle is the non-metal fraction — no separate flux step) |+| Powder mesh | **Type 6-SGS** (fine powder; what makes 300um jetted balls feasible) |+| Metal content | **80% by weight** |++## Rendering Paste Elements (3D viewers)++- Render each ball as a **hemisphere (half sphere), flat face on the pad** — not a full sphere.+- Ø0.30mm at 0.25mm pitch: adjacent hemispheres **overlap slightly by design**.+- Material/color: leaded solder — dull silver-gray, not bright lead-free silver.+- 0.30mm is the default and the working minimum; do not go smaller without explicit direction.++## Reconcile the dot diameter++The `adom-footprint` code uses **300um** (`DOT_DIA=0.30`); the `adom-footprint` SKILL text says+**250um**. **Standardize on 300um** (per the dispenser spec) and fix the skill text.++## Action for footprint owners (Drew, Arav, Ray)++1. Extend `adom-footprint/src/paste.rs` to (a) EMIT the dots onto the `Adom.SolderBalls` User layer in+   the `.kicad_mod` (not only the SVG overlay), and (b) handle **through-hole** pads (annular ring).+2. Update `DOT_PITCH` in `adom-footprint/src/paste.rs` from 0.45 to **0.25** (see "The rule").+3. Backfill the layer into existing Adom footprints (a batch pass over the libraries).+4. Keep it hidden by default in FpView / all viewers.++Reference implementation of the through-hole ring + 300um hemispheres in a 3D viewer:+the **[Adom machine-pin pages](https://wiki.adom.inc/adom/machinepinmediumstandard)** (this work).+

Comments

No comments yet.

Log in to comment.