# Inline optical QC: devices for the record inspection station
Research note, October 2026. This note works out which devices can do
layer 1 of [quality automation](../quality-automation.md#layer-1-100-optical-inspection-inline),
the optical check of every pressed record. Prices come from vendor shops,
vendor pages or third-party listings, and the source is named each time.
Anything without a source is marked as an estimate. Nothing here is a
quote.
**Short answer.** Nobody sells a vinyl inspection machine. The template
is the CD and DVD in-line scanner: spin the disc once under a line-scan
camera that looks along the radius, with angled lights, and measure the
height with lasers during the same turn. That can be built from standard
parts:
- a 4k line-scan camera per side, with dark-field and bright-field lights;
- a colour area camera per side for the label;
- two laser distance sensors for warp;
- a servo turntable with a centring chuck;
- an edge PC running open-source vision software on NixOS.
The hardware costs about USD 16k to 33k per station (bill of materials,
partly estimates). The launch plant needs two stations, one for the Duplex
cell and one for the Classic. A concept model of the station, an aluminium
profile frame with a rim-belt conveyor and all sensors mounted to it, is
in [the station setup](#the-station-setup-frame-conveyor-and-sensors).
## What the station has to catch
| Defect | How it shows optically | Device | Limit or source |
|---|---|---|---|
| Non-fill (PVC did not fill the stamper) | dull, matte patches in the groove band, most often at the outer edge of 180 g records ([AnalogPlanet](https://analogplanet.com/content/what-non-fill-looks)) | line-scan camera, low-angle (dark-field) light | any patch; correlates with audible defects |
| Stitching and flow lines | lines or streaks in the groove sheen | same | any visible line |
| Bubbles, inclusions, black specks | dark or bright points; in clear and translucent colours seen best in transmitted light | line-scan with a back light | size threshold set in trials |
| Debris, scratches, scuffs | bright points or lines in dark-field, dark in bright-field | both lights | size threshold set in trials |
| Edge trim (burr, wrong diameter) | the record edge in the line-scan image | line-scan | trim drawing |
| Label wrong, on the wrong side, off-centre, wrinkled, bubbled, misprinted | colour image of the label against the approved artwork from the order | colour area camera, ring or dome light | artwork in ERPNext |
| Off-centre hole (eccentricity) | the groove band edges trace a sine wave in the unwrapped image when the hole sits off the spiral centre | line-scan, fit of the lead-in and the finishing groove | 0.2 mm hole to groove spiral (IEC 98-1987, DIN 45547-1981, as [tabulated here](http://www7a.biglobe.ne.jp/~yosh/standards_table.htm)); Stamper Discs aims below 0.1 mm on the record and 0.05 mm on the stamper ([Stamper Discs, 2025](https://www.stamperdiscs.com/the-physical-attributes-of-a-stamper-eccentricity/)) |
| Centre hole size | hole diameter in a backlit image, or a go/no-go mandrel | area camera (optional) | 7.24 mm, -0/+0.09 mm (same table) |
| Warp: edge run-out and dish | height change over one turn | two laser distance sensors, or one laser line profiler | Mobineko rejects above 0.5 mm (black), 1.0 mm (colour) or 1.5 mm (special effects) edge run-out per turn, or above 2 mm (black) or 3 mm (colour) between edge and centre ([Mobineko](https://mobineko.com/vinyl-quality-standards)) |
| Colour off the approved test pressing | colour values against the first approved records of the job | calibrated colour camera | tolerance set per job |
| Record temperature at unload (process signal, optional) | temperature map | thermal camera | trend against warp |
No camera can see a wrong master cut into good-looking grooves, or clicks
from defects smaller than its resolution. Those stay with the sampled
audio comparison (layer 3). Optical and audio checks complement each other.
## Who does this already
- **No vinyl product.** A search in October 2026 found no inline
inspection machine for vinyl records on sale. The presses do not offer
one either. The Newbilt Classic's feature list stops at automatic
unloading, the spindle stack, cycle recording and OPC UA
([Newbilt Classic](https://vinyl-pressing-plants.com/blog/newbilt-classic-12-inch-vinyl-record-press)).
- **CD and DVD lines had it, and that is the template.** Dr. Schenk's ISM
in-line scanner ([brochure, 2007](https://www.drschenk.com/fileadmin/user_files/brochures/13-other_applications/optical_media_inspection/ism_inline_scanner.pdf)):
- a 2048-pixel, 12-bit line-scan camera with LED lights;
- one turn in 600 ms or less, 20 µm radial resolution;
- radial and tangential disc deformation measured at 1,000 points;
- a defect classifier, on embedded Linux.
Basler began in this market in 1990 for PolyGram in Hanover
([IMVE](https://imveurope.com/feature/caught-camera)) and sold the
optical-media business to Xiris in 2009
([Vision Systems Design](https://vision-systems.com/cameras-accessories/article/16747762/basler-sells-optical-media-business-continues-focus-on-camera-markets)).
A vinyl record is a bigger, black, grooved disc, but the method carries
over.
- **Precision Record Pressing (Ontario), 2023.** Their in-house AQA system
takes the first and second record of each order. Surface-scanning
cameras built into the lids of modified turntables scan both records,
then both are played in sync and compared with the master
([PRP](https://www.precisionpressing.com/blog/news-prp-announces-new-automated-quality-assurance-system)).
It works on samples and is not for sale, but it is the closest vinyl
precedent.
- **Czech Technical University, Prague.** A bachelor thesis built an
automated optical defect check for LPs in LabVIEW and ran lighting
experiments ([CTU thesis](https://dspace.cvut.cz/entities/publication/11505711-6ce1-4b87-904d-a1421d91cf9f)).
A 2018 paper from the same faculty identified defects with a wavelet
method and classified them with KNN, and got 57 % of records right
([CTU, 2018](https://starfos.tacr.cz/en/vysledky-vyzkumu/RIV%2F68407700%3A21230%2F18%3A00321872)).
- **Plants check by hand today.** Mobineko measures flatness with a
micrometer gauge and a laser level on a modified turntable
([Mobineko](https://mobineko.com/vinyl-quality-standards)). Third Man
checks flatness and label orientation by eye as records leave the press
([WIRED](https://www.wired.com/video/watch/how-vinyl-records-are-made-with-third-man-records)).
## The station
**How it works.** The record goes onto a centring chuck: a mandrel
expands in the 7.24 mm hole and a ring supports the label area. A servo
turntable with an encoder turns it once in about 1 s. Both sides are
imaged during that one turn, one camera set above and one below. The
lights are strobed on alternate lines, so the same turn gives a
dark-field, a bright-field and a transmitted-light image. Stacking line
images from one turn into one picture is standard multi-light line-scan
practice (estimate for this application; to prove in trials). The PC
unwraps each image into a strip of radius against angle, which makes
rings straight lines and an off-centre hole a sine wave.
| Function | Device, per side unless noted | Examples | Price signal |
|---|---|---|---|
| Surface | 4k monochrome line-scan camera along the radius, with a lens, plus a dark-field and a bright-field line light | Basler racer 2 r2L4096 (GigE, 14 to 29 kHz); Hikrobot MV-CL042-91GM (GigE, 4096 × 7 µm pixels, 28 kHz, 80 kHz in high-bandwidth mode, GenICam, Linux; [datasheet](https://www.innosmart.bg/en/catalog/product/by-id/MV-CL042-91GM)); Cognex In-Sight 3800 Line Scan (smart camera, 4K at 84 kHz, encoder inputs, AI tools on board; [specs](https://www.cognex.com/products/machine-vision/2d-machine-vision-systems/in-sight-3800-line-scan/specifications)) | Basler 4k GigE line-scan from USD 857 to 1,088 in Basler's web shop ([price listing](https://cards.keenable.ai/w/01a14ab8-9648-7191-8286-bc5956857428)); lens USD 300 to 800 and line lights USD 500 to 1,500 each (estimates) |
| Transmitted light | a diffuse line light under the record for the top camera | any line-light maker | USD 500 to 1,500 (estimate) |
| Label | 5 to 8 MP colour area camera with a ring or dome light | Basler ace 2 a2A2840-14gcPRO | USD 1,119 (Basler web shop, same listing) |
| Warp, simple | two laser distance sensors under the record, at the outer edge and at mid radius | Micro-Epsilon optoNCDT 1420 | from EUR 470 list ([Micro-Epsilon](https://www.micro-epsilon.com/insights/optoncdt-1220-1320-1420/)); ILD1420-25 about USD 1,600 at a reseller ([Radwell](https://www.radwell.ca/Buy/MICRO%20EPSILON/MICRO%20EPSILON/ILD1420-25)) |
| Warp and thickness, full map (alternative) | laser line profiler across the radius, giving a full height map | Keyence LJ-X8000 (warpage and flatness tools, compensates eccentricity; [Keyence](https://keyence.com/products/measure/laser-2d/lj-x8000)); LMI Gocator 2500 (up to 10 kHz, blue laser; [LMI](https://lmi3d.com/2500-high-speed-3d-laser-profile-sensors/)); Micro-Epsilon scanCONTROL | no list price found; USD 8k to 20k (estimate) |
| Thermal (optional) | infrared camera over the unload position | Optris Xi 400 (80 Hz, line-scan mode) | from EUR 1,950 ([Optris](https://optris.com/products/thermal-cameras/compact-line/xi-400/)); USD 2,995 at a US reseller ([moviTHERM](https://movitherm.com/product/optris-xi-400-infrared-camera/)) |
| Compute | edge PC with a GPU, NixOS | any industrial PC | USD 2k to 4k (estimate) |
| Mechanics | servo turntable, centring chuck, encoder, frame, light shield, reject gate, stack light | local machine builder | USD 4k to 10k (estimate) |
**Resolution.** These are worked figures for a 160 mm field and a 4,096-pixel line:
- **Radial:** about 39 µm per pixel.
- **Along the groove, at 14 kHz and one turn per second:** about 66 µm per line at the outer edge (146 mm radius) and 22 µm at the label edge. At 28 kHz these halve.
- **What that sees:** millimetre-sized non-fill, flow lines and specks of about 0.1 mm and up. It does not resolve single grooves.
- **How defects show:** the camera sees how the groove field scatters light, so a defect has to change that scatter. That is why lighting trials come first, as in the CTU thesis.
**Eccentricity.** At the 0.1 mm target, the sine wave in the unwrapped
image is about 2.6 pixels high. A sub-pixel fit along the lead-in edge
and the finishing groove (106.4 ± 0.8 mm diameter in IEC 98) over about
14,000 lines should repeat within 10 to 20 µm. That figure is an estimate
and has to be shown in trials. The chuck has to centre on the hole
exactly, because the station measures the groove spiral against the
chuck.
**Throughput.**
| | Duplex cell | Classic |
|---|---|---|
| Output | a record every 15 to 20 s from its two presses (at 30 to 40 s per press; Newbilt quotes about 30 s, and the [fleet calculator](../fleet-calculator.html) takes 3 records a minute as 40 s) | a 180 g record every 28 s (Newbilt) |
| Station time per record | about 1 s of scan plus 2 to 3 s to load and unload (estimate) | same |
That leaves slack at both stations. One central station could in
principle take the launch plant's 5 to 6 records a minute. A station at
each cell needs no conveyor and catches a non-fill streak within a cycle
or two. The calculator's iso view draws a conveyor to one optical
station; that drawing is schematic.
## The station setup: frame, conveyor and sensors
A concept model of one station, drawn in FreeCAD from the script
[`build_station.py`](inline-qc-station/build_station.py) (views from
[`render_station.py`](inline-qc-station/render_station.py); model file
[`inline-qc-station.FCStd`](inline-qc-station/inline-qc-station.FCStd)).
It is a layout to take to a machine builder, not a fabrication drawing.
The frame uses the real 8-slot 40 series section (slots, centre bore,
corner cavities) with cast angle brackets in the corners; bought parts
are drawn as their outline boxes. The script checks that every part
reaches the floor through parts it touches, so nothing floats.

*The labelled view for presentations, made with
[`render_annotated.py`](inline-qc-station/render_annotated.py) (FreeCAD
view and label positions) and
[`annotate_render.py`](inline-qc-station/annotate_render.py) (labels,
Pillow).*

*Records run from the infeed (back left, a translucent red special on
the belts) through the light-tight tunnel to the reject pusher and the
outfeed stop (front right). The cabinet sits under the outfeed, the
reject bin behind it.*
**Frame.** The frame is built from 40 × 40 mm 8-slot aluminium profile
(32 m in 45 pieces) on two 40 × 80 mm base beams, with 24 cast angle
brackets in the corners and eight levelling feet. It is 1.9 m long, 0.65 m wide and 1.5 m high, plus the stack
light. The reject bin adds 0.4 m behind it. Records travel at 900 mm,
a normal working height.
The middle 0.8 m is a tunnel closed with black panels on all sides
(4.3 m²), because the line-scans need their own light only. The front
panel is a door with a safety switch. The records enter and leave
through low slots in the end walls. The reject zone has a clear polycarbonate guard.
All camera and light brackets clamp into the slots, so heights and angles
can be moved during the lighting trials.
**Conveyor.** Two 6 mm PU round belts run under the record's rim, 148.5 mm
from the centre line. That is outside the recorded area: a 12" record is
301.6 mm across and its grooves end at 292.6 mm at most (IEC 98, as
[tabulated here](http://www7a.biglobe.ne.jp/~yosh/standards_table.htm)).
The belt therefore touches only the raised edge that records are made to
stand on, never a groove. The centre stays open, so cameras and the chuck
can reach the record from below.
The belts run on UHMW slide strips and are driven by one shaft at the
outfeed end. Side guides with a flared mouth centre the record at the
infeed. Supported on two rim lines, a warm 180 g record sags about 1 mm
in the middle (beam estimate); the trials should confirm that this does
no harm. For 10" and 7" records the belt spacing moves in on a slide;
the model shows the 12" setting.
| Station | Position from the infeed end | What happens |
|---|---|---|
| Infeed | 200 mm | the operator (Duplex) or the unloader (Classic) puts the record down; a presence sensor starts the cycle |
| Label gate | 520 mm | both colour cameras flash the labels on the fly through the open centre (exposure about 20 µs, under 10 µm blur at 0.5 m/s); the top camera also reads the dead-wax code that ties the record to its stamper, and so to its press and cycle (readability to test, as in [digital factory](../digital-factory.md)) |
| Inspection | 880 mm | a through-beam on the leading edge stops the belts; the chuck lifts the record 75 mm off them (the pad waits below the belt plane), expands the mandrel in the 7.24 mm hole and turns it once in about 1 s |
| Reject | 1,320 mm | a pneumatic rodless cylinder on a bridge pushes a reject sideways by its edge onto a felt-lined chute at the back and into the bin |
| Outfeed | 1,715 mm | good records wait at a soft end stop; the station holds the next one while the outfeed is full |


**Inspection zone.** The record is shown lifted on the chuck. The two
line-scans look at opposite radii along the conveyor axis, because no
belt crosses that line:
- **Top camera:** reads the downstream radius, from 50 to 155 mm, from
330 mm above. A coaxial line light sits under it, two dark-field line
lights sit at 20° either side, and a diffuse backlight below the
record gives transmitted light for clear colours.
- **Bottom camera:** reads the upstream radius from below with the same
set of lights.
- **Bottom dark-field lights:** these sit outside the record's footprint,
above the rails, so the conveyed record passes them. They light the
underside at about 8°, true dark-field.
- **Warp lasers:** two lasers under the record trace circles at 90 and
130 mm radius during the turn.
- **Spindle drive:** the spindle servo's encoder clocks both line-scans
and the lasers.
- **Lift drive:** the lift is a guided pneumatic cylinder, and the
spindle is belt-driven from a servo set to the side. That keeps the
bottom camera's view cone clear, which the elevation shows.
- **Thermal camera (option):** hangs at the tunnel entry.
**Cycle per record (estimate).**
| Step | Time |
|---|---|
| Convey to the inspection position | 1.5 to 2.5 s |
| Lift and clamp | 0.5 s |
| One turn, with run-up and stop | 1.3 s |
| Lower | 0.3 s |
| Convey out, with a push if rejected | 1 to 2 s |
| **Total** | **about 5 to 6 s** |
A Duplex cell delivers a record every 15 to 20 s and the Classic one
every 28 s. The PC finishes the verdict while the record is lowered and
carried to the pusher.
**Control.** A small PLC (Mitsubishi FX5U or Delta class, both common in
Thailand) runs the conveyor, lift, mandrel, spindle and pusher, plus the
safety circuit (e-stop, door switch, safety relay). The NixOS edge PC
under the outfeed takes the four GigE cameras on PoE, the lasers and the
light controllers. It sends pass or fail with a reason to the PLC, and
the result string and images to the factory system (see
[digital factory](../digital-factory.md)). Utilities are 230 V single
phase at about 1 kW and 6 bar compressed air (estimates).



**Bill of materials.** The line-by-line list with sources is in
[`inline-qc-station-bom.csv`](inline-qc-station/inline-qc-station-bom.csv).
By group, per station:
| Group | USD | Main parts |
|---|---|---|
| Frame | 0.8k to 1.6k | 32 m of 40 × 40, 3.8 m of 40 × 80, angle brackets, feet |
| Enclosure and guards | 0.3k to 0.7k | black panels, polycarbonate, door switch |
| Conveyor | 0.5k to 1.4k | round belts, pulleys, slide strips, drive |
| Handling | 2.0k to 4.9k | guided lift cylinder, 200 W spindle servo, spindle head with mandrel, rodless cylinder, pneumatics |
| Vision | 7.7k to 12.5k | 2 line-scans, 2 colour cameras, lenses, 2 coaxial, 4 dark-field and 2 backlights, 2 ring lights, controllers |
| Sensors | 1.3k to 4.0k | 2 laser distance sensors, presence and stop sensors |
| Control | 3.5k to 7.8k | PLC, edge PC with GPU, HMI, safety, cabinet and wiring |
| **Total** | **16k to 33k (0.53M to 1.08M THB)** | thermal camera (USD 2.1k to 3.0k) not included |
**Open points for the machine builder.**
1. **Sag:** confirm that the rim-only support does not mark or bend warm
records.
2. **Static:** fresh PVC attracts dust, so an ionising bar at the infeed
may be needed. Otherwise the station counts dust it attracted itself.
3. **Classic hand-off:** where and how the Classic's unloader sets the
record down.
4. **Belt width:** a quick-change spacing for 10" and 7" records.
5. **Space in the cell:** check that the 1.9 m length fits the 5 × 3 m
Duplex cell next to the trimmer.
## Where it sits
- **Duplex cell.** The station sits after the edge trimmer, in front of
the operator, before the spindle. The flow per record:
1. The operator puts the trimmed record on the infeed conveyor.
2. A presence sensor starts the cycle.
3. A stack light and the HMI show green or red.
4. A reject is pushed into a bin, and the HMI shows the reason; a good
record waits at the outfeed for the spindle.
The operator still sees every record, so the visual check stays as it
is today.
- **Classic.** The Classic unloads by itself onto the spindle stack. Ask
Newbilt whether the unload handling can set the record down on the
station's infeed instead; a conveyor takes a record dropped within a few
millimetres, which is easier than hitting a chuck. If that does not
work, use a fixed area camera over the unload position. That covers
surface and label, and leaves warp and eccentricity to samples.
- **Warm records.** Records leave the press warm and settle in the stack;
24 hours of cooling is the usual practice
([Stamper Discs](https://stamperdiscs.com/horns-and-quality-issues-in-vinyl-record-pressing)).
The warp reading at the press is therefore an early warning. Release on
warp uses sampled cooled records, measured on a second station of the
same design next to the QC lab in the finishing block (the room the
layout had for end-of-line optical inspection).
- **Plant view.** The [plant and business plan calculator](../fleet-calculator.html)
draws a station in front of the operator in every Duplex cell, one at
the unload side of every Classic, and the release station in the
finishing block; the machine park schematic shows them too.
## Two software routes
| | Smart camera or vendor controller | Open, PC-based |
|---|---|---|
| Examples | Cognex In-Sight 3800 with edge learning (about USD 8,500 a unit in a [third-party listing](https://robotomated.com/explore/manufacturing/cognex-insight-3800)); Keyence CV-X or XG-X with LumiTrax, which separates shape from surface pattern on shiny parts ([Keyence](https://www.keyence.com/landing/vision/lumitrax-lighting.jsp)); CV-X controllers listed at about USD 5,400 to 5,500 on resale sites ([BigGo](https://biggo.com/s/cv-x%20keyence)); Keyence quotes only locally | GenICam cameras (Basler, Hikrobot, or Keyence's VJ series) with:
- Aravis for acquisition (LGPL-2.1, GigE Vision and USB3 Vision, packaged in nixpkgs as 0.8.35; [GitHub](https://github.com/AravisProject/aravis), [MyNixOS](https://mynixos.com/nixpkgs/package/aravis)), or Harvester (Apache-2.0, needs the camera maker's GenTL producer; [GitHub](https://github.com/genicam/harvesters));
- OpenCV;
- anomalib for learned defect detection (Apache-2.0, PatchCore and others; [PyPI](https://pypi.org/project/anomalib/)) |
| For | fast set-up, vendor support, tested tools | we own the code and the data, no licence per unit, fits the NixOS stack and the service offer to other plants ([digital factory](../digital-factory.md)) |
| Against | closed, Windows set-up tools; the polar unwrap, eccentricity fit and per-job learning still have to be built on top | we build and maintain it; the first station takes longer |
Keyence's VJ series sits between the two. It sells Keyence GigE cameras
and LumiTrax lights for PC-based software, with GenICam, OpenCV and
HALCON listed as supported
([Keyence VJ](https://keyence.com/ss/products/vision/vj)).
Recommendation: take the open route for the station itself. Before that,
ask Keyence Thailand for its free demo and test report on sample records
with LumiTrax. It costs nothing, teaches us the lighting, and gives a
benchmark for our own result.
## Colour and special records
Specials are planned at 60 % or more of output, and they are the hard
part:
- **Marbled and splatter:** the pattern is random, so a fixed golden image
cannot work. The model learns each job from its first approved records
and flags what differs. That is few-shot anomaly detection, for example
PatchCore in anomalib, with the operator confirming the first flags.
- **Clear and translucent colours:** transmitted light shows bubbles and
specks well.
- **Picture discs:** they need the label-style print comparison over the
whole face.
- **Black:** the easiest.
Expect more false rejects on specials in the first months (estimate). The
reject rates in the [factory console](../factory-console.html) demo are
simulated.
## Cost
| Item | Estimate |
|---|---|
| Hardware per station, from the [bill of materials](inline-qc-station/inline-qc-station-bom.csv) | USD 16k to 33k (0.53M to 1.08M THB) |
| First station: frame build and machined parts, lighting trials, software, training data | 2 to 4 person-months, USD 15k to 40k (our own team with a local machine builder) |
| Launch plant: two stations, Duplex cell and Classic | about USD 50k to 105k (1.6M to 3.5M THB) |
All three figures are estimates; the bill of materials names a source for each priced line. They fit inside the existing metrology
launch-tier line, USD 170k to 460k for XRF, inline vision and the audio
station ([total investment](../finance/total-investment.md)). The plan
prices therefore do not change. That line has no published split, so the
vision share is not yet confirmed.
## Where to buy in Thailand
| Brand | Channel | Status |
|---|---|---|
| Keyence | Keyence (Thailand), direct sales | free demos and test reports, as Keyence offers in other markets ([Keyence](https://www.keyence.eu/landing/lpc/surface-defect-detection.jsp)); confirm locally |
| Basler | LINX KK (Thailand), Basler's only official distributor in Thailand ([LINX](https://linx.co.th/en)) | |
| Cognex | local distributor | still to name |
| Hikrobot | local distributor or the Chinese route | still to name |
| Micro-Epsilon, LMI, Optris | local distributor | still to name |
## Next steps
1. **Lighting trials.** Get a dozen records with known defects from a
partner plant: non-fill, stitching, bubbles, an off-centre one, and a
splatter colour. Test them with a borrowed line-scan camera and two
lights.
2. **Keyence test.** Ask Keyence Thailand for a test report on the same
records.
3. **Newbilt.** Ask about the Classic unload hand-off. Also ask for the
cycle counter over OPC UA, so every result carries the record key
(stamper, press, cycle, side; see [digital factory](../digital-factory.md)).
4. **Warp sensors.** Choose between two point lasers and a line profiler
once the trials show whether a thickness map is worth the extra cost.
5. **Acceptance test.** Write it before ordering. It should cover the
detection rate per defect class on the trial set, the false-reject
rate on good records (black and specials apart), and every result
matched to its record key.