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)
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)
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)
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)
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)
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
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
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
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
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
the designer ordered 50 BR-G1 FR4 gear discs from PCBWay for about [amount removed] shipped (only a few dollars more than 5). The order uses br_g1_v1_gerbers.zip with these settings: single pieces 24 × 23.8mm, 1 layer with copper, solder mask and silkscreen all set to none, finished copper bare board (0 oz), FR-4, 0.3mm thick (finished 0.25–0.3mm), minimum hole 0.3mm, product number removed, and the bare FR4 / NPTH-only / critical 0.30mm hole remark. PCBWay showed a shipment date of 2026-10-25 by DHL. The order spec learned: for a bare board, pick a 1-layer board with copper, mask and silkscreen set to none.
2026-10-21 12:29 PM ET — DECISION (the designer): flux dispensing for tinning = syringe head on its own Neptune 4
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
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)
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.
- Tester hardware: a standard MCU with USB to the computer; one channel per interposer pin (analog switch/mux plus ADC, or GPIO with a series resistor) for shorts, continuity and voltage; a current-limited DUT supply with an e-fuse for first power-up; status LEDs.
- Test script order: interposer contact check, then shorts, continuity, power-up current, and finally functional tests for that board's interposer signals.
- Pogo pins wear (10k cycles), so the tester uses replaceable pins (a pin plate or socketed receptacles).
- Interposer spec used (from the files): 40 sites, 4 x 10 at 10.16 x 5.08 pitch, centered on (70,70), with Ø3.0 ENIG pads in Ø4.0 isolation (drawings/top_v1i_geom.json). Pin YZD0029-20135-01 (cad/pogo_YZD0029/DIMENSIONS.md). 12.0 gap, 13.6 pitch. Datum: Ø3.0 tooling hole at (70,4), slot at x=70 y 135-137, fiducials A/B/C/C'. Power corners at (5,5), (135,5), (5,135), (135,135).
- TBD: interposer pinout, ground pin count and placement, channel topology and parts, MCU, supply rails and limits, receptacle part, tester over vs. under the DUT.
Concept drawing: drawings/osso_test_board_v1.py/.png/.pdf.
2026-10-21 12:59 PM EDT — Test board power: DC rail through corner posts via e-fuse
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
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
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
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.
- Chosen architecture (hybrid): an analog switch matrix connects any site to shared buses (GND, current source and sense, ADC, drive/GPIO) for shorts, continuity and voltage. A subset of sites can also be switched to fast MCU pins for functional signals (I2C/SPI/UART), chosen by the script.
- Board ID: each board under test carries an ID (EEPROM or an ID resistor on a known site). It is read first, and the matching pin map and tests are loaded.
- Earlier decisions today, already journaled: the DC rail runs through the corner posts via the tester e-fuse (12:59 PM); the standard interposer and pins, with all or more sites populated (1:00 PM); the tester sits under the board under test with a quick clamp (1:00 PM).
2026-10-21 1:08 PM ET — VERSION v13 snapped
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)
- New
cad/ball_dispenser_poc_v3/ + drawing drawings/ball_dispenser_poc_v3.png/.pdf. Three identical BR-G1 FR4 discs: top and bottom are fixed smooth contact planes, keyed by their gear teeth in tooth-shaped pockets (base and hopper underside); only the middle disc turns.
- Clocking (the designer confirmed): top disc at 0°, bottom disc +15° (half the 30° pocket pitch), so no straight-through path. Hopper floor exposes one top hole (fill, 180°); base has one exit under the bottom hole at 165°. Turn the middle disc 15° CW: fill -> drop; one ball per 30°. Other 11 bottom holes are blind over solid floor (stay empty; optional kapton seal).
- the designer simplified the drive (2:02 PM): no D-ring hub. The middle disc is spun by finger on its teeth and centered loosely on a plain stationary 1.90 dia round post (part of the base) through all three D-bores (0.05 radial at the flat). The v2 hub D-boss corner fix is therefore moot in v3 (no D drive).
- Kapton spacer ring under the hopper flange sets the running gap: shim = sum(t) + 0.05 - 0.80 (0.15 at nominal 0.30 discs). Measure the discs before cutting the shim.
- Fit check: no interference at rest or in a 0-20° sweep; gaps 0.05 middle/top and middle/base; all 8 disc thickness cases (0.25/0.30) give a 0.30-0.35 pocket (ball fits, second ball can't), gap < ball.
- Risks: finger window exposes fixed-disc teeth too (locked by keyed teeth elsewhere; can file back); 1.90 resin post straightness; friction between FR4 faces with no lube; kapton thickness steps.
2026-10-21 2:41 PM EDT — Ball dispenser POC v4: chute alignment fix + external BR-G1 drive gear (the designer's request)
- New
cad/ball_dispenser_poc_v4/ (script make_ball_dispenser_poc_v4.py; v3 left as is) + drawing drawings/ball_dispenser_poc_v4.png/.pdf.
- Bug (the designer's section of the v3 assembly STEP: the drop chute looked like it sat on a pin-like feature). Measured from the exported STEP (the designer's Downloads copy and the box re-export): chute axis (-7.7274, 2.0706) = R8 @165°, and the bottom-disc pocket was at the same XY (0.000 error). But the bottom disc is clocked +15°, so its R3 Ø0.80 pin hole (150°+15°) also sat on the 165° radial, at (-2.8978, 0.7765). It is the same Ø0.80 as the chute relief bore, and at rest the middle-disc web caps the Ø0.30 pocket. So any section through the chute showed it lined up with a pin hole. Root cause: the exit station was picked on a radial shared with a non-pocket hole. Fix: fill moved to 210° (top hole) and exit to 195° (bottom hole), which is 30° from every bottom pin/home hole. v4 asserts alignment from the exported geometry: hole axes for every disc, and probe cylinders along the fill and chute axes through the exported disc STEPs.
- Drive gear (the designer): a 4th BR-G1 (same part, unmodified) meshes with the middle disc at +X, CD 22.10 (22.00 + 0.10 backlash for the ±0.1-0.2 routing tolerance), in the middle plane. It rides on a printed D-axle: pivot pin, 16 dia lower flange, and a 2.90 D-shaft with R0.55 corners (0.05/side in the gear D-bore). A printed 16 dia top flange washer sits on top, and an 18 dia knurled knob sits above the hopper lobe. Base and hopper grew a closed lobe (overall 53.1 x 31 x 41.3) with a 3rd M2 screw. The finger window is gone; only the knob is exposed.
- Fixed-disc teeth: file 3 teeth flush to root on each fixed disc (top 0/16.4/343.6°, bottom 15/342.3/358.6° as assembled), leaving 19 keyed teeth each. Unfiled, a fixed disc that drifted into the drive plane would overlap the drive tip circle by 3.1 mm3, and the drive would lock. Filed, the gap is 0.52 even in the drive plane.
- Fit check: 0 interference at rest. Mesh sweep 0-30° (middle CW, drive CCW, 2° steps): 0 mm3, tooth gap 0.035-0.037. Drive parts are clear of the fixed parts at all angles. All 8 thickness cases (0.25/0.30) work: pocket 0.30-0.35, drive/middle face overlap ≥ 0.20.
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)
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
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
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
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)
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)
the designer approved this at 9:26 AM ET.
- PENDING applied:
- 8:30 lower-centre block becomes SMT-4: a NO-TH pour at x 51.0–89.0, y 12.0–44.14, merged with SMT-2B. 144 grid holes removed; 884 remain (v1h had 1028). Clearances: 0.75 to the strip lands, 0.42 to the kept grid lands, 1.5 to the pogo pads.
- 8:18 via-in-pad: superseded/N/A, because the top companion lap pads are gone. It may still apply to the base v3b companion laps.
- Future to-dos (wave pot, reflow, pick-and-place): not touched.
- Removed: the v1h window (main opening, centre tab, wings), 32 lap pads, 4 M2 anchors and the companion outlines.
- SMT-5 card-edge field: that area is now a NO-TH pour (x 25.5–114.5, y 94.5–140). It is SMT, not grid, because:
- The grid already stopped at y 92.86 under the old companion.
- The neighbours (SMT-2T, SMT-3 L/R and the fid no-grid zones) are all SMT.
- The 3.96-pitch connector rows and mounting holes cannot share the 2.54 lattice.
- Fiducials: not moved.
- Pin-1 silk void: moved +6.5 to y 127.5–133.5, because the CE-B ears overlapped it.
- CE-A: EDAC 305-020-521-202 (2x10) centred at (70,106).
- CE-B: EDAC 305-044-521-202 (2x22, verified on EDAC's site, drawing in refs/card_edge_396) centred at (70,120.5).
- Footprints: both have pin 1 at +x; PTH Ø1.3/Ø2.4 and mounting NPTH Ø3.3. CE-B ears reach into the fid no-grid zones; the mounting hole is 4.92 from the fid keep-out and the body 1.64.
- Shared pin map:
- Positions 1–10 are identical on both connectors: +V 1/A 2/B; GND 3/C 4/D 5/E; SENSE 6/F; ID 7/G; PG/RSV 8/H; RSV 9/J; KEY 10/K.
- 2x22 only: GND 11, 16, 21, 22; IO0–7 on the number row and IO8–15 on the letter row at 12–15 and 17–20.
- Lettering reconciled to EDAC (G is included; I and O are skipped). The PSU card geometry is unchanged.
- Variant A: card_edge_psu_v1 (IRM-15-5), rotated 180° so the module sits over SMT-5. The mains zone is 19.9 above board copper (rule ≥6).
- Variant B: blank card 100x58x1.57 with a 90.75 tab, 42 fingers and a key slot at position 10.
- Files:
- drawings: top_v1i_geom.py → top_v1i_geom.json; top_v1i.py → osso_top_v1i.png/.pdf.
- cad/top_v1i: make_top_v1i.py, VERIFY.txt, OSSO_top_v1i_board.step, OSSO_top_v1i_variantA_2x10_psu.step, OSSO_top_v1i_variantB_2x22_blank.step, OSSO_blank_card_2x22_v1.step. All re-import as valid.
- Open items:
- Body height: 11.68 on the part drawing vs 11.94 in the guide.
- Price/stock not verified.
- Finger dimensions are design values.
- The board is no longer symmetric about the connectors for bottom use.
Variant C and v8 freeze
2026-10-20 9:43 AM ET — Top v1i Variant C (5 mm terminal strip) + v8 freeze
- Variant C: the top v1i board with the 22-hole 5.0 mm strip at y=10 populated. The strip is two groups of 11 (x 15–65 and 75–125, with no hole at x=70). Each side gets 4× Phoenix Contact MKDS 1,5/ 2 (1715022) and 1× MKDS 1,5/ 3 (1715035), aligned with the side latch. That makes 10 blocks and 22 positions in total.
- Part data: 5.0 mm pitch, 9.8 mm long, 13.8 mm installed height, 0.9×0.9×3.5 pins, Ø1.3 hole (this matches the strip), M3 screws, 17.5 A / 400 V.
- Wire entry faces the bottom edge.
- CE-A 2×10 and CE-B 2×22 are NO-POP: the footprints stay, with no connector or card.
- Files:
- cad/top_v1i: make_variantC.py and OSSO_top_v1i_variantC_5mm_terminal.step. The STEP re-imports as valid (see VERIFY.txt).
- drawings/osso_top_v1i: has a Var C callout.
- Model note: this is a simplified envelope model. The pin row is assumed to be at the centre of the body depth.
- Freeze v8: versions/v8_2026-10-20 and OSSO_v8_2026-10-20.tar.gz.
- Contents: top v1i with the queued adjustments applied, the two-size card edge with the shared pin map, and Variants A, B and C.
- Both card-edge footprints are optional per build and can be suppressed without penalty.
- The 9:41 AM queued item (extend the three middle via columns to the strip) is NOT applied. It is carried as-is in PENDING_ADJUSTMENTS.md.
Design notes (Oct 20)
2026-10-20 9:37 AM ET — Design note (the designer)
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)
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)
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
- [x] ~~2026-10-20 8:18 AM ET — Companion lap pads: via-in-pad (plated ~Ø0.4–0.6) through each companion lap pad, small exposed ENIG ring on companion top for visual solder-flow check; add extra paste to offset wicking. Also vents flux/gas and allows iron touch-up through the via.~~ SUPERSEDED / N/A for top v1i (2026-10-20): the top-board companion lap pads were removed in v1i (card-edge connectors instead). Not applied anywhere. Still potentially applicable to the base v3b companion lap pads; carry forward if the base companions are kept.
- [x] 2026-10-20 8:30 AM ET — Top board (v1h): remove the TH grid holes in the lower-centre block, i.e. the two grid columns-groups either side of the lower spine corridor (SMT-2B), from just above the 5mm strip up to about the bottom of the pogo-block region, roughly x 50–90 (the designer red box, see refs/adjustments/2026-10-20_top_v1h_lower_center_SMT.png). Convert to NO-TH SMT zone (solid pour). Exact bounds to confirm in batch. DONE in top v1i (2026-10-20): SMT-4 NO-TH pour x 51.0–89.0, y 12.0–44.14 (merges SMT-2B); 144 grid holes removed (cols x 52.22–64.92 and 75.08–87.78, rows y 14.12–42.06). See drawings/osso_top_v1i.png note 11.
- [ ] 2026-10-20 8:34 AM ET — FUTURE TO-DO (not current batch): DIY mini wave/dip solder pot + masking carrier for the blanks. Concept v1 being drafted for reference only.
- [ ] 2026-10-20 8:35 AM ET — FUTURE TO-DO: consider a specialized reflow tool optimized for the standardized 140x140 blanks (and companions), e.g. sized hot plate/oven fixture.
-
[ ] 2026-10-20 8:39 AM ET — FUTURE TO-DO: consider a specialized pick-and-place designed for the spec-to-build concept (one-offs, low volume/high mix) and sized to the standardized 140x140 boards and companions.
-
[ ] (queued 2026-10-20 9:41 AM ET, the designer) Top board: extend the three via columns in the middle of the board (lower spine) down to the 5mm terminal strip. Not applied in v1i/v8; do in next batch.
-
[ ] (queued 2026-10-20 9:44 AM ET, the designer) Blanks: pre-cleared annulus around each TH pad with 3–4 pre-made copper bridges to the pour. Isolating a pad = laser cuts the bridges only; grounded pads keep bridges as thermal relief. Goal: less etching and fewer etching errors. Consider for next version; not applied.
-
[ ] (queued 2026-10-20 9:58 AM ET, the designer) Card-edge companion boards (2×10, 2×22, all future): add corner mounting drills for mechanical stabilization to any enclosure designed. Future iterations; not applied.
-
[ ] (queued 2026-10-20 12:29 PM ET, the designer) Design the drum-frame stencil holder (PETG, inner/outer ring tensioning, pin registration to the board jig datum, covers the 140 mm board + margin). Plus a laser test: polyimide cut power/speed sweep.
-
Stencil v2 drawing/README: change the sequence to cut the film with no board, then insert the PCB and lift (decided Oct 20, 2026). Update the note that says 'cut with the carrier lowered' with the board in place.
Test harness notes
2026-10-20 10:16 AM ET — Test harness pin (the designer)
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)
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