← Oct 23 Oct 25 →
Journal: Saturday, Oct 24, 2026
- 2026-10-24 9:41 AM EDT — Design note: TH parts by jig + underside solder rings
- 2026-10-24 9:42 AM EDT — Process flow decision: bottom reflow first
- 2026-10-24 9:44 AM EDT — Correction: TH bodies sit on top; top reflow must navigate them
- 2026-10-24 9:45 AM EDT — Design rule: lay out boards with reflow in mind
- 2026-10-24 9:50 AM EDT — Design note: 3D-printed needle tips
- 2026-10-24 9:52 AM EDT — Decision: bond 3D-printed needle tips
- 2026-10-24 9:55 AM EDT — Design note: calibration feature for zeroing tips
- 2026-10-24 4:37 PM EDT — Component storage and PnP delivery: cells and trays
- 2026-10-24 4:38 PM EDT — Correction: 0402 is the smallest part; two cell (carrier) sizes
- 2026-10-24 4:39 PM EDT — Decision: cell grid of 10 mm and 20 mm
- 2026-10-24 5:22 PM EDT — Decision: oversize parts and a manual park spot
- 2026-10-24 5:59 PM EDT — Decision: try the magazine first, as a wall of drawers
- 2026-10-24 6:01 PM EDT — Decision: drawer wall behind the bed
- 2026-10-24 6:02 PM EDT — Design note: rail detail built into the carrier box
- 2026-10-24 6:06 PM EDT — Decision: gravity detent for the drawers
- 2026-10-24 6:06 PM EDT — Topic: loading the drawers
- 2026-10-24 6:09 PM EDT — Decision: one-row cell carrier as a nested container
- 2026-10-24 6:18 PM EDT — Decision: QR code on each one-row carrier, stored as inventory
- 2026-10-24 6:22 PM EDT — Decision: names for PnP part storage
- 2026-10-24 6:23 PM EDT — Decision: manual strip loading for offline storage
- 2026-10-24 6:25 PM EDT — Decision: intelligent camera confirmation when strips load into the matrix
- 2026-10-24 6:26 PM EDT — Decision: matrix positions chosen for PnP efficiency
- 2026-10-24 6:45 PM EDT — Design logic review: conflicts found
- 2026-10-24 6:45 PM EDT — Decision: two hooks, one on the bed and one on the head, open the matrix drawers
- 2026-10-24 6:59 PM EDT — Decision: matrix stays at the back; lift latch with no actuator, opened by bump to lift
- 2026-10-24 7:06 PM EDT — Snap v15
2026-10-24 9:41 AM EDT — Design note: TH parts by jig + underside solder rings
the designer proposed an aligned jig holding the through-hole (TH) parts with the board on top, then placing solder rings (preforms) from the underside and spot reflowing them. the designer's reasoning:
- The ring has to be placed precisely, but once on, the TH lead holds it in place.
- Spot reflow has a better chance from the underside because the parts body isn't in the way.
- It leaves room in the process for SMT parts on the bottom side if they're really needed.
OSSO notes: this reuses the existing top-down head and E hot air, gives a known solder volume per joint, and the jig can be a 3D-printed part made for each board. Experiments to run: picking and placing the ring over the lead (a new PnP move or a ball-drop variant), lead trim length, heat soak on big pins and ground pads, relief pockets in the jig for top-side SMD, and a datum so fiducials line up. Red flags: none; preforms are stock parts (Indium, Kester), though small-volume pricing still needs checking. Notes only.
2026-10-24 9:42 AM EDT — Process flow decision: bottom reflow first
the designer decided the bottom-side reflow (TH solder rings from the jig, plus any bottom SMT) comes first in the process flow, before top-side SMT. OSSO notes: a benefit is that top-side SMD parts can't reflow a second time when the TH joints are heated, and the jig doesn't need relief pockets for top parts. Still to plan: how TH parts stay held when the board is flipped for top-side work, and whether their bodies need pockets in the top-side fixture. The process flow drawing (drawings/osso_process_flow_v1.py) isn't updated yet. That waits for a command.
2026-10-24 9:44 AM EDT — Correction: TH bodies sit on top; top reflow must navigate them
the designer clarified: TH part bodies sit only on the top side. During the bottom pass the board is upside down in the jig, so the TH bodies are underneath, held by the jig, and their leads point up for the solder rings. Once the board flips for top-side placement and reflow, the TH bodies stand up from the top surface, so the reflow needle (E hot air) and the other needles have to work around them. This replaces the 9:42 AM note's open question about holding TH parts after the flip, and it stays true that top SMD parts won't be reheated. New items to plan: the head's Z clearance and path planning around tall TH bodies, a check that TH plastic bodies don't sit in the hot-air jet next to SMD pads, and keepout rules in the board layout (SMD-to-TH spacing). Notes only.
2026-10-24 9:45 AM EDT — Design rule: lay out boards with reflow in mind
the designer set a rule: PCB layout planning has to account for OSSO's reflow process (design for reflow). OSSO notes on what that covers: SMD-to-TH keepouts so the top hot-air needle has a clear path and the TH plastic bodies stay out of the jet, needle-height clearance around tall TH parts, TH pads sized for solder ring preforms, thermal relief on TH pads tied to ground planes so one-sided spot reflow can heat them, and enough spacing between SMD parts for the local hot-air spot. Notes only.
2026-10-24 9:50 AM EDT — Design note: 3D-printed needle tips
the designer noted that if a needle needs a specific tip geometry, a 3D-printed tip can be added to it. The retract, deploy and calibration methods then have to compensate for the tip, and so do the motion kinematics and path planning. OSSO notes: every tip variant needs its own length/offset and mass, so each one needs a tool offset from calibration and an updated clearance envelope for path planning (for example around TH bodies). Watch-outs: printed plastic near E hot air, or near reflow temperatures, needs a heat-rated material or shouldn't be used there. The tip also adds mass that can change deploy timing and the latch/magnet margin. Notes only.
2026-10-24 9:52 AM EDT — Decision: bond 3D-printed needle tips
Thread-tapping a stainless needle tube was ruled out: the walls are too thin (about 0.15 mm at 23 ga, about 0.25 mm at 14 ga) for any thread, even a custom one. the designer chose bonding printed tips onto the needle. His reasons: it keeps the mass low, and the tip's alignment (angle and orientation) gets fixed once at bonding. OSSO notes: use a high-temperature epoxy wherever heat is nearby. A small alignment fixture at bonding time would set the tip's clocking repeatably, and calibration then measures the final tip offset. Bonded tips are permanent, so a tip change means swapping the whole needle on its Luer. Notes only.
2026-10-24 9:55 AM EDT — Design note: calibration feature for zeroing tips
the designer noted that a tip may need a calibration feature so that any tip, or any plain blunt needle, can be zeroed (its XYZ offset found for that station). OSSO notes, as ideas only: a reference feature on the tip itself (a flat, a notch, or a small ring visible to the camera), matched by a fixed datum on the machine such as a touch-off plate, an optical break-beam or a camera view of the tip. Zeroing would then run the same way for a bare needle or a bonded tip, and the measured offset would feed the motion kinematics and path planning. Notes only.
2026-10-24 4:37 PM EDT — Component storage and PnP delivery: cells and trays
Decisions from the designer:
- Parts are delivered to PnP from a tray or matrix prepared ahead of time, with one part per cell. No tape feeders, because the designer doesn't want to deal with jammed tape.
- Each cell is a reusable part that sits inside the tray.
- Cells are printed on a 14K resin printer for detail.
- The smallest SMT package is dropped: nothing smaller than 0603. the designer's reason: smaller parts are too small for a human to fix issues by hand. Kit boards should be laid out to match.
OSSO proposal under discussion (not yet decided): cell sizes on a shared 6 mm grid, S (6 mm, about 4x4 mm pocket for 0603 to 1206, SOT-23, SOD), M (12 mm, about 9x9 mm pocket for SOIC, QFN, TQFP-32, small electrolytics) and L (18 mm, about 15x15 mm pocket for TQFP-44/64, inductors, crystals), with 0.2–0.4 mm clearance per side and a datum corner. Watch-outs: standard resin isn't ESD-safe (use an ESD-safe resin for IC cells), resin shrinks as it cures (tune a test cell first), and small parts need a hold-down. Notes only.
2026-10-24 4:38 PM EDT — Correction: 0402 is the smallest part; two cell (carrier) sizes
the designer corrected the 4:37 PM entry: he didn't mean dropping the smallest part package. He meant dropping the smallest carrier (the S cell), because it's too small for a person to handle. 0402 remains the smallest SMT package. There are two cell sizes: M (12 mm, two grid units) and L (18 mm, three grid units). OSSO note: small parts (0402 to 1206, SOT-23) then go in an M-size cell with a small pocket cut for the part, so the pocket fits the part while the carrier stays easy to handle. The 14K resin printer gives the detail those small pockets need. This replaces "nothing smaller than 0603" from 4:37 PM.
2026-10-24 4:39 PM EDT — Decision: cell grid of 10 mm and 20 mm
the designer changed the cell grid to 10 mm so the columns and rows are easy to read. The small cell is 10x10 mm (one grid unit) and the large cell is 20x20 mm (2x2 units, so it takes the place of four small cells). Replaces the 12 mm / 18 mm sizes on a 6 mm grid. OSSO notes: pockets inside each cell stay sized to the part. A 10 mm cell holds parts up to about 7–8 mm, such as SOIC-8 and QFN up to 5–6 mm, while TQFP-32 at 9 mm is borderline. A 20 mm cell holds parts up to about 16–17 mm, covering TQFP-44 and 64 (12 mm). Tray positions can be addressed by column/row times 10 mm from the datum corner. Notes only.
2026-10-24 5:22 PM EDT — Decision: oversize parts and a manual park spot
the designer set the rule that any part bigger than the 20 mm cell goes on a special carrier or gets placed manually. That means the machine needs a park spot where someone can set a part by hand for PnP pickup. OSSO notes: give the spot a fixed position the head can reach, a datum corner or a shallow tapered nest so the part sits roughly square, and a camera check so B can fix the rotation before picking it up. The process would pause until someone confirms the part is in place. The spot could also take parts that are odd shapes or that were reworked. Notes only.
2026-10-24 5:59 PM EDT — Decision: try the magazine first, as a wall of drawers
the designer chose to try the magazine (cell shuttle) delivery first, while keeping the other options (tray on the bed, tray off the bed, indexing cassette) open: "We're too early to not try." His concept: a wall of drawers next to the work area, where the PnP vacuum needle (B) opens and closes the drawers itself, with no dedicated drawer motors. Experiment, not a red flag.
OSSO ideas to explore (notes only):
- Drawer handle: a socket or tapered hole on each drawer front. The needle (or a printed tip on it) drops into it and drags the drawer open along X/Y, then pushes it closed. Or the needle hooks a small lip, so no vacuum is needed to pull.
- Detents: a light spring or magnet detent holds each drawer shut and holds it fully open at a known stop, so the cell positions are repeatable for pickup.
- Wall placement: drawers face the head at a reachable height. Their stacked levels mean either Z reach for the head, or each drawer opening onto a shared pickup shelf at one height.
- Drawer contents: one row of 10/20 mm cells per drawer, and the open drawer exposes the cells to the camera and the needle.
- Force check: the drag force on the drawer goes sideways through the needle and Luer. It has to stay well under what bends a needle or shifts the Luer, so a stiffer pull tip could be used just for drawers.
- Sensing: the camera confirms the drawer is open and the cell is present before picking.
2026-10-24 6:01 PM EDT — Decision: drawer wall behind the bed
the designer placed the drawer wall behind the bed. His reasoning: on a bed slinger the bed never rises, so the drawer and pickup heights can sit at a fixed reference relative to the work surface. OSSO notes: with the bed run toward the front (full Y), the head reaches back past it to the drawers, so Y travel or the frame needs room for the drawer depth plus an open drawer. The drawers would open forward (toward -Y) when the needle pulls them, which matches the head's natural pull direction. The bed's rear edge, at its rearmost travel, must clear an open drawer, or the drawers have to be closed before the bed moves back. Notes only.
2026-10-24 6:02 PM EDT — Design note: rail detail built into the carrier box
the designer noted that a rail detail built into the carrier box (drawer) makes sense. OSSO notes: printed side rails (a tongue, or a dovetail riding in a slot in the wall) guide each drawer in Y with no separate slide hardware. The rail can also carry an open-stop and a closed detent, so the open position is repeatable for pickup. Watch-outs: friction and slop, since the needle has to drag the drawer, and print tolerance on the rail fit. A PTFE dry lube or a small rolling contact could keep the drag force low. Notes only.
2026-10-24 6:06 PM EDT — Decision: gravity detent for the drawers
the designer chose a gravity detent over a magnet per drawer, since magnets in every drawer add up to a lot of magnets. The rails tilt slightly so each drawer falls shut on its own. To open a drawer, the needle has to lift the front over the closed stop and then pull. OSSO notes: a short ramp at the closed end makes that lift-and-pull motion the only way a drawer opens, so vibration from the bed can't open one by accident. The open position is held by a hard stop while the needle is still in the handle. Notes only.
2026-10-24 6:06 PM EDT — Topic: loading the drawers
the designer wants to settle drawer loading next. His starting idea: a tray of loaded parts is the stock source the drawers get filled from. Discussion in progress.
2026-10-24 6:09 PM EDT — Decision: one-row cell carrier as a nested container
the designer defined the loading scheme. The stock tray is a set of one-row cell carriers, loaded at stock-loading time, so a single tray can hold more than one component type. The one-row carrier is another nested container type. Once a part is in its carrier, it stays there until it's placed, which lets every move after loading be automatic.
Container hierarchy as of now:
- Part sits in an insert pocket sized for it.
- The insert goes into a cell, 10x10 mm or 20x20 mm, on the 10 mm grid.
- The cell goes into a one-row carrier (one row of cells).
- Carriers are loaded into the stock tray (a set of carriers), then moved into drawers in the drawer wall behind the bed (gravity detent, opened by lift-and-pull with the needle, rail built into the carrier box).
OSSO notes: the carrier's footprint becomes the common interface, so drawer, stock tray and rail details are all sized to it. Each carrier could carry a readable ID (printed code or notch pattern) so the camera knows which parts it holds. Notes only.
2026-10-24 6:18 PM EDT — Decision: QR code on each one-row carrier, stored as inventory
the designer decided each one-row carrier gets a QR code, on both its edge and its top. A loaded carrier can be stored as inventory the way a drawer is. OSSO notes: the edge code can be read while carriers stand in storage or sit in a drawer, and the top code can be read by the head camera during pickup. The QR maps to a record (component type, cell positions, quantity left), so the carrier itself is the stock unit. A small edge code limits how much data fits, so it should hold an ID that points to the record, not the data itself. On a 14K resin print the QR could be embossed or a label could be applied. Notes only.
2026-10-24 6:22 PM EDT — Decision: names for PnP part storage
the designer set these names, from smallest to largest:
- Part: the component.
- Nest: the shaped pocket the part sits in (was "insert pocket").
- Pod: holds one part, 10x10 mm or 20x20 mm on the 10 mm grid (was "cell").
- Strip: one row of pods, with a QR code on its edge and top (was "one-row carrier").
- Tray: the holder of strips inside the machine (was "stock tray").
- Matrix: the drawer wall at the back of the machine, behind the bed. It's grid-based (column/row), uses gravity detents, and opens with lift-and-pull by the needle (was "drawer wall").
- Offline drawer: where loaded strips are kept as inventory off the machine.
In short: a part sits in a nest, in a pod, on a strip. Strips are stored in an offline drawer and run from a tray or the matrix in the machine. These names replace the earlier working terms in all future notes.
2026-10-24 6:23 PM EDT — Decision: manual strip loading for offline storage
the designer decided that loading parts into strips for offline drawer storage is manual for now. A person puts each part into its nest and pod on the strip. Automated loading stays a possible later step.
2026-10-24 6:25 PM EDT — Decision: intelligent camera confirmation when strips load into the matrix
the designer wants the camera to confirm parts intelligently as strips are loaded into the matrix. OSSO notes on what it could check: read the strip's QR (top) to pull its record, then look at each pod to confirm a part is present, that it's the expected package or marking, and that its orientation and polarity are right. Any mismatch flags that pod before placement starts. This catches mistakes from manual strip loading, and it keeps the inventory record up to date. Experiment, not a red flag. Notes only.
2026-10-24 6:26 PM EDT — Decision: matrix positions chosen for PnP efficiency
the designer decided that the machine picks where each strip goes in the matrix to make PnP efficient, not so a human can find things. The QR code and the inventory record track where every strip is, so people never need to know matrix positions. OSSO notes: the machine can put frequently used or soon-to-be-placed parts in the drawers closest to the head's path, group parts by placement order to shorten moves, and reorganize between jobs. Notes only.
2026-10-24 6:45 PM EDT — Design logic review: conflicts found
the designer asked whether the design logic conflicts anywhere. OSSO found:
- Main conflict: on a bed slinger the head moves only in X and Z, while the bed carries Y. A matrix fixed to the frame behind the bed is off the head's line, and the needle can't pull a drawer forward in Y.
- Smaller tensions: (1) the gravity-detent tilt versus pods needing to sit flat and at a known height when picked; (2) the needle-as-handle loads on the B needle, its Luer and the tool-drop magnet latch; (3) whether a strip is itself the drawer or sits inside one, which decides what carries the rail; (4) where the in-machine tray sits and what it does next to the matrix.
Everything else lines up: bottom reflow first, the 10/20 mm grid, QR tracking and the camera checks.
the designer confirmed the matrix is fixed, doesn't move with the bed, and sits next to the gantry.
2026-10-24 6:45 PM EDT — Decision: two hooks, one on the bed and one on the head, open the matrix drawers
the designer chose to open drawers with existing motion. There's one hook on the bed and one on the head. The combined bed (Y) and head (X/Z) moves pull a drawer open and bring it into the head's reach. The head hook is offset from the needle, so the needle no longer works as the drawer handle. OSSO notes: this removes the drawer-drag loads from the B needle, its Luer and the tool-drop latch (tension 2), and it uses no added motors. The head hook adds a little mass to the head and has to clear the five stations, the ball hopper and C's fold. The lift-and-pull over the gravity-detent stop could come from the head hook's Z, while the bed hook supplies the long Y pull. To check: hook engagement tolerance, the order of moves to open and close, and making sure the bed can't move with a drawer half open. Experiment, not a red flag. Notes only.
2026-10-24 6:59 PM EDT — Decision: matrix stays at the back; lift latch with no actuator, opened by bump to lift
the designer kept the matrix at the back, fixed next to the gantry. He chose the non-actuator latch: the gravity detent is the latch itself. The drawer drops into a notch when it closes and opens with a bump to lift. OSSO clarified that the head moves only in X and Z, so the head hook can lift (Z) and move along X but can't pull in Y. Working sequence: (1) the head hook bumps the drawer front up with Z, out of its notch; (2) the bed hook, moving in Y, pulls the drawer forward into the head's reach; (3) the bed pushes the drawer home to close it, and gravity drops it back into the notch. No added parts, motors or magnets. To check: how much lift clears the notch, whether bed motion or vibration can unseat a drawer, and the timing hand-off between the head lift and the bed pull. Notes only.
2026-10-24 7:06 PM EDT — Snap v15
Frozen to versions/v15_2026-10-24 + versions/OSSO_v15_2026-10-24.tar.gz (the project without versions/, video/, stray root tarballs and ._* files; refs/TOOLS.md copied to the version root), same layout as v14. Since v14 (Oct 23):
- Pump: two-piston alternating FOC pump calculation (refs/two_piston_alternating_v1); observation that the pump resembles a syringe pump.
- Needles: all-metal Luer needles for consistency; 3D-printed needle tips, bonded, plus a calibration feature for zeroing tips.
- Machine: larger 300 mm bed slinger base; solder ball drop above the needle array; milestone judgment that the system is feasible.
- Soldering: TH parts placed by jig with underside solder rings; bottom reflow first (TH bodies sit on top, top reflow must navigate them); new design rule to lay out boards with reflow in mind.
- PnP part storage: naming part / nest / pod / strip / tray / matrix; 10 mm and 20 mm pods (0402 smallest part); oversize parts with a manual park spot; one-row strips as nested containers with QR codes tracked as inventory, loaded manually offline and confirmed by camera when loaded into the matrix; matrix positions chosen for PnP efficiency; matrix stays at the back of the bed, drawers opened by a head hook and a bed hook, gravity lift latch with no actuator.
- New drawing: drawings/osso_part_storage_v1.png / .pdf.
The docs site now lists v15, and site builds now scrub personal details from generated output. Mac sync excludes versions/ and video/ as before.