AutomaticRecordDigitalizer

Status and next steps

Written 6 September 2026, at the end of the concept phase; the section at the end brings it to 14 September.

Where the project stands

The concept is complete and has been reviewed step by step against an interactive model (concept-model.html) that plans every motion of the cycle as waypoints. Every subsystem has a defined mechanism, every step of the cycle has a defined sequence, and every decision and rejected alternative is written down in 05-design-decisions.md. A first parametric CAD exists under cad/ (CadQuery), with STEP exports of the whole machine and the sub-assemblies, STL files of the first printed parts, and a collision checker that sweeps the complete cycle; it passes with zero intersections at 20 mm / 5° sampling. Nothing has been bought, cut or printed. There is no machine code yet.

The machine, in its final concept form: a 24-slot carousel magazine with records standing as spokes; a plywood box frame carrying an XYZ gantry on V-slot with a rotary wrist; a single vacuum cup on the label as the gripper, with a camera and a finger-lift fork on the same wrist; a passive ring rest for the side-B flip and the label photos; the Omnitronic DD 3120 as the deck, worked through its remote start/stop jack, its 33/45 buttons and its cue lever; a second camera and a 50 Hz LED strobe facing the headshell; Klipper on a printer mainboard for motion, a Raspberry Pi 4B for orchestration, vision, the web interface and recording through the Focusrite Scarlett. No brush; records are cleaned by hand before loading. No automatic recovery from a skip; the arm lifts, the platter stops, and the machine waits.

Decisions taken during the review, in order

The stacking changer was rejected for distortion; a gantry was chosen over an arm; the rim gripper gave way to a vacuum cup on the label so that 10”, 7” and shaped records work; the linear infeed and outfeed racks gave way to a round magazine with the record returning to its own slot; the wrist axis turned to X so the cup approaches a spoke along Y; the flip became a passive ring rest off the centreline; the Z tower became a moving column; the fork moved onto the wrist opposite the cup; the label camera moved onto the wrist and the deck camera down to platter height facing the headshell; the deck’s own cue lever, worked by a servo, took over all lifting, with the platter stopped for every placement and removal; the servo bracket gained an end-stop pin so the stylus can never reach the label; speed is set by the deck’s buttons, not by resampling, because of RIAA; a crystal-timed LED strobe measures platter speed on any deck; the aluminium frame became plywood with V-slot beams; the lazy susan became a roller ring of 608 bearings; the brush module was dropped; an automatic turntable was rejected because of locked grooves, inside-out sides and non-standard start and end positions; V-slot replaced linear rails on X and Y; a used printer became the intended parts source; the deck’s start/stop jack and speed buttons are switched by the Conrad USB relay card already on hand; the MIMXRT1010-EVK was ruled out as a Klipper MCU.

Already on hand

The Omnitronic DD 3120 (and a Stanton T.92 USB as spare), the Focusrite Scarlett, the Conrad Components 393905 USB relay card, an Ortofon DJ S cartridge, two Raspberry Pi 4B rev 1.1 / 2 GB with supplies and cards, an external USB 3.0 SSD, a self-powered USB 3.0 hub, a Logitech C270 and a 1080p USB webcam, and the 3D printer. Not yet: the Pi camera, motors, extrusion, a controller board. The full list with where each item goes is in 08-assembly-instructions.md.

What to buy and do first

The order below front-loads the things that could still change the design, so that nothing expensive is bought on an assumption.

First, measure the DD 3120 with a ruler and record the numbers in 01-design-specification.md: spindle to arm pivot, pivot to arm rest, the cue lever’s position, travel and force, the lever’s height above the plinth, the finger lift’s shape. Check the remote jack’s behaviour (held or toggle) with a paper clip, measure the voltage across the 33 and 45 switches, find out what the pitch output carries, and swap the felt slipmat for a rubber or cork mat.

Second, buy the 3D printer, since it is needed for everything after this point, and then a used donor printer (CR-10 class preferred) for motors, PSU, wheels, belts and a possible controller board.

Third, print and test the three parts that decide the geometry before any frame exists: the finger-lift fork on a hand-held handle against the real headshell; the vacuum cup bracket with a hand pump against 12”, 10”, 7” and picture-disc labels; and three carousel combs with the hub, to confirm the 6.5 cm gap takes the wrist assembly and that a 12”, a 10” and a 7” each roll to the apex of the V. A Raspberry Pi with one camera can be set up in parallel to prove hole and groove-band detection on a record lying on a table.

Fourth, detail the CAD: put the measured deck numbers into cad/params.py, rerun the collision sweep, then turn the remaining printed parts from envelopes into print-ready parts in the order the build needs them (wrist and cup end, carousel hub and combs, Z carriage, station, cue bracket).

Fifth, the software, which can begin before the machine is complete: the Klipper configuration and macros, the orchestrator’s state machine and motion planner (the same one the concept model uses), the vision routines, and the web interface with the batch manifest. The step-through mode of the web interface is the commissioning tool.

What the CAD changed

Building the CAD and sweeping the cycle changed four numbers and one rule against the concept: the frame is 86 cm wide instead of 80, the finger-lift fork is 55 mm long instead of 100, the end-stop pin stands 45 mm from the arm pivot instead of 60, the wrist camera sits 110 mm up the outer side of the arm and no longer looks at records inside the carousel, and the carry to the station swings the record to vertical before moving in Y. All are in the specification and the decision log.

Repository

main is the trunk and every change reaches it through a pull request on its own branch; CI runs ruff, markdownlint and the collision sweep on each one. A v* release tag publishes the documentation site. The workflow is written down in .claude/CLAUDE.md.

Since 6 September

The sourcing pass of 10 September priced every line of the bill of materials against live German shops and corrected it: the cue-lever servo is an MG996R on the printed pusher rod, the vacuum sensor is an Adafruit MPRLS, the solenoid valve has to be direct-acting, and Motedis is out because it carries no V-slot. The machine runs on a Raspberry Pi 4B already on hand, which fixed one CSI port and put a USB webcam on the wrist. A consistency check against the CAD then found the concept’s 80 cm frame surviving in three cut lengths, one plywood sheet where two are needed, no 12 V supply for three 12 V parts, and a Y travel of 63 cm where the concept said 45. 08-assembly-instructions.md came out of that, with every cable’s routed length.

Three decisions were taken on 14 September and are in 05-design-decisions.md: the electronics sit on the frame rather than in a box; the ring rest is 100 mm in mean diameter at the label’s edge with an O-ring on top; and the grip check lives in the orchestrator, on the MPRLS alone. The collision sweep after the geometry changes reports 831 samples and 0 collisions. Nothing is left in 06-open-questions.md that is a decision rather than a measurement.

The carousel then learned to hold 10” and 7” records, which the concept had promised and the CAD had never delivered: the rim ring is gone and each comb’s slot floor is a V with its apex at the pick radius, so every size rolls to the same centre line and is picked at its own height; the planner and the collision sweep take the size as a parameter. The sweep found the wrist hub and the column’s foot below a 12” neighbour’s edge at a 7” pick, so a 7” must have a 7”, a 10” or nothing in the slot on its front side, a rule the manifest editor will enforce. Shaped and off-centre discs, which have no round edge to roll on, are placed on the platter by hand from a “by hand” line in the manifest.

The electronics, the three cable chains and every cable and hose run are now in the CAD as well, at the places 08-assembly-instructions.md gives them, and the documents carry views rendered from the model. Drawing them moved the X motor to the rear end bracket beside the X chain and stood the Z chain above the guide block instead of hanging it beside the column. The web viewer and the renders now carry all three record sizes: the carousel holds a mixed load, the viewer plays the cycle for whichever size is selected, and 02-operating-cycle.md shows the cycle as an animation rendered from the model. Still nothing has been bought, cut or printed; the order of work above stands.