OSSO

OSSO, latest: v18

Frozen Oct 25, 2026 4:50 PM ET · full version page · design timeline

Near-term paste process: drum-frame film stencil v2 (0.075 mm non-adhesive polyimide, laser-cut in the jig). 196 mm frame with a tensioning ridge, 20× M3×12 countersunk screws into Ruthex M3 inserts, and a wedge-slider lift that raises the board 8 mm to the film plane. Practice film (ZXAKAOSI PI 0.075 mm, 200×300 mm, 10-pack) ordered Oct 20. Laser alignment: v0 centre-crosshair offset test (cad/laser_align_v0_center) first, then the v1 test pattern (cad/laser_align_v1, drawing PNG · PDF). Board baseline remains top v1i with the 3.96 mm card edge.

STEP files (top v1i)

top v1i

PNG · PDF

Oct 21: tester strategy (universal OSSO Test Board), ball tinning (BR-G1, dispenser POC v2), flux syringe head, to-do

BR-G1 fab files (pcb/br_g1_v1)

Ball dispenser POC v2 CAD (cad/ball_dispenser_poc_v2)

2026-10-21 10:36 AM ET — DECISION (the designer): stencil-free ball dispensing head (supersedes ball stencil)

Oct 21, 2026 · 10:36 AM ET · journal ↗

Tinning uses a ball dispensing head on a bed-slinger instead of a ball stencil: no stencil, no per-board mask. Proposed concept (not yet confirmed): a hopper of 0.25mm SAC305 balls, then a singulator (an E-axis pocket disc), then a short gravity drop tube about 0.5mm above the pad. N balls per pad set the volume, and an optical gate and/or camera confirm each drop. Flux is applied first (dispenser). The earlier 0.2mm ball stencil film entry is superseded.

2026-10-21 11:04 AM ET — DESIGN: hand-spin ball dispenser POC v2 (resin + FR4 gear disc)

Oct 21, 2026 · 11:04 AM ET · journal ↗

Revision of POC v1. The resin twist ring and 0.28 web are replaced by the bought bare FR4 pocket disc OSSO BR-G1 (drawing ball_ring_fr4_gear_v1, completed earlier today): 0.30 thick, m1.0 z22 gear rim (OD 24, pitch 22, root 19.5), D-bore 3.00 / flat 2.50, 12x 0.30 pockets on R8, 1.0 home hole on R6 at 0°, 3x 0.8 pin holes on R3 (unused). The disc is modeled as a reference part only. The resin base is 31mm in diameter and the assembly is about 29.3mm tall. The disc sits on the flat floor plate (pocket floor) and is keyed and centered by a printed hub with a D-boss (2.90 / flat 2.40) that turns with it in an 8.3 recess (0.15 radial). A fixed D-shaft would lock the disc, so the D-profile is on the turning hub. The hopper cover plate runs 0.12 above the disc and has a 60° fill window opposite the drop, and the window edge is the wiper. The single 0.45 drop hole at R8, 0° leads to a 0.45 x 10 chute. A 1.0 home sight hole at R6 is aligned with P1 over the drop. A 120° side window in the housing ring exposes the teeth for fingertip spin, with 0.30 radial clearance at the tips. There is an optional light cantilever detent at 270° (22 clicks, not matched to the 30° pocket pitch). A lid is included. The CAD fit check shows zero interference at rest, and the detent preload is about 0.013 mm³ at half a tooth. Files: cad/ball_dispenser_poc_v2/ and drawings/ball_dispenser_poc_v2.py/.png/.pdf.

2026-10-21 11:09 AM ET — DESIGN: POC v2 revised in place with a grip skirt (the designer)

Oct 21, 2026 · 11:09 AM ET · journal ↗

The base now extends downward into a hollow cylindrical grip so it is easy to hold. The grip is 31 OD (R13.0 to R15.5, 2.5 wall) and 22 tall below the 2.0 floor plate, with 36 light flutes and an open bottom. There are two 6 x 12 viewing and light slots at the bottom, at 0° (drop side) and 180°. The nozzle is now 20 long (2.9 to 2.0 dia) with a 0.80 x 10 relief, then the 0.45 x 10 chute. The tip sits 2.0 above the grip bottom, so set the grip on the target and watch the drop through the slot. The nozzle top was made smaller so the R6 home sight hole has a clear light path (0.05 clear). The 120° finger window and the 0.42 ring at disc level are unchanged. The overall height is now about 41.3 (base 24.4). The fit check again shows zero interference, and all gaps are unchanged (0.12 vertical, 0.30 radial at the teeth). Files were updated in cad/ball_dispenser_poc_v2/ and drawings/ball_dispenser_poc_v2.*.

2026-10-21 11:17 AM ET — PCB: BR-G1 FR4 gear pocket disc fab files v1 (no pricing)

Oct 21, 2026 · 11:17 AM ET · journal ↗

Fab files for OSSO BR-G1, per drawing ball_ring_fr4_gear_v1, in pcb/br_g1_v1/. The KiCad 9 source br_g1_v1.kicad_pcb is generated by make_br_g1.py and exported with kicad-cli. Outputs are the Edge.Cuts Gerber (RS-274X/X2), the Excellon NPTH drill file, empty F/B copper, F/B mask filled (no mask) and a job file, zipped as br_g1_v1_gerbers.zip with README_FAB.md. The outline is an exact involute (m1.0 z22 PA20, OD 24.00, root 19.50) closed with R0.5 for a 1.0 router bit; the tooth space at the root is 1.10, so the root is still reached, and deviation is 0.20 at the root corners only. The D-bore is 3.00 with the flat at 2.50 and R0.5 corners. Drills: 12x 0.30 on R8, 1.0 home hole on R6 at 0°, and 3x 0.80 on R3 (optional). KiCad DRC shows 0 violations. An independent re-parse of the Gerber and Excellon confirms the outline is closed (2 loops), 22 teeth, tooth thickness 1.571 at pitch, and 16 holes in the right positions. The silkscreen label is omitted (legend needs a mask). Caveats: thickness tolerance (PCBWay standard is ±0.1 under 1 mm), the 0.30 drill is near the minimum, and routing tolerance is ±0.1-0.2. Preview: pcb/br_g1_v1/br_g1_v1_preview.png.

2026-10-21 11:47 AM EDT — Design note: separate machines today, one machine later

Oct 21, 2026 · 11:47 AM ET · journal ↗

the designer's design note: in time, all operations (paste or flux dispensing, ball tinning, pick and place) can be collapsed into one machine. For simplicity and maintenance, they stay as separate machines today, each sharing the common jig datum.

2026-10-21 11:52 AM ET — VERSION v12 snapped

Oct 21, 2026 · 11:52 AM ET · journal ↗

Frozen to versions/v12_2026-10-21 + OSSO_v12_2026-10-21.tar.gz (the project without versions/ and video/). Since v11: today's paste and tinning decisions (paste on its own machine, pre-tinned boards in two stages, 0.25mm SAC305 as the standard ball, stencil-free ball dispensing head replacing the ball stencil), the ball dispenser POC v1 (resin), the FR4 gear pocket disc drawing ball_ring_fr4_gear_v1 (OSSO BR-G1), the ball dispenser POC v2 with the BR-G1 disc and grip skirt (cad/ball_dispenser_poc_v2, drawing ball_dispenser_poc_v2), BR-G1 fab files (pcb/br_g1_v1: KiCad source, Gerber, NPTH Excellon, upload zip, fab notes), the design note on separate machines today and one machine later, and the regenerated TODO.md (learning order, new ball tinning track). The docs site now lists v11 and v12 and has a To-do page.

2026-10-21 12:04 PM ET — PCB: BR-G1 laser-cut STEP + DXF for quoting

Oct 21, 2026 · 12:04 PM ET · journal ↗

Laser-cut version of the BR-G1 FR4 gear disc in pcb/br_g1_v1/laser/: br_g1_laser.step, br_g1_laser.dxf, QUOTE_NOTES.md and the make_br_g1_laser.py generator. It uses the same parameters as the router fab files, but with a sharp ideal profile (no R0.5 root fillets or D-bore corner radii), 0.30 thick. Validation: one valid solid, also valid after re-import, volume 108.757 mm³, tip R12.000 / root R9.750 (bbox 23.99 x 23.85 x 0.30 because the tooth tips are chords off the axes), D-bore 3.00 / 2.50, and 16 round holes in the right positions (12x 0.30 R8, 1.0 R6 at 0°, 3x 0.80 R3). The DXF is in mm with 2025 lines, 1 arc and 16 circles. Quote notes ask for 10 and 25 pieces, FR4 first (polyimide or stainless later), and ±0.02 on the 0.30 holes.

2026-10-21 12:15 PM EDT — BR-G1 decision: FR4 PCB over laser-cut 304 stainless

Oct 21, 2026 · 12:15 PM ET · journal ↗

the designer compared the BR-G1 gear disc as a PCBWay laser-cut 304 stainless part with the fab-made 0.30mm FR4 PCB. The costs are very similar, but PCBWay lists laser cutting at ±0.1mm, which is too loose for the 0.30mm pockets, while a PCB's drilled unplated holes hold ±0.05mm with tighter hole positions. Decision: make BR-G1 as an FR4 PCB using pcb/br_g1_v1. The laser STEP and DXF in pcb/br_g1_v1/laser/ are kept as an alternate, for a precision etching or fiber-laser shop later.

2026-10-21 12:25 PM EDT — BR-G1 ordered from PCBWay

Oct 21, 2026 · 12:25 PM ET · journal ↗

2026-10-21 12:29 PM ET — DECISION (the designer): flux dispensing for tinning = syringe head on its own Neptune 4

Oct 21, 2026 · 12:29 PM ET · journal ↗

Flux for the tinning step is dispensed by a syringe applicator on its own Neptune 4 (bed-slinger). It uses the same common jig datum and pre-run calibration as the other machines. The flux is tacky gel flux pushed by a stepper-driven plunger (leadscrew or the E-stepper) through a 22-25ga blunt tip, with a suck-back retract after each dot to prevent stringing. Flux dots must be tacky enough to hold a 0.25mm ball in place. Backup: pin transfer (dip a pin in a thin flux film, then touch the pad). A brush or felt stripe was considered but not chosen. Not confirmed yet: whether the paste machine shares the same syringe head design. Concept drawing: drawings/osso_flux_syringe_head_v1.

2026-10-21 12:39 PM EDT — Decision: spray conformal finish after assembly

Oct 21, 2026 · 12:39 PM ET · journal ↗

Laser-cutting isolation lines through the mask and copper leaves the trace edges as bare copper (about 35µm tall for 1 oz copper). the designer decided to spray a conformal finish after assembly for confidence. The suggested coating is acrylic (for example MG Chemicals 419D), which seals the exposed edges and can still be reworked through. The specific product isn't chosen yet.

2026-10-21 12:48 PM ET — CONCEPT (the designer approved): OSSO Test Board (tester)

Oct 21, 2026 · 12:48 PM ET · journal ↗

The tester is itself an OSSO board. It lands on the board under test (DUT) through the same printed pogo interposer and the same jig datum as a real stack, so the interposer pads double as test pads and no board needs extra test points. the designer's reasoning: the tester uses the same pads, pins and datum, and it also verifies the interposer connection itself. One standard test controller covers every board, and a per-board script on the computer does the rest.

2026-10-21 12:59 PM EDT — Test board power: DC rail through corner posts via e-fuse

Oct 21, 2026 · 12:59 PM ET · journal ↗

the designer confirmed that the DC rail always runs through the corner posts and brass standoffs, the same as on the base board, with no separate rail. On the OSSO Test Board, the tester's corner posts are split into an input side and an output side. Supply power comes in, goes through the tester's current-limited e-fuse (switched and metered), and then goes out through the corner posts and standoffs to the board under test. This keeps the standard power path while still giving a current-limited first power-up. It resolves the open item on DUT supply rails and current limits in osso_test_board_v1 as to the path; the rail voltages and current limit values are still to be decided.

2026-10-21 1:00 PM EDT — Test board pins: standard interposer architecture

Oct 21, 2026 · 1:00 PM ET · journal ↗

the designer decided the OSSO Test Board uses the standard interposer architecture and the same pogo pin (Xinyangze YZD0029-20135-01), not a different or replaceable pin plate. Note: on a test interposer, all or more of the 40 sites may be populated, including sites the board under test uses only as test pads. This resolves the open item on the pin receptacle or pin plate part in osso_test_board_v1. Pin wear (rated 10k cycles) is handled by replacing pins or the printed interposer as needed.

2026-10-21 1:00 PM EDT — Test board orientation: tester under the board, quick clamp

Oct 21, 2026 · 1:00 PM ET · journal ↗

the designer decided the OSSO Test Board sits under the board under test, the way a base board would, and a quick clamp holds the stack (tester, interposer, board under test) together for compression. This resolves the open item on whether the tester sits over or under the board in osso_test_board_v1. The clamp design is not done yet; it should register on the same datum (tooling hole and slot) and compress the pogo pins to the 12.0 working gap.

2026-10-21 1:05 PM ET — DECISION (the designer): universal OSSO Test Board, hybrid matrix

Oct 21, 2026 · 1:05 PM ET · journal ↗

Pin assignments belong to each board under test and change from board to board. To keep the number of tester designs and copies small, the tester is universal: all 40 interposer sites get identical flexible channels, and the per-board test script assigns each site's role.

2026-10-21 1:08 PM ET — VERSION v13 snapped

Oct 21, 2026 · 1:08 PM ET · journal ↗

Milestone: the tester strategy is set, a universal OSSO Test Board. Frozen to versions/v13_2026-10-21 + OSSO_v13_2026-10-21.tar.gz (the project without versions/, video/, stray root tarballs and ._* files). Since v12: BR-G1 laser-cut STEP/DXF and quote notes; BR-G1 ordered from PCBWay (50 discs); the decision to spray a conformal finish after assembly; flux dispensing by a syringe head on its own Neptune 4, with concept drawing osso_flux_syringe_head_v1; the OSSO Test Board concept (osso_test_board_v1) and its decisions (DC rail through corner posts via e-fuse, standard interposer and pins, tester under the board under test with a quick clamp); the universal hybrid matrix with board ID first (osso_test_board_v2, refs/test_board_matrix_sizing.md); and TODO.md updates (flux head and test board tracks). The docs site now lists v13.

2026-10-21 14:06 EDT - Ball dispenser POC v3: three BR-G1 discs (fixed top/bottom, turning middle)

Oct 21, 2026 · journal ↗

2026-10-21 2:41 PM EDT — Ball dispenser POC v4: chute alignment fix + external BR-G1 drive gear (the designer's request)

Oct 21, 2026 · 2:41 PM ET · journal ↗

Current to-do list →

Drum-frame film stencil, laser alignment and v10 freeze

2026-10-20 1:13 PM ET — Drum-frame film stencil v2 modelled (changes approved by the designer Oct 20)

Oct 20, 2026 · 1:13 PM ET · journal ↗

cad/stencil_v2/ (v1 untouched): lower frame 196×196×17.5 (232 with ears), clamp ring 196×196×6, center platen 155.2×155.2×17.5, jig base 234×234×38, lift carrier 158×158×14, lift slider 224×116×17. Tensioning ridge on the frame clamp face (4 wide, 2.5 proud, R1.8 crest, 172 square) + matching 3.0 step in the ring (vat-style tension). 20× M3×12 ISO 10642 countersunk (4 corners + 4 per side, pitch 36.8 on a 184 square; Ø3.4 punch guide, 90° Ø6.9 countersink sunk 0.2) into Ruthex RX-M3x5.7 (Ø4.2 × 7.5). Vertical lift: carrier on 4× Ø6×30 guide posts, wedge-cam slider (pull knob 34 = up, 8 stroke, 18° ramps to dwell flats = hard stop), 4× M3×10 ISO 4026 set-screw feet for fine adjust; board on Ø3 (70,4) / Ø2 (70,136) pins on the carrier, pin tops 0.2 below board top; carrier rim flush = full backing. Frame stays on the same 2× Ø6×26 dowels for laser and print. Laser focus: film top 38.075 above table (+6.475 vs v4e board top), carrier lowered (board 8 below film). Jig underside pocketed. STEPs (+ assembly raised/lowered) re-imported valid, verify.py 61 checks 0 fails. Drawing drawings/stencil_frame_v2.png/.pdf. Est. print ~21h25 / ~1.32 kg (CLI). Supersedes an earlier aborted v2 attempt (no partial files were present).

2026-10-20 1:27 PM ET — Version freeze v10

Oct 20, 2026 · 1:27 PM ET · journal ↗

Frozen to versions/v10_2026-10-20 + OSSO_v10_2026-10-20.tar.gz. Since v9: drum-frame film stencil v1 and v2 (cad/stencil_v1, cad/stencil_v2, drawings/stencil_frame_v1., drawings/stencil_frame_v2.). v2 adds a tensioning ridge, 20× M3×12 countersunk screws into Ruthex M3 inserts, a wedge-slider lift that raises the board 8 mm to the film plane, and a 196 mm frame. Practice film ordered by the designer (Oct 20): ZXAKAOSI non-adhesive polyimide, 0.075 mm, 200×300 mm, 10-pack, to test the frame and film hold and to practice laser cuts before using the special-order roll.

2026-10-20 1:32 PM ET — Laser alignment test pattern v1

Oct 20, 2026 · 1:32 PM ET · journal ↗

cad/laser_align_v1/ (laser_align_v1.py → .svg/.dxf/_geom.json, README.md); drawing drawings/laser_align_v1.png/.pdf. For practice PI 0.075 film in stencil frame v2 on the jig, 150 lens; board coordinates, field centred on (70,70), extent −4…144. Layers ENGRAVE (job 1: 5 crosshair fiducials at the board corners + centre, X/Y tick rulers 10/5 mm with no baseline, vernier main scales, Ø3/Ø2 pin marks, +X/+Y arrows, triangle flag, "OSSO V1 / TOP"), ENGRAVE_B (job 2 after re-seating the frame: vernier slides 0.9 pitch, 0.1 mm/line → re-seat repeatability), CUT (job 3: 2 blocks × 3 rows (0402 0.5×0.6, 0603 0.8×0.9, SOIC 0.6×1.55) × 5 pass-count columns, 30 holes, 19.5 mm², ≥4.4 edge gap), GUIDE (off). Untested starting settings: engrave 15–25 %/1500–2500 mm/s/1 pass; cut 40–60 %/300–600 mm/s, 1–5 passes. README covers cutting, photographing and what to send back.

2026-10-20 1:39 PM ET — Laser alignment v0: centre-crosshair offset test

Oct 20, 2026 · 1:39 PM ET · journal ↗

cad/laser_align_v0_center/ (laser_align_v0_center.py → .svg/.dxf/_geom.json/_preview.png, README.md). This step comes before v1: it finds only the laser-to-jig offset, so that a field/table-pitch offset does not put power on the PETG frame. ENGRAVE only (no cuts, lowest visible power, focus 38.075): one crosshair at (70,70) (10 mm arms, 0.5 gap, Ø4 ring) plus 5 mm +X/+Y arrows. All within r = 12.2 mm, so a 60 mm offset still stays on the film inside the 156 window. Same page/field convention as v1 (150 page, centre = lens centre). Process: frame/red-dot preview first; afterwards measure the cross centre against the board centre (board raised under the film, or calipers from the Ø3 (70,4) / Ø2 (70,136) pins), or take a square photo with a ruler. the designer sends the photo or dX/dY back, and the correction is computed.

2026-10-20 1:41 PM ET — Version freeze v10 (re-snap)

Oct 20, 2026 · 1:41 PM ET · journal ↗

Re-frozen to versions/v10_2026-10-20 + OSSO_v10_2026-10-20.tar.gz (replaces the 1:27 PM v10 snapshot). Adds the laser alignment test pattern v1 (cad/laser_align_v1, drawings/laser_align_v1.*) and the centre-crosshair offset test v0 (cad/laser_align_v0_center), on top of drum-frame film stencil v1/v2.

Top v1i, card edge and variants A/B

2026-10-20 9:34 AM ET — Top board v1i (card-edge family, variants A/B)

Oct 20, 2026 · 9:34 AM ET · journal ↗

the designer approved this at 9:26 AM ET.

Variant C and v8 freeze

2026-10-20 9:43 AM ET — Top v1i Variant C (5 mm terminal strip) + v8 freeze

Oct 20, 2026 · 9:43 AM ET · journal ↗

Design notes (Oct 20)

2026-10-20 9:37 AM ET — Design note (the designer)

Oct 20, 2026 · 9:37 AM ET · journal ↗

Top v1i card-edge footprints: the 2×10 and 2×22 are both optional per build. Either, both, or neither may be populated depending on component mounting; suppressing either carries no penalty.

2026-10-20 10:00 AM ET — Design note (the designer)

Oct 20, 2026 · 10:00 AM ET · journal ↗

Card-edge connectors/cards may use a 3D-printed skeleton for standardized mounting to the enclosure (pairs with queued corner drills on card-edge boards).

2026-10-20 10:13 AM ET — Design note (the designer)

Oct 20, 2026 · 10:13 AM ET · journal ↗

Placement/routing code test harnesses: use known, tested PCBs with full designs as references; the harness attempts to replicate each as an OSSO stack.

Current design rules & decisions (most recent)

All decisions & rules →

Pending adjustments & future to-dos

Test harness notes

2026-10-20 10:16 AM ET — Test harness pin (the designer)

Oct 20, 2026 · 10:16 AM ET · journal ↗

Fan-favorite reference test: Commodore 64 motherboard replica (the designer's first computer). Starter harness candidates: Ben Eater 6502, RC2014 (Z80). Also considered: Apple II, ZX Spectrum (Harlequin). Repo links unverified.

2026-10-20 10:13 AM ET — Design note (the designer)

Oct 20, 2026 · 10:13 AM ET · journal ↗

Placement/routing code test harnesses: use known, tested PCBs with full designs as references; the harness attempts to replicate each as an OSSO stack.

Fan-favorite reference test: Commodore 64 motherboard replica.

Drawings in v18