Good day everyone!
@dc42 I wold like to add new kinematics to the Duet3D ecosystem.
Later If everything works out and it is possible, it would be nice if we get the number 511 for our kinematics.
I have already read the post https://github.com/Duet3D/RepRapFirmware/wiki/Adding-New-Kinematics
I want to warn you right away that I am not a software developer. Also in the design being developed there are a number of points that I personally have not seen before in application to 3D-printers. In this regard, I had several questions, which I hope to sort out with the help of colleagues from the forum. Therefore, I thank you in advance for your patience and assistance.
============ Story mode activated ============
First of all, about the idea itself. Back in 2014, when I first made my first 3D-printer and was looking for alternatives to Bowden extruders, I came across an interesting approach, well described and illustrated here: https://pseudotron.ist-dein-freund.de/ideas-for-an-alternative-to-bowden-extruders.html
As follows from the article, to remove the extruder motor from the working area of ββthe 3D-printer, it was proposed to use a differential on the leadscrews, and then the idea was theoretically transferred to belts.
At that time, the idea was shelved, and a couple of years ago my colleague and I (both instrument-making engineers by education) remembered it again and it dawned on us how to implement it. A couple of days later, 3D models appeared, and a week later we assembled a real-life prototype.
Then, for a long time, we were looking for very long closed belts (we even tried to splice non-closed belts, which gave a result, but not very reliable).
And now, six months ago, a seller appeared on AliExpress who had closed belts of the length we needed. Having purchased them, we rebuilt the prototype for new belt sizes and now we have a fully mechanically and electrically working prototype.
Its main feature is that absolutely all motors are placed outside the working area of ββthe printer, because we want to achieve printing with high-temperature plastics (do not blame us for using belts, we are solving the issue)
============ Math mode activated ============
We compiled kinematic equations and tested them on a prototype by controlling GCODEs (for this we took Cartesian kinematics with 5 axes, where one of them is the Z axis). So we can say that the equations are correct (up to a sign):
E1=-A-C+X
E2=-B-C-Y
X=B-D
Y=A-C
Having solved these equations, we obtain:
A=0.5*X+0.5*Y-0.5*E2
B=0.5*X-0.5*Y-0.5*E1
C=0.5*X-0.5*Y-0.5*E2
D=-0.5*X-0.5*Y-0.5*E1
============ Question mode activated ============
While trying to view the kinematics files, I did not manage to understand everything, so there are a couple of questions:
- Is it possible within the existing kinematics of the Duet3d ecosystem to control the extruder using a differential approach?
- In general, it looks the same to me as CoreXY, except that an extruder is used instead of the second axis of motion. As a result, we get something like CoreXE1, CoreYE2, but combined into one system of four motors. Am I thinking in the right direction?
So I'm trying to figure out which side to approach the software part of adding kinematics. If the current assumptions are correct and there are no fundamental restrictions, then I take the ZLeadscrewKinematics class as a basis and from it I try to write this CoreXE1-YE2 miracle
============ P.S. ============
Colleagues, if you are interested in photos / videos
prototype while running - let me know. I will photograph and send. Because to understand the operation of this device by looking at the rotation of motors and belts is another charge for the brain
============ P.P.S. ============
I would also like to express my gratitude to everyone who took part in the development of the Duet3d ecosystem. I think the project is very cool, convenient and necessary. And not only as a consumer, but also as an engineer who values ββmodular solutions and data buses