Commit Graph
4 Commits
Author SHA1 Message Date
grabowski face699a28 Optical QC: EtherCAT control plan with geizhals.de prices
Deploy test site / deploy (push) Successful in 57s
User, 19 Oct 2026: plan the current EtherCAT setup, keep the 100 W servo,
check prices on geizhals.de.

- New docs/equipment/inline-qc-control-plan.md: decisions, bus layout
  (drives at the end of the line because the A6-200EC takes control
  power from the main supply), I/O list for EL1809/EL2809/EL3152/EL5101
  and the drive touch probe, PDO and DC notes from the A6-EC manual,
  geizhals.de price table (EUR 1,891.60 to 2,104.39 + USD 246.58 for the
  servo kits, THB 80k to 88k), NixOS/EtherCrab software, safety circuit
  (PNOZ s3, two contactors, dump valve), bench test with pass marks
  (parts about THB 64k, all reused), build order, spares, open points.
- EL3102 replaced by EL3152: the optoNCDT 1420 output is 4 to 20 mA.
- Spindle encoder index goes to an EL5101 instead of the drive touch
  probe; encoder 2,000 to 2,500 pulses.
- BOM: control lines split per part with geizhals.de prices (+30% high
  end for shipping and Thai duty/VAT, estimate); total USD 16,912 to
  33,061 (THB 0.56M to 1.09M). Doc, render caption and fleet calculator
  text now say USD 17k to 33k.
- README links the plan.
2026-10-19 10:43:59 +07:00
grabowski ba1f5fc3a9 Optical QC: EtherCAT control
User, 18 Oct 2026: use an EtherCAT based system.

- Spindle and conveyor on the StepperOnline A6-EC100L2A1-M17 kit
  (100 W, A6-200EC drive, USD 123.29), spindle through a 1:6 belt in
  cyclic synchronous position, conveyor in cyclic synchronous velocity.
- The A6-EC drive has no divided encoder output, so an RS-422
  incremental encoder on the spindle shaft clocks both line-scans; its
  index goes to the drive touch probe for one angle reference.
- Station controller: fanless N100 mini PC with 2x Intel i226, NixOS
  PREEMPT_RT, EtherCAT master EtherCrab (Rust, MIT/Apache) first, IgH
  (nixpkgs, igc native driver on 6.12 LTS) as fallback; no PLC.
- EtherCAT I/O: EK1100, EL1809, EL2809, EL3102 (warp lasers sampled with
  the spindle position, ~1,000 points a turn at 1 ms).
- Safety stays hardwired (safety relay, contactor; no STO at 100 W).
- Edge PC with the GPU stays off the real-time loop.
- BOM: drives, encoder, controller and I/O lines with sources; total
  USD 16,112 to 32,938 (THB 0.53M to 1.09M). Next step: EtherCAT bench.
- Investor render: cabinet and outfeed labels.
2026-10-19 10:15:54 +07:00
grabowski 8c2143630c Optical QC: one station for both presses, after the cooling racks
Deploy test site / deploy (push) Successful in 55s
User, 18 Oct 2026: for now one QC station for both machines; let the
records cool in a queue before testing them.

- inline-optical-qc.md "Where it sits": launch setup. Spindle stacks
  from the Duplex system and the Classic, labelled at the press (press,
  stamper set, first and last cycle), cool in FIFO racks (24 h accepted
  practice, 8 h at the shortest, Stamper Discs; about one day of output,
  2,800 to 3,100 records); the finishing operator feeds the station from
  the cooled stacks. Gains: warp and centring measured on settled records
  (the release value), one station instead of two, no Classic unloader
  change, no warm-record sag or thermal camera. Cost: defects found hours
  later, covered by the Duplex operator, per-cycle telemetry and an early
  lane for the first records of each run and after stamper changes.
  Record key from the stack label and stack position, checked against the
  run-out stamper number. Capacity 10 to 12 a minute against 5 to 6:
  one station to about two Duplex systems and two Classics. A station at
  each press stays the later option. Cost table, open points, infeed row,
  thermal camera note and the Newbilt question follow.
- Fleet calculator: the per-press stations and the release station are
  gone; the finishing block shows the cooling racks with record stacks
  and the one optical station by the corridor glass; tooltips, corridor
  and conveyor texts; machine park back to its legend, finishing box
  "cooling, QC, packing".
- quality-automation.md layer 1, digital-factory.md QC row,
  process-flow.md stage 6, site-candidates.md block ground floor,
  crane-workshop-tours.md tour stop 6.
- Investor render: infeed label "the operator sets each cooled record
  down".

Checks: node --check; pw_bp_calc.py 0 fails; pw_iso_view_check.py OK;
info for every data-id at all presets, levels and rotations; GF nodes
2,414 at the full preset; zoomed shots in two rotations.
2026-10-18 15:18:00 +07:00
grabowski e8674795f5 Inline QC station: real 40x40 profiles, labelled investor render
User, 18 Oct 2026: use real 40x40 profiles, make a render with text
pointing out the parts to show the investor; the ring lights looked
like they were floating.

- build_station.py: frame drawn from the real 8-slot 40 series section
  (profile_shape: slots, centre bore, corner cavities; 40x80 with centre
  cavity) and 24 cast angle brackets; top beams now butt between the
  uprights; label-camera posts moved beside the cameras so both ring
  lights clamp straight to them; top line-scan on a side post with
  visible camera plate and light hangers; slide strips on carrier angles,
  pulley axles, end-stop posts, presence-sensor brackets, backlight post,
  cabinet on base crosses, chute on two supports and clear of the rail,
  pneumatics rail, stack light on the back upright, touch screen on the
  front end upright. A connectivity check at the end lists any part that
  does not reach the floor through touching parts: none.
- render_annotated.py (FreeCAD): front three-quarter view, camera backed
  off so nothing is clipped, no navigation cube or preselection, label
  positions projected from the camera and checked with marker renders.
- annotate_render.py (Pillow): title, 16 labels in two columns, leaders
  assigned so none cross -> inline-qc-station-annotated.png.
- render_station.py: same camera and preselection fixes; all six views
  re-rendered.
- BOM: 32 m of 40x40 in 45 pieces; total still USD 16k to 33k.
- inline-optical-qc.md and README updated; .gitignore for the render
  intermediates.
2026-10-18 14:07:41 +07:00