OSSO

← v16 v18 →

v17: Integrated machine skeleton v1-v3b: custom 2020/2040 bed slinger, MGN12 + lead screws on all axes, inline UV laser on a motorized focus column, multi-row tray, enclosed with left door, under-bed electronics bay

Frozen Sun Oct 25, 2026, 2:40 PM ET · 1092 files · folder: versions/v17_2026-10-25/ · archive: OSSO_v17_2026-10-25.tar.gz

What changed

New in this snapshot: 18 drawings, 4 STEP files, 5 documents/media.

Key decisions

Drawings new in v17

STEP files (206)

Documents & media

Tools snapshot

Source: versions/v17_2026-10-25/refs/TOOLS.md

Tools used as of this version

OSSO tools inventory

Software, libraries, file formats, techniques and services actually used on OSSO, found from the scripts in cad/, drawings/, pcb/, fab/, laser-test/, site_build/, the installed environments (/workspace/.cadvenv, system packages) and JOURNAL.md. Versions are what is installed on the box as of 2026-10-23. Two box venvs exist: /workspace/.cadvenv (older) and /workspace/.cadenv (CadQuery 2.8.0 + pyvista + trimesh, used for the tool-drop v2d model). "Not installed now" means a past script used it but the current box env lacks it.

CAD generation (3D)

Tool Version Used for First used/Files
Python (venv /workspace/.cadvenv) 3.13.5 Runs every generator and verifier script Oct 14; all *.py
CadQuery 2.8.0 Parametric solids for jigs, boards, stencil frames, dispenser POCs; STEP/STL export (cq.exporters.export), STEP re-import (cq.importers.importStep) Oct 16, cad/jig_v4b/jig_v4b.py; all cad/*/make_*.py
OCP (cadquery-ocp, OpenCASCADE bindings) 7.9.3.1.1 Low-level B-rep work: BRepCheck_Analyzer validity, volume props, booleans cad/*/verify*.py, dispenser POC v3-v5
numpy 2.5.4 Geometry math (involute gear profiles, hole patterns, sweeps) most CAD/drawing scripts
shapely 2.2.0 2D outlines, morphological closing, unary_union for gear/disc profiles pcb/br_g1_v1/make_br_g1.py, laser profiles
scipy 1.18.1 Installed CadQuery dependency; numeric helpers venv
casadi / nlopt 3.8.1 / 2.11.0 CadQuery solver dependencies (assemblies/sketch constraints) venv
vtk 9.6.2 CadQuery visualization backend venv
pyvista (venv /workspace/.cadenv) 0.49.1 Offscreen preview renders of STL/STEP models (iso, close-up, section views) Oct 16-19, versions/v5_2026-10-19/cad/*/render.py; Oct 23, cad/tool_drop_mech_poc_v2d/render_preview.py
trimesh 5.1.1 (venv /workspace/.cadenv) STL watertight/extent checks cad/stencil_v1/verify.py

Fit check / interference method

Tool Version Used for First used/Files
CadQuery/OCC boolean intersect + Volume() 2.8.0 / 7.9.3 Pairwise intersection volume between parts re-imported from the exported STEP; 0 mm³ = no interference Oct 21, cad/ball_dispenser_poc_v3..v5
OCC BRepExtrema_DistShapeShape 7.9.3 Minimum clearance between non-touching parts at each sweep state (bbox prefilter first); an explicit list of intended contacts is excluded Oct 23, cad/tool_drop_mech_poc_v2d/
Mechanism torque/force sweep (technique) Moment arm sign and size, dead-center margin, deploy/release/hold margins at mu 0.2 / 0.3 / 1.5x seal friction, pass/fail gate in fit_check.json Oct 23, refs/tool_drop_*, cad/tool_drop_mech_poc_v2d/
Angular sweep (technique) Rotate moving parts in 2° steps (0-20°/0-30°), re-check intersection volume and minimum gap at each step (gear mesh backlash 0.035-0.037) POC v4/v5
Probe cylinders (technique) Thin cylinders along fill/exit axes intersected with exported disc STEPs to prove paths open or blocked; hole-axis alignment asserted to 0.000 POC v4/v5
Tolerance-case matrix (technique) All thickness combinations (e.g. 0.25/0.30 carrier, 0.711-0.813 cover) checked for pocket gap and overlap POC v3-v5
STEP re-import + validity (technique) Every exported STEP re-read, solids counted, isValid(); STLs watertight Oct 16 jig v4b onward

Drawings and 2D

Tool Version Used for First used/Files
matplotlib 3.11.2 All engineering drawings (plan, section, exploded) to PNG and multi-page PDF (PdfPages) Oct 15; drawings/*.py
ezdxf 1.4.5 DXF cut profiles (laser tests, alignment patterns, BR-G1 laser, BR-C1 covers) laser-test/gen.py, cad/laser_align_*, br_c1_v2.dxf
SVG (hand-written) (format) Laser test/alignment patterns for LightBurn laser-test/*.svg, cad/laser_align_*/*.svg
Pillow 12.3.0 (system) / 13.0.0 (venv) Site thumbnails, image compositing site_build/build_site.py
fontTools, kiwisolver, contourpy, pyparsing 4.67.0 / 1.5.1 / 1.4.0 / 3.3.3 matplotlib dependencies venv

PCB: KiCad, Gerber, drill, DRC

Tool Version Used for First used/Files
KiCad / kicad-cli 9.0.2 .kicad_pcb written by script, then kicad-cli exports Gerbers, Excellon drill, job file, and runs DRC (drc.rpt, 0 errors) Oct 21, pcb/br_g1_v1/make_br_g1.py, pcb/br_g2_v1/
Hand-written RS-274X X2 + Excellon (technique) First Gerber set before KiCad was on the box Oct 16, fab/gen_v3b_gerbers.py
gerbv 2.10.0 Render Gerbers back to PNG for visual check Oct 16, fab/render/, pcb/br_g1_v1/preview_gerbv.png
Gerber/Excellon re-parse verifier (technique) Re-read output files, count teeth/holes, compare to geometry report pcb/br_g1_v1/verify_br_g1.py, verify_report.json

3D printing and laser

Tool Version Used for First used/Files
Bambu Studio (AppImage, headless slice) 02.08.02.61 (box); the designer 02.08.02.60 3MF projects for P1S, headless slice estimates Oct 16, cad/jig_v4*/make_3mf.py, /workspace/tools/bambu
LightBurn the designer's copy UV galvo laser jobs from SVG/DXF Oct 16, laser-test/settings.md, refs/laser/
Klipper (Elegoo Neptune 4) stock Planned PnP / flux syringe motion Oct 21, journal

File formats

Format Tool Used for First used/Files
STEP (.step) CadQuery/OCC Parts and assemblies for the designer's CAD and vendors Oct 16, cad/*/*.step
STL CadQuery Print meshes Oct 16, cad/jig_v4b/*.stl
3MF make_3mf.py Bambu Studio projects Oct 16, cad/jig_v4b/*.3mf
DXF / SVG ezdxf / script Laser and SendCutSend cut files Oct 15, laser-test/, br_c1_v2.dxf
Gerber X2, Excellon, .gbrjob, zip kicad-cli / script PCB fab uploads Oct 16, fab/, pcb/*/gerbers
PNG / PDF matplotlib Drawings drawings/
JSON / Markdown Python Geometry/verify reports, notes, journal throughout
MP4 (video generation) Vision reels Oct 15, video/

PDF tools

Tool Version Used for First used/Files
matplotlib PdfPages 3.11.2 Multi-page drawing PDFs, tech sheets drawings/*.pdf, refs/laser/laser_tech_sheet.pdf
poppler-utils (pdftoppm, pdftotext, pdfunite) 25.03.0 Rasterize/read PDFs (datasheets, checks), merge pages refs/ datasheets

Docs site

Tool Version Used for First used/Files
build_site.py (custom static generator) in repo Builds site/ from JOURNAL.md, TODO.md, PENDING, refs, versions Oct 20, site_build/build_site.py
Python-Markdown (extra, sane_lists) 3.11.1 (system) Markdown to HTML build_site.py
check_links.py in repo Verifies every relative link and anchor site_build/check_links.py

Versions, sync and backup

Tool Version Used for First used/Files
GNU tar + gzip 1.35 Version snapshots versions/OSSO_vN_DATE.tar.gz; sync bundles Oct 15, versions/
sha256sum / split (coreutils) 9.7 Chunked tar transfer to the designer's Macs with checksum verification (hourly sync) Oct 21 restore from work Mac copy
Google Drive mirror (connector) Daily mirror of the project, done by another assistant daily
ffmpeg 7.1.5 Video/media handling video/

Research and fab services

Service Version Used for First used/Files
Web research (search + fetch) live Vendor specs and prices throughout
PCBWay web Blank v3b (5 pcs ENIG), 5 OSSO boards, 50 BR-G1 discs; laser-cut tolerance check Oct 16, fab/, pcb/br_g1_v1/README_FAB.md
SendCutSend (site + spec API scs-specs-platform) web 304 SS .030" limits; BR-C1 v2 covers ordered; Oct 23: 1008 CRS .074" armature plate for the tool-drop EPM latch (DXF) Oct 21, cad/ball_dispenser_poc_v5/br_c1/QUOTE_NOTES.md
Chip Quik web SAC305 ball/paste pricing for per-board solder cost Oct 21, journal
LCSC web Pogo pin YZD0029 datasheet drawing Oct 16, cad/pogo_YZD0029/
eBay (NV Liquidation) web 2x Neptune 4 parts units Oct 21, journal
Literature (DOI) web EPTC 2012 tacky flux ball attach; IRJMETS flip chip flux Oct 21, journal

AI assistant

Tool Version Used for First used/Files
OSSO assistant in the Grok Bot app app All scripting, CAD, drawings, fab files, site and journal, with background helper agents for parallel tasks Oct 14 onward

Journal entries in this version

2026-10-25 1:13 PM EDT: Integrated machine phase begins

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

the designer handed design leadership to OSSO. The goal is a full-machine STEP assembly with assembly directions, covering components and assembly only (no software, firmware or final PCBs). OSSO leads a team of engineering roles, sends every choice to the designer as multiple choice with an Other option, marks blocking choices as IMPORTANT, snaps a version each work day at a point of notable progress, and puts feasibility experiments in TODO. Step 1 is an inventory of the subsystems, the gaps, a proposed team and an iteration plan.

2026-10-25 1:28 PM EDT: Five skeleton decisions (the designer)

Oct 25, 2026 · 1:28 PM ET · journal ↗
  1. Frame: custom 2020/2040 extrusion frame with a bed-slinger layout (the head moves in X and Z, the bed carries Y).
  2. Head: 5 stations in one row (~118 mm).
  3. Laser: overhead in front of the gantry, 150 mm lens.
  4. Enclosure: fully enclosed, interlocked front door.
  5. Electronics: bay under the bed, external compressor. Team: specialist roles run in the background under OSSO. Next is the skeleton assembly (overall size, zero point, travel budget, placeholder blocks).

2026-10-25 1:38 PM EDT: Skeleton v1 built; laser decision

Oct 25, 2026 · 1:38 PM ET · journal ↗

Skeleton v1 (integration/skeleton_v1.*): the frame is 540W x 720D x 800H. Travel is Y 345, X 290, Z 100, tray 232. Nothing collides with the tray parked. Interlocks: head Z high while the tray is extended, and no lasing unless the tray is parked. TODO items 23-27 were added. the designer: the laser source connects directly to the galvo as one unit, like a typical engraving machine. There's no extra fiber or mirrors, and the chiller is external.

2026-10-25 1:39 PM EDT: Skeleton v1 answers (the designer)

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

2026-10-25 1:58 PM EDT: Skeleton v2 done; laser architecture clarified

Oct 25, 2026 · 1:58 PM ET · journal ↗

Skeleton v2: the frame is 700W x 720D x 680H, the needle stations use a vertical retract slide (46 mm drop), and the focus mount travels ±40 mm. Interlock rules are v2. TODO items 28-31 were added. the designer sent reference photos (integration/refs/): a typical UV engraver, with the source and galvo as one inline unit on an arm that rides a Z column with a handwheel. The separate box is the chiller, and it's external. Skeleton v3 will compare the arm running along X with the arm running along Y.

2026-10-25 2:19 PM EDT: Skeleton v3 built

Oct 25, 2026 · 2:19 PM ET · journal ↗

The inline laser unit runs along +X on a front 2040 focus column with a T8x2 screw and handwheel, WD 230±40. The Y-arm option collided with the gantry in every case (it would need a periscope, which is ruled out). The frame is 700x720x680, with a Ø100 top fume port. New interlock rule 6: lasing only while the fume extractor runs. TODO items 32-36 were added. v3 missed the mid-run decisions (15 mm TH, lead screws on all axes, multi-row tray, laser PSU in the bay, left door), so v3b applies them.

2026-10-25 2:39 PM EDT: Skeleton v3b built

Oct 25, 2026 · 2:39 PM ET · journal ↗

The frame is 700x720x660. All axes are MGN12H with T8 anti-backlash screws, about ±0.02 repeatability, and the Y screw is supported at both ends. The focus is a NEMA17 on T8x2, with a braced column. The tray has 8 rows of 8 mm strips (~360 parts) and backs out to 442. The bay is 620x580x125 and holds the laser driver, PSUs, controller and drivers. The door is hinged on the left. The laser interlock now requires the tray at 442 or further back. TODO items 37-45 were added.

2026-10-25 2:40 PM EDT

Oct 25, 2026 · 2:40 PM ET · journal ↗

Snap v17