← Oct 24 Oct 26 →
Journal: Sunday, Oct 25, 2026
- 2026-10-25 7:54 AM EDT — PnP storage: sliding drawer over the bed
- 2026-10-25 7:56 AM EDT — Correction: sliding drawer is an alternative to the matrix
- 2026-10-25 7:58 AM EDT — Sliding drawer: whole tray, 2020 extrusion
- 2026-10-25 7:59 AM EDT — Sliding drawer: paired rails, loading from the bed
- 2026-10-25 8:00 AM EDT — Sliding drawer: controlled motion
- 2026-10-25 8:01 AM EDT — Speed split: gentle slide, fast needle
- 2026-10-25 8:15 AM EDT — Design rule: minimal tray movement
- 2026-10-25 8:16 AM EDT — Motion planning by AI rule set
- 2026-10-25 8:16 AM EDT — Safety: firmware hard interlocks under the planner
- 2026-10-25 8:18 AM EDT — Drawing: part storage v2 (cantilevered tray slide); matrix archived
- 2026-10-25 8:33 AM EDT — Tray rails supported front and back (no cantilever)
- 2026-10-25 8:33 AM EDT — Front rail support clearance requirement
- 2026-10-25 11:14 AM EDT — Design note: companion boards as snap-outs inside the 140x140 board
- 2026-10-25 11:31 AM EDT — Companion snap-outs: any shape
- 2026-10-25 11:36 AM EDT — Drawing: 140 board with snap-out companions v1
- 2026-10-25 11:48 AM EDT — Snap-out companion panel v2
- 2026-10-25 11:50 AM EDT — Rule: all boards share the same frame fiducials
- 2026-10-25 11:54 AM EDT — Drawing: snap-out edge-card panels v1
- 2026-10-25 11:58 AM EDT — Confirmed: corner drills not needed on card panels
- 2026-10-25 11:59 AM EDT — Rule: hold all boards the same way
- 2026-10-25 1:13 PM EDT: Integrated machine phase begins
- 2026-10-25 1:28 PM EDT: Five skeleton decisions (the designer)
- 2026-10-25 1:38 PM EDT: Skeleton v1 built; laser decision
- 2026-10-25 1:39 PM EDT: Skeleton v1 answers (the designer)
- 2026-10-25 1:58 PM EDT: Skeleton v2 done; laser architecture clarified
- 2026-10-25 2:19 PM EDT: Skeleton v3 built
- 2026-10-25 2:39 PM EDT: Skeleton v3b built
- 2026-10-25 2:40 PM EDT
- 2026-10-25 2:44 PM EDT: Real laser source measured
- 2026-10-25 3:08 PM EDT: Skeleton v3c built
- 2026-10-25 7:05 PM EDT: the designer's 10/25 decisions applied; Laser & Optics mount v1 built
- 2026-10-25 (cont.)
- 2026-10-25 8:27 PM EDT
- 2026-10-25 8:50 PM EDT: Component cost total (private)
2026-10-25 7:54 AM EDT — PnP storage: sliding drawer over the bed
the designer: keep the matrix, but the hook sequence (head bump, bed pull, push home) is too many operations, slow and fragile. New direction: a sliding drawer that travels over the bed to bring parts into the head's reach, then pulls back out of the way. The bed hook and head hook approach is shelved as the primary method. Open questions: what drives the slide (own motor or bed-coupled), how the slide clears the bed and needles in Z, how strips move from matrix to slide, and the park position.
2026-10-25 7:56 AM EDT — Correction: sliding drawer is an alternative to the matrix
the designer clarified: the sliding drawer is an alternative design to the matrix, not an add-on. The matrix version is kept as an option. The drawer is cantilevered over the bed from the back frame and is not attached to the bed, for stability.
2026-10-25 7:58 AM EDT — Sliding drawer: whole tray, 2020 extrusion
the designer: the cantilevered slide carries a whole tray, not one strip. 2020 aluminum extrusion serves as both the structure and the rail (V-wheel or printed carriage in the slot). Open items: number of extrusions (one or a parallel pair, to resist twist from an off-center tray), reach versus tip sag, slide drive, Z clearance over TH bodies.
2026-10-25 7:59 AM EDT — Sliding drawer: paired rails, loading from the bed
the designer chose a parallel pair of 2020 extrusions, tied at the tip, for the cantilevered slide. Loading: strips are pulled off the bed (strips staged on the bed are picked off into the slide's tray). Exact handoff mechanics to be confirmed.
2026-10-25 8:00 AM EDT — Sliding drawer: controlled motion
the designer: the slide motor's kinematics control acceleration so parts aren't jostled. Plan: its own stepper with an S-curve (jerk-limited) profile, tuned so the lightest part (0402) stays in its nest. This also cuts tip ringing on the cantilever, so the settle time before a pick is shorter. Loading handoff (strips pulled one by one vs whole tray) still awaiting the designer's answer.
2026-10-25 8:01 AM EDT — Speed split: gentle slide, fast needle
the designer: quick needle movements are possible, so the sliding-drawer approach should be faster overall than the matrix hook sequence. The slide makes one gentle, jerk-limited move in and out per tray, and the needle makes the many fast, short pick-and-place moves. Bed jerk-limiting (placed parts before reflow) was raised as a question, not yet decided.
2026-10-25 8:15 AM EDT — Design rule: minimal tray movement
the designer: the tray moves into position without interfering with bed operations, and tray movement is kept to the minimum needed to reach parts. Implication: the slide indexes to the strip that's needed (a partial extension), not full travel every time, and parks clear of the bed whenever the bed is working.
2026-10-25 8:16 AM EDT — Motion planning by AI rule set
the designer: the coordination of tray, bed, and needle is a complex ballet, but AI will handle the rule set. The rules so far: jerk-limited moves for loose parts, the tray never interferes with the bed, minimal tray movement, fast needle moves, picks grouped by strip, and keepouts around TH bodies. The planner sequences the moves within those constraints.
2026-10-25 8:16 AM EDT — Safety: firmware hard interlocks under the planner
the designer approved: hard limits in firmware sit beneath the AI planner, for example a check that the tray is parked before the bed moves under it, so a planning error can't cause a collision between the tray, bed, and needle.
2026-10-25 8:18 AM EDT — Drawing: part storage v2 (cantilevered tray slide); matrix archived
the designer: "This is better." Drew drawings/osso_part_storage_v2 (.py/.png/.pdf): container hierarchy, plan view with paired 2020 rails cantilevered from the back frame and the tray on a slide (extended and parked), YZ section parked vs extended, callouts 1-17, notes table, and title block rev v2. The matrix + hook concept v1 was moved to drawings/archive/ and marked not active. No sync yet, per the designer.
2026-10-25 8:33 AM EDT — Tray rails supported front and back (no cantilever)
the designer: for the next drawing revision, the parts tray rails (paired 2020) connect to the frame at both front and back for stability; no cantilever needed. This removes the tip sag and ringing concerns. Check for the next rev: the front support must clear the bed's Y travel and the operator access.
2026-10-25 8:33 AM EDT — Front rail support clearance requirement
the designer approved: the front support of the tray rails must sit above the bed's full Y travel and the tallest TH bodies, so it doesn't block the bed or operator access for loading boards. Apply in storage drawing v3.
2026-10-25 11:14 AM EDT — Design note: companion boards as snap-outs inside the 140x140 board
the designer: the current 140x140 middle and top boards are just the start. Next version: the same board, with companion boards on its interior as a snap-out frame. Same alignment marks and frame drills. No interposer. For now the template drills and cuts with snap-outs (tabs). Later, when a higher-powered 355 nm laser is available, the laser can drill and cut the companions out.
2026-10-25 11:31 AM EDT — Companion snap-outs: any shape
the designer: in the future, companion boards can be any shape, as long as they fit within the 140x140 frame.
2026-10-25 11:36 AM EDT — Drawing: 140 board with snap-out companions v1
Drew drawings/osso_snapout_companion_v1 (.py/.png/.pdf): the 140x140 frame with the unchanged datum (tooling hole D3.0 at (70,4), slot x70 y135-137, fiducials A/B/C/C' with keep-outs, side slots, power corners, from top_v1i_geom.json), three EXAMPLE interior companions (two rectangles plus one non-rectangular to show "any shape"), routed gaps, mouse-bite tabs, a tab detail, callouts 1-11, notes, and a title block. No interposer. Open: companion count and outlines, gap width, tab count and hole size and pitch.
2026-10-25 11:48 AM EDT — Snap-out companion panel v2
the designer: the panel outline matches the middle board (base v3b, 140x140 R4) with no cutouts; maximize the count of the 45.5x22 companions the middle board needs; consider moving the alignment marks on all boards to the outer frame. Drew drawings/osso_snapout_companion_v2: 12 companions (2 landscape in a bottom row, plus 10 portrait in a 5x2 grid), a 2.0 routed gap, mouse-bite tabs (some between neighboring companions), 8 mm top/bottom rails and 5 mm side rails. Tooling hole (70,4) and slot (70,136) unchanged; fiducials moved to the frame at A (22,4), B (118,4), C (118,136), C' (22,136); power corners kept clear of companions (D13 keep-out); about a 20 mm spare band at the top. The proposal to move the marks to the frame on all boards awaits the designer's OK.
2026-10-25 11:50 AM EDT — Rule: all boards share the same frame fiducials
the designer approved: every OSSO board (middle, top, test, companion panels) uses the same fiducials on the outer frame: A (22,4), B (118,4), C (118,136), C' (22,136), with the tooling hole (70,4) and slot (70,136) unchanged. The jigs and camera fiducial positions need updating to match.
2026-10-25 11:54 AM EDT — Drawing: snap-out edge-card panels v1
Drew drawings/osso_snapout_edgecard_v1 (.py/.png/.pdf), with the same frame, outline, and shared fiducials as companion panel v2. Card A 64x58 (EDAC 305-020, 2x10): 4 per panel (2x2). Card B 100x58 (EDAC 305-044, 2x22): 2 per panel, with about 15 mm spare at the sides. Hard-gold fingers face outward onto routed gaps, never tabs. Side rails narrowed to 3 mm. Power corners dropped on the card panels (they block the 4-up A layout and the cards don't use them): needs the designer's confirmation. Fab detail to confirm: gold plating bus and bevel with the snap-out frame.
2026-10-25 11:58 AM EDT — Confirmed: corner drills not needed on card panels
the designer: as long as the jig can hold these boards, the corner (power) drills aren't essential. The card panels drop the M3 corners; the jig registers on the tooling hole (70,4), slot (70,136), and the frame fiducials.
2026-10-25 11:59 AM EDT — Rule: hold all boards the same way
the designer: hold all boards the same way to reduce jig types. Proposed common hold: dowels in the tooling hole (70,4) and slot (70,136), clamping on the 8 mm top/bottom frame rails clear of the fiducial keep-outs, with no dependence on the corner drills. Applies to the middle, top, test, companion, and card panels.
2026-10-25 1:13 PM EDT: Integrated machine phase begins
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)
- Frame: custom 2020/2040 extrusion frame with a bed-slinger layout (the head moves in X and Z, the bed carries Y).
- Head: 5 stations in one row (~118 mm).
- Laser: overhead in front of the gantry, 150 mm lens.
- Enclosure: fully enclosed, interlocked front door.
- 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
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)
- Needles: redesign the arm for a shorter folded reach.
- Tray pick: the tray moves in, the head picks, the tray backs out ~30 mm, then the head places.
- Laser working distance: build a ±40 mm adjustable mount now and measure later.
Next: skeleton v2.
2026-10-25 1:58 PM EDT: Skeleton v2 done; laser architecture clarified
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.
- 1:58 PM: the designer: the laser's power and controls go in the electronics bay under the bed with all the other power and controls. Only the chiller is external.
- 2:00 PM: The tallest TH part above the board is 15 mm (this covers caps up to 10x12.5). Taller parts go on the card-holder and edge companions, or lie flat.
- 2:00 PM: Drives: MGN12 rails with lead screws on all axes (X, Y, Z).
- 2:01 PM: the designer: accuracy is the priority on the drives. Use preloaded MGN12H carriages and anti-backlash nuts, with a repeatability test in TODO.
- 2:01 PM: Tray: multi-row, always backs out to the same fixed spot before placing.
- 2:02 PM: Door: side-hinged on the left, interlock on the right.
- 2:02 PM: Fume port: on the top of the enclosure.
2026-10-25 2:19 PM EDT: Skeleton v3 built
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.
- 2:20 PM: Focus drive: a NEMA17 on the T8x2 screw, for auto-focus later.
2026-10-25 2:39 PM EDT: Skeleton v3b built
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
Snap v17
- Files: 1386
- Tar: versions/OSSO_v17_2026-10-25.tar.gz (257M)
- Site pages: 37
2026-10-25 2:44 PM EDT: Real laser source measured
the designer's own unit (integration/refs/laser_actual_*.jpg): the source (white box on the arm) is 115 x 150 x 345 mm plus connectors. Its rear face has EXT CONTROL (DB25), Power (DB), RS232 (DB9) and two coolant push-fittings, so it needs about 60 mm rear clearance for cable bend radius. The galvo is on the front end with the lens below. The power supply and controller sit in the grey base, so they go in the under-bed bay. Skeleton v3c will use the real source size.
- 2:45 PM: the designer: the laser's grey base (PSU and controller) stays outside next to the chiller. Its cables and coolant come through one rear pass-through. This replaces the earlier 'laser power in the bay' decision.
- 2:45 PM: Tray drive: T8x8 lead screw on MGN12 (same as X/Y).
- 2:52 PM: Focus guide: MGN12 on the column, no locks.
- 2:56 PM: Fume: plain top duct, no nozzle or hood.
- 2:56 PM: Fume fan: external, on the duct.
2026-10-25 3:08 PM EDT: Skeleton v3c built
The real 345x115x150 source runs inline along +X with a 60 mm connector zone, and its service loop and riser are in. The tray has a T8x8 screw on MGN12. The focus guide is two MGN12H carriages on the column. The fume extraction is a plain top duct with an external fan. The frame grows to 800W x 720D x 675H (+100 W, +15 H), and the door is 740 wide. Error: the bay still holds the laser PSU placeholder even though the designer moved it outside; fix it in the next revision. Open: whether the beam is at mid-height of the source box (Q18). TODO items 46-47 were added.
- 3:08 PM: the designer accepted the 800 mm frame width.
- 3:11 PM: the designer will measure the beam exit height on the source; mid-height is the placeholder. Started v3d: laser PSU removed from the bay, laser cables through one pass-through.
- 3:12 PM: the designer measured the beam exit: 60 mm OD flange, centered 80 mm above the source bottom (115 mm side vertical). Applied in v3d.
- 3:14 PM: the designer: the machine sits on a bench with its longest side left to right. Rule: depth <= width.
- 3:21 PM: Skeleton v3d built. Frame 800x720x655 (-20 H). Bay 720x340x70. Beam exit at 80 mm. Single 50 mm gland on the right panel. Collisions: only the expected tray-row-8 vs beam cases. Open: whether the DB25 backshell fits through the gland.
- 3:29 PM: the designer chose a larger right-panel cutout with a bolted cover plate for the laser pass-through (the DB25 passes with its connector on). Being applied in v3d.
- 3:30 PM: the designer set the custom-part fabrication methods: FDM, mSLA, laser-cut sheet.
- 3:38 PM: v3d pass-through done: 90x50 right-panel cutout, split 3 mm black acrylic plate, FDM PETG clamp frame, 6x M3. Fab-method tags added.
- 3:54 PM: Decisions: tray-vs-beam interlock is sensors and firmware only (Q5 closed). Exhaust interlock is a real airflow sensor in the duct. Y stays T8x8 (default, card skipped). Started real CAD: Frame & Motion.
- 4:05 PM: Frame & Motion CAD v1 built (109 bodies, BOM 50 lines, 35 assembly steps, cut list). Torque safety factors 4.7-6.1. Differential-pressure airflow switch added to the duct. Open: head Z stack ~17 mm clash with the real X carriage; the 6 mm aluminium plates need an outside cutting service.
- 4:08 PM: the designer: shorten the head plate 17 mm at the rear and keep the needle line at Y 420. Started Head CAD.
- 4:17 PM: Head CAD v1 built (52 bodies, BOM 30 lines, 15 steps). Head 2.88 kg; X axis safety factor 4.7. Head plate cut 17 mm; collisions clean. Open: actuator type, valve location, Z stiffness, hollow housings, hot-air resin/heater.
- 4:18 PM: the designer: station actuators are spring-return pen air cylinders.
- 4:19 PM: Head decisions: pen cylinders; valves on the head; second Z block; hollow ribbed mSLA housings; hot-air heater in the bay, piped up. Applying in head v1b.
- 4:20 PM: the designer: storage is just the 8-row strip tray for now. Real tray CAD queued after head v1b.
- 4:35 PM: Tray CAD v1 built (384 parts, 8 lanes, slot optical sensors, 0.81 kg, safety factor 6.0). The head v1b decisions weren't applied; re-dispatched.
- 4:46 PM: the designer: add sprocket pins to each tray lane for exact indexing. Cover tape is peeled before loading.
- 4:50 PM: Head v1b applied: 2 Z blocks, hollow housings (0.50 kg for five), heater in the bay with a 1.8 m hose and PEEK nozzle sleeve; housing E in high-temp resin. Head 2.56 kg, X safety factor 4.8. Tray sprocket pins (24x 1.4 mm); pocket positions fixed, no teaching needed. Collisions clean.
- 4:50 PM: Snap v18
2026-10-25 7:05 PM EDT: the designer's 10/25 decisions applied; Laser & Optics mount v1 built
- 6:45 PM: Applied the designer's decisions. (a) Station E's heater is now closed-loop from a K thermocouple at the nozzle. Its lead runs with the hose to a MAX31856 board beside SSR 2; the outlet TC and thermal fuse stay as the hard cut-out. (b) Housings stay at about 0.5 kg; no change. (c) Tray pins are Ø1.4 steel with 0.1 play in the Ø1.5 sprocket hole (confirmed in tray.py, BOM and assembly). (d) The bay's mains filter moved to X 400-480, Y 340-395, so the heater gap goes from 12 to 212 mm.
- 6:55 PM: Regenerated skeleton_v3d, frame_motion, head and tray STEP files and renders. Checks: skeleton 384 cases, only the expected tray-row-8 beam cases (96). Head self and interface checks clean (the first run caught the TC against the E nose; added a Ø1.8 pass). Tray clean. frame_motion iface_check shows only the tray flag inside the back-out slot sensor, which is the sensing condition.
- 7:00 PM: Laser & Optics mount v1 (cad/laser_optics): 33 bodies, 38 BOM lines, 14 assembly steps. A 6 mm alu carriage plate on 2 MGN12H (70 apart) carries the source on FDM shelves and straps, and the galvo on an FDM spacer. Beam Z matches the galvo mid-height (543.6 at WD 230). Moving mass 10.6 kg (7 kg source assumed). Focus motor SF 2.1; self-locking. Interference: 0 unexpected hits. Open: weights, galvo mounting, motor size, top clearance at WD 270 (6.4).
- TODO 49-52 added.
- 7:20 PM: Laser & Optics answers from the designer. The galvo is factory flange-attached to the source and hangs from its flange, so I removed the printed spacer and shortened the carriage plate to X 380-660; the shorter plate also now reaches under the rear shelf. Source weight is PENDING (the designer will weigh it; 7 kg placeholder). Kept the 40 mm NEMA17, the fused-silica window, and the 6.4 mm top clearance. Loads: 2.2 Nm on the flange at rest (2.4 kg galvo+lens, 95 mm lever), shelves 68 N front / 24 N rear, both upward, straps unloaded; the rear shelf unloads only below a 2.7 kg source. Motor SF 2.1. Interference: 0 unexpected hits.
2026-10-25 (cont.)
- 8:10 PM: Thermal reflow v1 (cad/thermal_reflow).
- Stack: steatite spacers, then 400 W 120 VAC heater on a 6 mm MIC-6 plate, then the REF carrier on a dowel/slot with 4 SmCo magnets. KSD301 170 °C cutout plus NTC.
- Heat-up 11 min to 150 °C; 95 W loss; Y moving mass 3.81 kg gives Y SF 3.5.
- Interference 0. The earlier REF nut-block duplicate was dropped.
- 8:10 PM: Electrical/pneumatics harness v1 (cad/electrical_pneumatics_harness).
- The hot-air hose came out at 2.03 m vs 1.8 m available. Fixed by lowering the X chain under the gantry beam onto a NEW 2020 cross member (Y 550, Z 326-346) plus a shelf at Z 349. The moving end is now at x+85 on a bracket under the beam, and the riser is shorter.
- H01 is now 1.64 m along R50 arcs.
- X chain 50x20 R60 L363: fill 44%. Y chain 15x10 R38 L330: fill 17%. Bends OK over the full travel.
- 41 wires and 9 hoses. Mains to SELV ≥ 18.7 mm.
- Re-routed the PE (it went through the heater/SSR), moved the hose jog around the right mid post, and moved the comb Z150 to Z200 (it hit the Y-support bracket).
- 8:10 PM: Enclosure v1 rerun.
- Inlet moved to Y 395; devices fit their panel holes. Self 0, interface 0.
- Door 93° open; swing radius 753, clearance 766 vs the 750 target (flag).
- 8:10 PM: Top level (cad/top).
- osso_top.step has 374 bodies. Combined BOM 236 lines.
- 48-pose sweep: 0 REAL cross-subsystem hits.
- MASTER_ASSEMBLY.md, renders, and the routing drawing.
- Head docs corrected: the hose runs in the X chain only. TODO 53-62 added.
2026-10-25 8:27 PM EDT
the designer asked for a cart to be designed for the machine, to hold the external components (chiller, laser base). Added to TODO.md.
2026-10-25 8:50 PM EDT: Component cost total (private)
- Built a running component cost total for the integrated machine from the combined BOM (236 lines): cad/top/COST_osso_combined.csv plus COST_SUMMARY.md, with per-subsystem totals, top drivers and assumptions. The laser is one line at the designer's figure and covers the source, galvo, lens and grey base. The chiller is a separate line (flagged).
- The cost files are private. build_site.py now excludes COST_* files from the site, and no amounts appear in this journal.