Interpolation accuracy with Delta ASD-B3 EtherCAT servo drives

  • byunchov
  • byunchov's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
22 May 2025 15:58 #328921 by byunchov
Greetings fellow machinists!
Back in 2023, I did a reconstruction of my old CNC router for my woodshop. I have decided to use EherCAT hardware as my main communication interface tween LCNC and the main build components. A friend that makes CNC machinery advised me that I use Delta servo system, as it is the best option for my budget. I have decided to go for Delta ASD-B3 drives with 1kW motors. The setup in LCNC for the drives was rather easy. I had to use generic driver for lcec and couple it with dominik’s hal-cia402 component.

Everything seemed to work fine until last week when I have noticed that the circles turn out to be slightly oval. This is especially prominent on semi- and quarter-circles. I see this effect while doing interpolation in XY, XZ and YZ. The error seems to be of the same size and in the same position in the 3 planes.

I have also noticed that when I make a slot it is slightly wider than the tool diameter and slightly shorter than programmed. What is more the depth pattern is visible and alternating on the sides. This is depending on the cut direction. I usually use ramp plunging along the whole length of the slot and this effect is not visible then but when doing single line slot milling with small ramp plunge then the score lines are visible.I have tried few things like tuning the servo drives, changing LCNC configuration parameters like axis acceleration, speed; arc blending settings in [TRAJ] section but nothing seems to work. I have tried both slow and fast work feeds but the effect is prominent no matter the speed.

Something interesting I have found is that when squaring a piece of wood (hardwood like oak, beech or soft materials like pine, MDF, chipboard) one corner is seemingly sharp and the opposing corner is rounded and then this is mirrored diagonally. The radius seems to around 1mm. When squaring I have created a subroutine that uses arcs at corners so that the tool is not chipping the piece at the corners and sometimes to avoid burns.

Y- and Z-axis are ball screw with 5 and 10 mm pitch and are belt driven with 1:1 ratio. X-axis is helical rack and pinion with 1:10 gearbox. I have checked for mechanical issues and none is present or apparent. The gantry and the axes in general are square, as far as I can measure. X-axis is 4100 mm of travel but along that distance, I get like 0.02mm deviation from the zero point. Y-axis is around 1600 mm and Z-axis is around 560 mm. I have enabled E-Gear option in the servo drives as 10000 PPR.

I have attached pictures of the interpolation errors I get. I am open to discussion of what might be the cause of this - communication lag, drive parameters, LCNC config. I will also attach my INI and EC configuration files.
Attachments:

Please Log in or Create an account to join the conversation.

More
23 May 2025 13:28 #328980 by langdons
Belts and gearboxes do introduce backlash.

No encoder is exactly precise.

Please Log in or Create an account to join the conversation.

More
23 May 2025 14:25 #328983 by PCW
If it was working and then changed I would expect that's more likely
to be a mechanical issue (loose coupling etc).

Please Log in or Create an account to join the conversation.

More
23 May 2025 15:13 #328987 by langdons
Belts do wear and stretch.

Make sure you grease ballscrews, bearings, etc. so they don't wear down over time, which will mess with accuracy.

Grease also makes the machine move more smoothly.

Please Log in or Create an account to join the conversation.

More
23 May 2025 15:17 #328988 by langdons
Also, gears could wear differently in one direction depending on friction and how level your machine is.

(e.g. moving a heavy z axis will cause more wear in one direction than the other, and the uneven wear might mess with stuff.)

Please Log in or Create an account to join the conversation.

  • byunchov
  • byunchov's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
23 May 2025 19:11 #328999 by byunchov
Thank you guys! 
I have figured out what was causing the skewing and just finished fine tuning the system. Turned out that I had to tune the MAX_ACCELERATION settings for all axes. I have set P1.034-35 parameters in the servo drives as per the intended acceleration and deceleration times for the S-curve speed command. Turned out that this was not necessary and just reduced the time to the default value. The calculation for the desired S-curve in LinuxCNC per axis is quite easy - MAX_VELOCITY / (T_acc + T_dec).
Never crossed my mind that something so simple would be so hard to find. I did check the whole mechanical part - belt tension, rack and pinion wear. Nope, everything was in tolerance. The pinion did sweat me a bit because 4680mm are hard to measure. 
Something puzzling is that when I cut a square 50mm the dimension along the Y axis is 50.4mm but when I check with the dial indicator in incremental jog mode the steps are exactly 1,5,10 and 15mm. The scale of the axis seems correct. What could be the reason for that? Is there a way to compensate for it without tinkering with the scale? 

Best regards, 
Bozhidar 
The following user(s) said Thank You: routerman22

Please Log in or Create an account to join the conversation.

Time to create page: 0.134 seconds
Powered by Kunena Forum