-
1Manufacturing and building instructions
Manufacturing Parts
The entire machine is made of aluminum plates and profiles with drilled holes, with no complex parts requiring machine tools like a milling machine or lathe. All components can be ordered pre-cut to size and drilled with the tools you have available.
For positioning the drill holes, I used traditional methods with a compass, a graduated ruler, a square, and carbide scribers. A reference edge and origin point are chosen, and axes are marked out from this point.
Precision is important but manageable. When drilling, I typically add 0.5mm to the bolt diameter (e.g., M6 = 6.5mm) and aim for at least 0.5mm accuracy when marking.
Once marked, the drill hole locations are center-punched.
The countersinking for bolts is done using countersinking tools. For M8 bolt countersinks, a good drill and ideally a drill press are required.
Assembly and Adjustment
I drill the screw passages for the rails and bearing blocks at the last stage, using a dial gauge to ensure the rails are perfectly parallel.
The principle is straightforward: I drill and mount the first rail parallel to one side of the frame, clamp the second rail, and ensure it is parallel to the first using a dial gauge. Once the position is perfect, I center-punch the locations with an adjusted-diameter carbide scribe.
The rest of the assembly is straightforward. Once the machine is assembled, it needs to be adjusted.
-
2Fine adjustment of geometry
Fine-tuning is crucial as it determines the precision of machining geometry.
It also impacts surface finish quality, noise, and the lifespan of cutting tools.
Adjustment with shims or by rotation
Connections between two elements typically involve planar contact with screws. There are two types of adjustments: rotation of parts by pivoting them against each other and the use of shims.
Shims can be a nightmare if you don’t have a set of sheets with different thicknesses. That’s why I favored rotational adjustments during the design phase.
Degrees of freedom
I define a degree of freedom as the possibility of rotational adjustment around an axis. The ideal structure minimizes the degrees of freedom and reduces the number of parts.
It’s also important that adjustments follow the machining XYZ coordinate system. Moreover, it’s far more practical for an adjustment to affect only one axis. If a rotational adjustment affects two axes, the process becomes more complex and time-consuming.
On this milling machine, there are four degrees of freedom:
- Perpendicularity of the X and Y axes
- Perpendicularity of the X and Z axes
- Perpendicularity of the Y and Z axes
- Coaxiality of the Z-axis with the spindle axis
Tooling
I use a dial indicator with a magnetic base and a DIY dial indicator holder. You can make your own; it doesn’t require precision.
Adjustment process
- Red: screws to tighten/loosen. Always remember to work in rotation; one screw should always be tighter than the others.
- Yellow: the movement to apply. The movement should be as long as possible with minimal dial indicator displacement. Less than 0.05 over 50–100 mm provides excellent precision.
- Green: control points.
-
Place a precision square on the table and adjust its position so one edge is // to the X-axis.
-
Move the dial indicator along the Y-axis and adjust the Y-axis. => The X-axis is now perpendicular to the Y-axis.
-
Materialize the spindle’s Z-axis by inserting a pin or drill bit. Check the spindle’s concentricity (it’s not always perfect).
-
Adjust the // between the spindle axis and the Z-axis rails. => The Z-axis rails are now // to the spindle’s Z-axis.
-
In the final step, the perpendicularity of the X and Z axes relative to Z is adjusted simultaneously. Mount the dial indicator holder in the spindle. => The machine is now perfectly aligned along all axes.
-
3Stepper Packpack
The mechanical part being more or less finalized, I had time to think about the electrical part and the control system.
The goal is to get rid of the large plastic junction box and minimize cables as much as possible while keeping it readable and maintainable.
First step: wiring to the motor. I opted for an integrated closed-loop driver. The driver receives the step/dir signals from the controller and handles the rest.
The driver can communicate via RS485 for programming or feedback (position, current, etc.). I plan to use RS485 later, so it needs to be wired now.
I also route the MIN and MAX limit switch signals through the same cable.
In the end, there are 9 conductors for the signals reaching the motor. I use a DB9 connector, integrated into a small enclosure mounted on the motor.
-
4Controller and wiring
In the photos of the first versions, there is a large plastic junction box that houses the controller. It’s not practical and looks ugly. So I decided to redo everything from the power supply to the motor.
The power supply is a 24V 600W unit. I added a battery charge controller that provides real-time current and power readings, which is always useful for monitoring machining conditions.
Inside the controller box, I added a voltage regulator to control the current, as I don’t want the 25A from the power supply to dissipate in a miswired inductive sensor. I set it to 1A and 12V.
The controller is no longer on the machine but on the table next to the power supply. This makes the indicator lights clearly visible and allows for plenty of buttons for the most frequently used commands (Homing, Probe…).
The FluidNC board I chose is a well-designed German board with numerous inputs and outputs. Each input and output has LEDs, and the voltage and switch type (NPN or PNP) can be configured via dip switches.
A Raspberry Pi running CNCjs provides visualization and better Wi-Fi communication. Additionally, I can easily add a keyboard for other macros.
Another key feature of this board is that it consists of a motherboard with an ESP32, which can be programmed to handle functions not supported by the main controller.
The inputs and outputs to the machine are connected via a single DB25 cable.
On the machine, I kept a smaller junction box that routes power and commands to the motors, switches, spindle, and various accessories such as the probe.
While I was at it, I also redesigned the pendant in a slim version with a more precise encoder.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.