@Michael
Thanks for sharing that insight. I goes to show just how far manufacturer go to reduce moving mass as much as possible. It's simply the single most important aspect of a moving system and also the sole reason why a complicated thing like CoreXY exists.
@Developer Algo
> Its about 7.2 to 8.0 lbs with everything on it.
That's about 3.5kg, quite hefty...
> At the moment , i am looking to get as much speed as possible with as little work as possible.
Maybe you can also find something in between. I see you have a large coil of white cable siting on top of your head assembly and a black coil on top of the drag chain. Do they really need to be there or can you eliminate them by spending like 10-20 minutes on this issue? I think that would be worth it.
> What are you using in terms of GCodeAsyncDriver Motion Controller type ModeratedConstantAcceleration or Simulated3rdOrderAcceleration ? and does it make a difference ?
I'm using the non-async GCodeDriver and ModeratedConstantAcceleration. I want to experiment with the more advanced stuff at some point but right now it's good enough and other things have priority. Another reason is that those two allow for quite compact and easily readable logs. I already achieved a leap in performance from the stock config by disabling ToolpathFeedRate and tune the individual axes.
> How fast can we run OpenPNP if everything is optimized?
Much much faster than a PnP machine can move. Your primary constraint will always be the motion system. If you optimize it heavily, vision might become the next bottleneck. But vision can be disabled or upgraded to fly by vision and just like that are you back to being constrained by the motion system again. If you want specific numbers, test camera settling. This will show you, how long image processing takes. This is likely the most computationally intensive (recurring) task and I think my low power mini PC does this in 5ms. Lets be generous and allocate another 5ms for all the rest and you end up with 10ms compute time per placement. In other words: unless your machine can do 100k+ CPH, OpenPnP ist just leisurely strolling along.
> if we can collectively answer those questions then i believe that will help a lot of the new and advanced users
I disagree. New users should focus on understanding the system. If they want speed without understanding, a professional machine is the way to go. Advanced users should be able to mostly answer those questions themselves, otherwise they shouldn't be considered advanced. Also there is no global answer as the design is equally important because a = F/m still holds. You can either brute the hell out of it by increasing the force or you can put thought into lowering the mass. To put it in other words: if you gave me all your off the shelf parts and would tell me to build the fastest machine possible, it would probably be more than 2x faster than yours.
> i just started my tuning using LIS3DH
Do you actually understand how to tune a motion system using an accelerometer or are you doing this because it sound complicated and therefore must be something good? Or is this an automatic procedure?
Having said all this, it seems to me that you are a bit stuck and don't really know (or dare) how to take your machine to it's limits. Let me compile for you a list of steps to follow. Keep in mind: I have no experience with machines as powerful as yours and these methods might be unsuitable, do at your own risk. Other users may speak up and correct me. To tune my much lower power machine with open loop steppers, I did the following:
- Make sure the machine is in good shape mechanically. For you this means to make sure all your cable coils sit tight as they may come lose. Also you need to get rid of this dangling orange cable. It applies an uneven and unpredictable force to the head and additionally creates an unnecessary torque which leads to unreliable and unrepeatable results.
- Switch to ConstantModeratedAcceleration or start with jerk disabled, as Jan suggested. Two rates per axis are enough of a challenge for now.
- Start with the x axis and move it from endpoint to endpoint using the soft stops. If you want a bit of safety margin, you can set the soft stops a bit short of the hard stops. But feed rate can only be tuned on long enough travels.
- Because your feed rate is soooo low, increase it until the machine accelerates and decelerates a substantial part of the distance.
- Increase acceleration until the machine makes a strange noise and stops midway through the move. This means you have exceeded the limits and your steppers have lost steps. This might be quite violent with your machine but unless you have closed loop control, I'm unaware of another way to test this limit.
- Take note of this noise, because it is very important. Do the following step whenever you ever hear it again.
- Since the machine is no more where the controller and OpenPnP think it is, you must immediately rehome the machine. Otherwise you might run into hard stops and damage something. Do this step every time you have lost steps.
- If you think you heard something that sounded like losing steps but it doesn't seem obvious, you can also move to the homing fiducial and check if the coordinates are still spot on. If not, rehome.
- Now you have found the acceleration limit. Turn it back a bit until the machine can handle it again. Now increase feed rate.
- If you loose steps again, try reducing acceleration a bit. Try to find the maximum value the machine can tolerate until it loses steps. Take not of these values, as they are the absolute limit of what is possible.
- If at some point increasing rates doesn't change anything anymore, your are likely running against a rate limit in the controller. Increase it and continue.
- If possible, you can also increase motor drive current to increase torque. Take care to not overstrain divers and motors and check their temperature every now and then.
- You are of course free to stop at any point if the mechanical integrity of your machine, the table it stands on or your house is at risk.
- Move on to the y axis and do the same. Because your y axis is asymmetric (drive only on one side), do it once with the head close to the drive and once with the head furthest from the drive.
- If you have found the limits for individual motions, start moving diagonally. You might start losing steps again. Reduce the rates one at a time and figure out which one is the limit and tune it in a way the machine can handle it again.
- Move diagonally with the x distance being larger than the y distance. This is to strain both axes to their limit, which only happens if the presumably faster x axis travels further.
- At this point your rates should be quite stable. For my machine I found a weak spot when jogging multiple 10mm segments in quick succession. Play around and try to make the machine loose steps again and reduce rates accordingly.
- Take note of the rates you found, they should be your baseline. I expect them to be 500-1000m/s and 5000-10000m/s².
- If you feel confident, run a job and be prepared to stop the machine if you hear it lost steps.
- If you feel les confident, turn all rated down by maybe 20%. If you have done all the above, this should be very safe.
- If you want more, start looking at how the camera settles (as described in the wiki) or use your accelerometer. At this point you can also bring jerk into the game. Switch to a motion control type that allows jerk limit and use it to reduce ringing by following Jan's suggestion.
- After using the machine like this for a while, your PCB tower on your head might start to come apart. Actually, I fully expect it to break rather quickly if you run the machine close to its capabilities. Be prepared to hit emergency stop, in case this testimony of bad mechanical design should manifest.
Because this is all very abstract, I found a video describing this process
here, just to get you a look and feel for it. It's a CNC with another control software, but the process stays the same.