The Laser4DIY XY Table is licensed under the CERN-OHL-P v2.

Parts List

Off-the-shelf parts

QtyPart NamePart LinkComments
28mm Metric Acme Lead Screw
2Anti-Backlash Nut Block for 8mm Metric Acme Lead ratrig.comSKU 1055; set includes M5 lock nuts
4V-Slot 20x20mm
8Xtreme Solid V Wheel ratrig.comSKU 465
4Aluminum Spacers - ratrig.comSKU 90
4Eccentric Spacer - ratrig.comSKU 226
4Ball Bearing 688Z ratrig.comSKU 780
48mm Shim (12x8x1mm)  ratrig.comSKU 835
4Lock Collar - ratrig.comSKU 840
9V-Slot T-Nut
4M5 x 20mm Low Profile 750-pack
8M5 x 22mm Low Profile Screwaliexpress.comfor mounting wheels
8M5 Nut Low ratrig.comSKU 181; for mounting wheels
5M5 x 8mm Button Head Screw

11M3 x 8mm Button Head Screw

4M3 x 5mm Button Head Screw
For screwing SledPlate to BedPlate
10M3 Nut

6M2 x 6mm Screw
for attaching the "ruler"
4M2 x 10mm Screw

10M2 Nut

2M2 Washer

8Self Tapping Screw ratrig.comSKU 720
3Hex Standoff M3 (female/male) 30mm
For mounting one of the stepper motors
2NEMA 17 Stepper Motor Use pancake motor to save space (mandatory to fit into Laser4DIY enclosure)
2GT2 pulley 20 5mm
2GT2 pulley 20 8mm 
1GT2 timing belt 6 mm closed loop 128
1GT2 timing belt 6 mm closed loop 250
2Micro Switch
Panasonic AV32143AT or similar

Custom parts

QtyPart NameProcessMaterialFile
2StandardEndPlate_BeamBracketLaser cuttingAluminium (AlMg3), 2mm2mm_ALL_with_tabs.dxf
2StandardEndPlate_InnerPartLaser cuttingAluminium (AlMg3), 2mm

     - " -

2StandardEndPlate_OuterPartLaser cuttingAluminium (AlMg3), 2mm     - " -
1EndPlateLower_BeamBracketLaser cuttingAluminium (AlMg3), 2mm     - " -
1EndPlateLower_InnerPartLaser cuttingAluminium (AlMg3), 2mm     - " -
1EndPlateLower_OuterPartLaser cuttingAluminium (AlMg3), 2mm     - " -
1EndPlateUpper_BeamBracketLaser cuttingAluminium (AlMg3), 2mm     - " -
1EndPlateUpper_InnerPartLaser cuttingAluminium (AlMg3), 2mm     - " -
1EndPlateUpper_OuterPartLaser cuttingAluminium (AlMg3), 2mm     - " -
1BedRulerLaser cuttingAluminium (AlMg3), 2mm     - " -
2SledPlateLaser cuttingAluminium (AlMg3), 3mm3mm_ALL_with_tabs.dxf
1BedPlateLaser cuttingAluminium (AlMg3), 3mm     - " -
2SledSpacerLaser cuttingMDF, 5mm5mm_sledspacer.dxfCould also be aluminium
1Microswitch Bracket3d printingany plastic e.g. PLAMicroswitchBracket.stl
1Microswitch Bracket 23d printingany plastic e.g. PLAMicroswitchBracket.2stl

The "end plates" are made of 3 layers of lasercut aluminium, which are aligned and held together by M3 screws. It is also possible to have them CNC milled as one piece, but we chose laser cutting as it is much cheaper to get them produced this way.

Driver Electronics

QtyPart NamePart LinkComment
1Nucleo STM32F446 (STM32F446RET6)


1CNC Shield (for Arduino Uno)

2SilentStepStick TMC2100 stepper driver
other, compatible stepper drivers can be used, too
14Dupont connector female

You need 2 x 4pin connectors for the stepper motors and 3 x 2pin connectors for the endstops and laser enable signal.
We simply used jumper cables and extended/soldered them to the cables coming from the steppers/endstops.

Overall Size

The overall size of the table is larger than its components, as the table moves beyond their extents. The following drawing shows how much space is needed. The aluminum extrusions of the lower rail (vertical in the drawing) are the ones that should be fixed e.g. to a mounting plate using brackets or V-slot T-nuts.


  • Please see included STEP file where the individual parts go.
  • Start with assembling the "end plates". They are made of 3 layers of lasercut aluminium, which are aligned and held together by M3 screws and M3 on the inside. These screws and nuts are not included in the STEP.
  • The wheels (we need 8 for build) consist of 4 parts: The wheel itself, 2 ball bearings and a shim. The shim goes between the 2 ball bearings. The wheel package can contain an addition shim and a lock nut, which are NOT needed for the wheels. Also see wheel build video here:
  • The lasercut holes in the aluminium plates are often too small. Drill them out to have the right sizes so that the screws go through. The only exception are 4 holes in the bed plate:

    These holes need an M3 thread to be cut into. Use M3x5 screws to bolt the upper sled plate to the bed plate using these threaded holes.
  • There are different types of slot t-nuts: slide-in and drop-in types. The slide-in type can only be inserted from the ends of the profile. If you have these types, make sure you insert the t-nuts at the right places before screwing on the endplates, otherwise they cannot be inserted any more. There are 4 t-nuts in the bottom slots of the assembly, they are used to fix the table in the Laser4DIY device later. Make sure you add these t-nuts now too.
  • The wheels are attached with 6mm spacers, with standard spacers on one side and eccentric spacers on the other side of the sled. The eccentric spacers can be used to increase the force the wheels press onto the beams.
  • Make sure the motor orientation is correct, i.e. the cable connector is on the right side. See STEP file.
  • Wires: see the following diagram and photos


The CNC controller consists of a Nucleo STM32F446 board, a CNC shield and 2 TMC2100 SilentStepStick stepper driver boards.

  • The CNC shield is inserted into the Arduino connector of the Nucleo board
  • Pay attention to the two micro switches on the Nucleo board located under the CNC shield. Some Nucleo boards (all?) have quite tall caps on these switch, which touch the CNC shield and are therefore pressed down all the time! As one of the switches is the reset button this will prevent your board from functioning. To avoid this, remove the caps from the switch:

  • There should be no jumpers on the CNC shield
  • The SilentStepStick drivers are inserted into the CNC shield (for axis X and Y). Make sure, that the orientation is correct (see image below). A wrong orientation will destroy the driver.

Nucleo board with CNC shield and stepper drivers. In this picture the EN pin of the SilentStepStick drivers is on the top left, the GND pin is on the bottom right

Configuring the TMC2100 stepper drivers

Connecting XY table with CNC shield

FunctionCNC Shield LabelWiring
Stepper X4 wires to stepper, ordered of the pins is the same as described in TMC2100 data sheet
Stepper YY4 wires to stepper, ordered of the pins is the same as described in TMC2100 data sheet
Endstop XX+2 wires (signal + ground) to end switched, configured as normally-open
Endstop YY+2 wires (signal + ground) to end switched, configured as normally-open
Laser EnableZ+2 wires (signal + ground) to laser driver electronics


We are running an enhanced version of GRBL with the XY table, called GRBL-Advanced. It runs on a STM32F411RE / STM32F446RE Nucleo Board and offers backlash compensation to archive better precision.

You can find the Github repository with our fork here:


To configure GRBL Advanced, please see here: Configuring GRBL Advanced

We are using Lightburn to control the table in the Laser4DIY device. See Configuring Lightburn on how to set it up correctly.


We measured around 0,05mm of backlash for the XY table in both directions. But with the backlash compensation feature, some impressive results are archivable. Here is an example engraving done with our Laser4DIY machine:

Please note that letters are not a single line, the outlines are engraved.

Here is a microscope shot of an engraving with a font ~0.5mm high:

Copyright FabLab München e.V. 2021

This source describes Open Hardware and is licensed under the CERN-OHL-P v2

You may redistribute and modify this documentation and make products using it under the terms of the CERN-OHL-P v2 (https:/
Please see the CERN-OHL-P v2 for applicable conditions

  • No labels