Exocortex Labs

The soft pin (EXO-PIN-S): spec and RFQ

Today's pin, the Kinghelm KH-205580-DZ, gives 70 g at its full 2 mm stroke and is linear from zero. Across the helmet it gives 13.8–59.7 g a pin and 432 N in all. The headband is designed for 150 N (shell). No commodity pin with a stated force of 10–35 g fits the footprint (pin-force bench).

The fix is a custom spring in today's body: a spring that is wound longer than its pocket, so that it pushes with a preload before the plunger moves and then rises slowly. Every pin is then near the same force, whatever its gap. The body, the footprint, the height and the stroke do not change, so the layout and the shell do not change.

Nothing here is sent, quoted or ordered. This page is what we would send. The numbers come from exo/softpin.py (uv run python -m exo.softpin → out/softpin.json).

The force window

From the literature. Fiedler et al. measured dry multipin electrodes on 12 volunteers. They pushed each 30-pin electrode with forces from the least that gave less than 1.3 MΩ up to 4 N, at hairless (frontal) and hairy (temporal) sites. Impedance fell as the force rose. For Shore A98 it fell from about 348 kΩ and 257 kΩ to 29 kΩ and 23 kΩ. They found that 2–3 N was the best compromise of low, stable impedance and wearing comfort. 4 N was the most they tested (Fiedler et al. 2018, IEEE TNSRE 26(4):750; PubMed 29641379). The same group gives 2 N on its 30-pin Ti/TiN electrode as 0.9 kg/cm², so each of their pins touched about 0.76 mm². Our Ø0.90 mm domed tip touches about 0.64 mm². Per pin:

per 30-pin electrode per pin what it is
2 N 6.8 g the low end of the best compromise
3 N 10.2 g the high end
4 N 13.6 g the most they tested and rated

So the soft pin must give at least 7 g and at most 13.6 g on every pin, after the spring's ±15 % tolerance.

One caveat. Their 30 pins are one electrode, in parallel. Each of our pins is its own channel. If 30 equal contacts read 23–29 kΩ together, one of them reads about 30 times that: about 0.7–0.9 MΩ. That is more than the bench's limit (Z_MAX, 200 kΩ at 1 kHz). Through hair, a dry single pin may not reach 200 kΩ at a comfortable force. The force window is set by comfort and by the headband. Whether the impedance is good enough in that window is a question only the bench can answer. If it is not, more force is not the fix (comfort and the band limit it). The fix is a different contact or a different Z_MAX.

The spec

In the form Chinese pin makers use. Part number EXO-PIN-S-A (our number until the maker gives one).

item value
base part Kinghelm KH-205580-DZ (LCSC C530677), drawing PG2.0-8.0-0.5T. Same barrel, plunger, flange and footprint
type SMD single pogo pin, reflow soldered, vertical
total height (free) 8.00 ± 0.10 mm, pad to tip
stroke 2.0 mm (6.00 mm at full stroke)
working range 7.61–6.29 mm height (compression 0.39–1.71 mm)
flange Ø2.00 × 0.50 mm, as drawing
barrel Ø1.50 mm, 5.0 mm long, as drawing
plunger and tip Ø0.90 mm, domed (full radius), no burr or sharp edge, Ra ≤ 0.4 µm on the dome
plunger contact bias design (angled tail or ball) so that the plunger always touches the barrel
spring preload 7.5 g ± 15 % with the plunger just off its stop (height 7.95 mm)
spring rate 2.5 g/mm
force at test heights 8.5 g at 7.60 mm · 10.0 g at 7.00 mm · 11.8 g at 6.30 mm · 12.5 g at 6.00 mm, each ± 15 %
lot mean force at 7.00 mm, 10.0 g ± 7 % (the total on the head depends on the mean)
hysteresis ≤ 1.5 g between compression and release at 7.00 mm
spring (our sizing; maker to confirm) SUS304-WPB, wire Ø0.07 mm, OD 0.98 mm, 11 active + 2 closed coils, free length 6.3 mm, solid 0.92 mm, in a pocket of Ø1.10 × 3.3 mm (1.3 mm at full stroke). Stress at full stroke 919 MPa, 43 % of the wire's minimum tensile
barrel and plunger material lead-free brass (Pb ≤ 0.1 %), or another lead-free and beryllium-free copper alloy
plating, plunger hard gold ≥ 0.76 µm (30 µ") over nickel 1.27–2.5 µm; or a nickel-free barrier (state which)
plating, barrel gold ≥ 0.05 µm (2 µ") over nickel, solderable
contact resistance ≤ 50 mΩ over the working range
current rating 0.5 A (the pin carries about 10 µA)
life ≥ 30,000 cycles, 0 → 1.71 mm, force after life within −10 %, resistance ≤ 100 mΩ
operating temperature −20 to +85 °C
reflow lead-free, 260 °C peak, 3 passes; the spring force must not change by more than 5 %
compliance RoHS, REACH (no SVHC > 0.1 %), nickel release ≤ 0.5 µg/cm²/week (EN 1811) on the plunger
packaging embossed carrier tape with a pick-up cap, on reels, for machine placement at JLCPCB
marking lot number and date code on each reel

Why each value:

  • Preload and rate. At the helmet's least and most compression (0.39 and 1.71 mm) the pin gives 8.48 and 11.76 g. With ±15 % that is 7.21–13.53 g: inside the window above.
  • Same body. A spring change keeps the drawing, so the footprint, the 8.0 mm height, the shell and the layout's window (6.2–7.7 mm face to scalp) stay. The spring pocket (Ø1.10 × 3.3 mm) is our assumption from the drawing's outside sizes. The maker states its own.
  • Bias plunger. A light spring presses the plunger against the barrel less. A plunger that loses contact makes steps in the signal. The bias keeps it in contact.
  • Gold over nickel, nickel release. The tip touches skin for hours (regulatory, the pogo-pin row). Lead-free brass removes the SVHC and SCIP duties.
  • Lot mean ± 7 %. One lot fills a helmet, so the lot's mean, not each pin, sets the total on the head.

The force budget

1,118 tile pins, at the layout's gaps (out/cap_layout.json). The hub's REF and BIAS pins add about 0.2 N.

spring force a pin (g) ± 15 % (g) total (N) at +15 % (N) serves a need of (g) spring (our sizing)
today: KH-205580-DZ, 70 g at 2 mm, linear 13.8–59.7 — 432.2 — — —
A: 7.5 g preload + 2.5 g/mm (the design) 8.48–11.76 (median 10.4) 7.21–13.53 113.1 130.1 7.9 SUS304, Ø0.07, 13.1 coils, L0 6.3 mm
L: 5.0 g + 2.0 g/mm (light) 5.79–8.41 4.92–9.67 79.5 91.4 5.4 SUS304, Ø0.065, 12.2 coils, L0 5.8 mm
H: 10.0 g + 2.5 g/mm (heavy) 10.98–14.26 9.34–16.40 140.5 161.6 10.1 SWP-B, Ø0.07, 14.8 coils, L0 7.3 mm

"Serves a need" is the bench's rule: the force at the 5th-percentile compression, divided by 1 + tolerance.

  • A fits the 150 N headband with 20 N to spare, at the top of the spring's tolerance.
  • On the wearer (out/wearer_report.json, compression 0.375–1.695 mm) A gives 8.44–11.74 g and 112.7 N.
  • Today's linear spring gives the least-compressed pin a quarter of the most-compressed one's force. A gives the least compressed pin 72 % of the most. The ratio of the most to the least is 1.39 (today: 4.3).
  • L and H bracket A in the samples, so the bench can try real springs on both sides of it. H at its top tolerance (162 N) would need PIN_LOAD raised in exo/shell_v1.py (the band's tension and brow pressure rise by 8 %).

The gap range: narrow it, or not?

The question was whether per-tile standoff heights could narrow the 0.38–1.70 mm compression range, so that a cheaper, less preloaded spring would do. They cannot. The analysis is in out/softpin.json (gaps).

  • Every tile is already centred. exo/cap_layout.py sets each tile's face (zf) so that its own pins' gaps are centred in the window. All 66 tiles have their middle gap at 6.949–6.951 mm.
  • The range is one tile's own spread. A flat board on a curved scalp has gaps that differ across it. The widest, R1E-01, spreads 1.312 mm: the whole range of the helmet. The median tile spreads 0.93 mm. A standoff moves a whole tile, so it does not change that spread. What standoffs could gain: 0.0 mm.
  • The wearer agrees with the layout. The wearer's measured face-to-skin gives 0.375–1.695 mm against the layout's 0.393–1.706 mm. The shell's inner face is within 0.08 mm of its assumed offset for 90 % of it. The extremes differ by 0.01–0.02 mm. Tuning the tiles to this wearer would gain that much, and fit only this head.
  • What would narrow it, and at what cost:
change range (mm) A's spread a pin total with A cost
none (today) 0.39–1.71 3.3 g 113.1 N —
every face 0.2 mm further from the scalp 0.19–1.51 3.3 g 107.6 N 0.2 mm less contact margin at the light end
two pin lengths (+0.65 mm on the pins with the larger gaps) 1.04–1.81 1.9 g 122.0 N a second part, and boards § one pin forbids mixed pins
split the two widest designs (R1E, R3E: 5 tiles) 1.16 wide (R3 is next) 2.9 g about 113 N a new layout, more boards and FPC links; about 0.9 mm needs most ring tiles split
  • Decision: do not change the layout. With a preloaded spring the range costs only 2.5 g/mm × 1.31 mm = 3.3 g of spread. A cheaper spring is not possible this way: the preload costs nothing in a custom spring, and a linear spring would need the range to be near zero. No rebuild is needed.
  • What the range does limit is fit from head to head, not force. The stroke leaves 0.39 mm at the light end and 0.29 mm at the full end. A head that sits more than that off the model loses contacts or bottoms them. That is a sizing question for the headband and the shell, outside this spring.

How the bench confirms or changes it

The pin-force bench sets forces with dead weights at 7, 10, 14, 20, 35 and 60 g. 7 and 14 g bracket the literature's window. sim/bench_pin_force.py then picks, of today's pin and the soft pin's three springs, the one with the least total force that serves the need within the headband's 150 N (at +15 %). If none does, it sizes a preload to the need at A's rate (need × 1.15 − 1.6 g) and takes the lesser total of that and the listed springs:

bench result (hairy need) spring total what changes
≤ 5.4 g L 80–91 N ask L instead of A
5.4–7.9 g A 113–130 N nothing: this spec
7.9–9.3 g A's rate with more preload (7.5–9.1 g) 130–150 N ask that preload; the H samples bracket it
> 9.3 g the same, sized to the need above 150 N PIN_LOAD to the total at +15 %, rebuild the shell; the comfort check decides; the dry pin may not suit this hair
never reaches Z_MAX by 60 g none — the dry single pin does not work for that hair

The comfort rule still applies: the chosen spring's median force must not exceed the largest step whose 60-minute ratings have a median of 3 or less. Then the samples go back on the bench: the seven-pin cluster built with the chosen soft pin, worn at Cz for 60 minutes, must read through hair and pass comfort with its own spring (no weights).

The RFQ

To: Kinghelm (the body's maker), YIYUAN (the YTC1P family on LCSC), and one Dongguan maker of made-to-order pins (supply). Attach the spec above and Kinghelm's drawing PG2.0-8.0-0.5T.

Subject: RFQ: custom spring in KH-205580-DZ (PG2.0-8.0-0.5T), 15k and 150k pcs, samples

Hello,

We use your SMD pogo pin KH-205580-DZ (drawing PG2.0-8.0-0.5T). We need the same pin with a softer, preloaded spring. Barrel, plunger, flange and footprint stay as the drawing. The attached spec gives the spring force at four heights.

  1. Samples: 300 pcs each of three springs, A, L and H (table below), on cut tape or in bags. With each variant, the force at 7.95, 7.60, 7.00, 6.30 and 6.00 mm on 32 pins, and the spring's wire, diameter and free length.
  2. Quote for spring A (or the one we choose after testing the samples), on tape and reel with pick-up cap: 15,000 pcs, and 150,000 pcs (one order, or 3 releases of 50,000).
  3. Please state: unit price at each quantity, tooling or set-up cost, sample cost and time, production lead time, MOQ, reel quantity, and the material declaration (barrel and plunger alloy, lead content, plating thicknesses, nickel layer). Tell us if you propose a different spring or pocket to reach the forces.
spring preload at 7.95 mm 7.60 mm 7.00 mm 6.30 mm 6.00 mm
A 7.5 g 8.5 g 10.0 g 11.8 g 12.5 g
L 5.0 g 5.8 g 7.0 g 8.4 g 9.0 g
H 10.0 g 11.0 g 12.5 g 14.3 g 15.0 g

All forces ± 15 %. Lot mean at 7.00 mm within ± 7 %.

Thank you.

Quantities. 15,000 is 10 helmets as built (14,500: 86 tiles made for 66 used, supply). 150,000 is 100 helmets as built (145,000), or 112,000 used plus spares and attrition.

Acceptance tests

On each sample variant, and on each production lot (sample size in brackets):

  1. Dimensions (32): free height 8.00 ± 0.10 mm, flange, barrel and plunger diameters to the drawing.
  2. Force curve (32): force at 7.95, 7.60, 7.00, 6.30 and 6.00 mm, on compression, with a force gauge on a height stand (0.01 g resolution). Each within ± 15 % of the spec; the lot mean at 7.00 mm within ± 7 %; hysteresis ≤ 1.5 g.
  3. Total, on a tile (2 tiles): a populated R2 tile (17 pins) pressed onto a flat plate on a scale at 1.0 mm compression: 17 × 10.0 g ± 7 %.
  4. Resistance and chatter (32): 4-wire resistance ≤ 50 mΩ at 7.60, 7.00 and 6.30 mm at 10 mA. Cycle 7.6 ↔ 6.3 mm at 1 Hz for 1 minute with 100 µA: no open longer than 1 µs (a scope on a 1 kΩ load).
  5. Reflow (32): 3 passes of JLC's lead-free profile on a test board, then test 2 again: within 5 % of before.
  6. Life (8): 30,000 cycles 0 → 1.71 mm, then test 2 (within −10 %) and test 4 (≤ 100 mΩ).
  7. Plating and nickel (5 per variant, then per year): gold thickness by XRF on the dome ≥ 0.76 µm; nickel release by EN 1811 ≤ 0.5 µg/cm²/week (a test house).
  8. Placement (1 reel): JLC places a test panel from the reel with no mis-picks; the pins stand within 2° of vertical.
  9. On a head: the seven-pin cluster of the pin-force bench with the chosen spring, as in the section above.

A lot that fails 1–6 goes back. Tests 1–4 are the incoming check; tests 5–8 are for the samples and the first lot.

Cost and sourcing

Indications, not quotes (exo/supply.py: softpin_run, kind: "quote", confidence: "indication"). They are on the pin's cost line in the 3D document and both logistics plans as the alternate EXO-PIN-S-A, and in out/sourcing/cost.json → pin_options.

15,000 (10 helmets) 150,000 (100 helmets)
unit price (indication) $0.10–0.15 $0.07–0.11
from the made-to-order listings ($0.10 at 5k, $0.14 at 10k) and today's pin's catalog tier ($0.0957 at 4k) supply.md's factory-run estimate
tooling (estimate) $0–500: a new spring and its winding set-up, a tape pocket if none fits the same, once
samples (estimate) $0–300: 3 × 300 pins and express freight —
lot $1,500–3,050 $10,500–17,300
per helmet (1,120 pins) $112–248 $78–131
today's pin per helmet $124.77 (JLC, $0.1114 at the one-helmet order) about $107 (JLC $0.0957 at 4k+)
time (estimate) samples 4 weeks, bench 1 week, production 2–4 weeks the same

Freight, duty and JLC's consignment fee ($70 per 50 items + $15 handling, supply) are not included. At 150k the soft pin costs about the same as today's pin. At 15k it costs up to twice as much per helmet, because the samples and the set-up are spread over 10 helmets.