Segment free delta motion in custom kinematics class
I'm working on a custom delta printer with custom kinematics and I've created a copy of LinearDeltaKinematics that I'm modifying. For the most part it works great, but I've noticed that in various places the delta printer movement is hard-coded into the firmware. Because I'm not using KinematicsType 3 this special movement doesn't happen. Because of this my custom delta moves in non-linear paths.
Is it possible to get a solution to this? I think I could get around it by replacing the standard LinearDelta class with mine, but that's not ideal.
I saw that there have been a lot of tweaks and updates to the kinematics classes lately, so now seemed like a good time to bring this up.
What is different about your custom delta kinematics? Would it make sense to generalise the standard one to cover it?
I think the only place now where the kinematics is hard coded is at line 273 in DDA.cpp where it calls IsDeltaMode(). You could change IsDeltaMode() to return true for your kinematics too.
I doubt that it would make sense to generalize the delta kinematics to my case. I'm adding an extra cartesian Z axis to the system, much like the reserved kinematics I see (Hopefully it goes somewhere this time around). I was able to change the IsDeltaMode() function to return true for my mode, but now the system stutters and doesn't finish any X or Y movements. Z movements work fine, and the extra axis works too.
I should also mention that I'm on version 2.02 right now, if that affects this at all. I will update to 2.03 releases, but I haven't yet.
The 2.03beta release has a lot of delta-specific code in the DDA class removed compared to 2.02. It also supports delta machines with more than 3 towers, see https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareDeltaPrinter#Section_Adding_additional_towers_to_carry_flying_extruders.
@dc42 Awesome. I'll try that out and report back.