Hi Linux CNC forum,
I'm building on a small CNC for over two years now. Unfortunately, I've been running in some issues while milling circular pockets.
machine specs:
Traj XYZA
y-axis 1190 mm max travel, 20 mm ballscrew with 10 mm pitch, two 750W AC servo (HLTNC)
x-axis 900 mm max travel, 20 mm ballscrew with 10 mm pitch, one 750W AC servo (HLTNC)
z-axis 185 mm max travel, 16 mm ballscrew with 5 mm pitch, high torque nema 34 stepper
spindle - 2,2 kw rattmotor air cooled
Brain of the operation: raspberry pi 4b+ using a parallel port hat and a 5 axis breakout board
I'm running the premanufactured PI4 optimized Debian Bookworm image.
Y-axis settings as follows:
max_velocity = 5000 mm/min
max_acc = 20000 mm/min2
min limit = 0 mm
max limit = 1190 mm
stepgen_maxaccel = 40000
scale = 10 steps/mm -> (not sure why i set this to 10 -> 200 steps/rev and 10 mm pitch shall result in 20 steps/mm)
FERROR = 1
Min_Ferror = 0.25
The issue:
See attachment for further details
arcs/circular shapes are for any reason shifted in XY - direction, the error occurs above 250 mm/min and is almost unchanged between 1000-5000 mm/min.
What did i test up to now:
- Change base_period up and down -> the servos are set to 200 "steps"/rev, 10 mm pitch -> thus 20 steps/mm resulting in below 2000 pulses per second on one axis. Base_period is set to 100k, shall be fine? Changing the base_period to 40k didn't change anything as well as increasing the base period to 150k.
- Change max_acc to 4x max_velocity and stepgen to 2x max_acc -> didn't change anything
- check mechanical stiffness and backlash -> everything feels tight and rock solid, the linear guide rails are 20x30mm using very massiv long carriers.
- kill all unnecessary PIDs on the debain system in order to reduce latency -> didn't change anything
added the .hal and .ini file as attachments.
Any hint or recommendation on how to improve this would be appreciated!
Thank you!
Michael