Support for dual carriage CoreXY with shared x-axis
-
Hi, I’m building a corexy printer with two carriages sharing the x-axis and four steppers for xy drive much like the project described over at the reprap forum:
http://forums.reprap.org/read.php?397,737863David, you expressed interest in supporting this kind if kinematics in that thread and discussed a bit about what would need doing in the firmware. I hope you still are interested in adding support for this? My project has progressed enough to be able to test it when its implemented.
A bit more about the project. Outer dimensions (without top enclosure mounted) are 7507501200mm built using 4040 alu extrusion, bed size 500500mm. I’m planning on an enclosed design and have put all steppers and electronics at the bottom. I’ll use two Zesty Nimbles for remote direct extruder drive and duet wifi + duex5 for controller board. I’m planning on a bed with three steppers using the upcoming true bed levelling feature.
The xy-axis is up and running, I have uploaded a short recording to youtube for anyone who is interested:
https://youtu.be/nfgzNGWNkbI -
I am currently reworking the kinematics code in RRF to make it more modular. When I have finished that, it should be straightforward to implement support for that configuration.
-
Sounds good, I’m excited to try it out!
-
Along similar lines would it be possible to control using Duet electronics, a dual x carriage corexy, with one corexy mechanism, rather than the dual mechanisms in Lars' design, with a second x-carriage attached to it in a more conventional cartesian style with a motor stacked onto the axis? X and Y moves for the first head would be as a standard corexy, but for the second head A, B and C motors (as per diagram) would have to move.
I have no idea yet if such a mechanism is practical but it seems less complex than a dual corexy.
I figure the kinematics for the second carriage would involve parking the 1st (corexy) carriage at the left for example, then using the A and B motors to control the Y position of the x axis, with the third (C) motor controlling the x position of the 2nd carriage.
I'd have to figure out the belt paths so that the A and B belts could pass through the 2nd carriage.
The x axis would still be constrained by the balanced tension of the A and B belts whilst the 2nd carriage moved back and to, not inducing any unwanted forces on the whole assembly.
Sorry for back-of-fag-packet diagram. -
Adding a stepper to the gantry might be a simple way to add an extra hotend to an existing printer. Using four steppers in a dual corexy with shared gantry do in my opinion have a few advantages even through you could argue its more complex. You get more effective belt width moving the y-grantry. There will be more torque available for moving the y-gantry. If the active hotend moves 45degres, only one stepper will drive it in a single corexy setup. In the configuration discussed here there will be 3 motors as the inactive carriage will move only in y parked at one end of x. Adding a stepper to the gantry will add a lot of weight to the gantry, especially if you use bowden or remote drives for extruders.
-
Btw, would not the asymmetric nature of mass of the stepper one one side of the gantry cause problems? Maybe cause biding on y movements?
-
@DjDemonD: I would recommend considering a design with a single carriage with dual extruders picked up with electromagnetics instead.
-
I am just curious and I think the parallel discussion on reprap forum says it all.
Its not that I don't admire the effort and ingenuity to make a dual corexy mechanism, I am just interested to see if it can be done quicker and cheaper, and whether doing so will result in much lower quality or utility?
Talking on the other thread about a race between you and prototypical to make the first IDEX corexy. All I need is a redesigned R y-slide, a nema 14 motor, a 12H rail carriage and some belts and most critically a little help from DC42 with getting the firmware to move the right motors when the second carriage is active.
-
Firmware version 1.19 has a refactored movement system that makes adding new kinematics much easier than before. But I need to get a new beta out with some further improvements, then I have some OEM firmware requests to attend to. After that I should be able to look at this again. Or, if you have some familiarity with C++ programming, you could do it yourself, and I will provide guidance.
-
Thanks David. I will wait, I'm not a programmer. Though I might be underestimating the difficulty, in my proposed scheme I presume it would just be using the corexy kinematics only in y-movement mode when the 2nd carriage was active, with x position determined by its own dedicated motor.
-
Talking on the other thread about a race between you and prototypical to make the first IDEX corexy. All I need is a redesigned R y-slide, a nema 14 motor, a 12H rail carriage and some belts and most critically a little help from DC42 with getting the firmware to move the right motors when the second carriage is active.
Damn, now I'll have to pay David not to implement your control scheme
Firmware version 1.19 has a refactored movement system that makes adding new kinematics much easier than before. But I need to get a new beta out with some further improvements, then I have some OEM firmware requests to attend to. After that I should be able to look at this again. Or, if you have some familiarity with C++ programming, you could do it yourself, and I will provide guidance.
Joking aside I might have a look at the code, although it was 15 years since I did much c/c++. Doing mostly java and a bit of javascript at work now days. But need to finish the bed design and build first so you might be supporting this kinematics before I get there
-
I was waiting for some components to arrive so I thought I give this feature a go.
The implementation is pretty much done, I will put the final touches on it when David has implemented “invisible axis” and reworked homing. Once the Is done I’ll make a pull request to get it included into Davids version.Everything looks to be working, a short clip of my yet unfinished printer homing and starting to print: https://youtu.be/74-8pjNVYNI
-
Nice,
Do you think independant xyz carriages will be possible after digging into the code?
-
Adding corexyz was pretty easy, David have done some work to make that kind of task simple. It would be easy to define a kinematics with two independent carriages (xyz and uvw) but I guess you would need to create a new slicer to use them concurrently…
-
Registered here just for this thread
Lars, any chance sharing your code?
Been looking through the Repetier files and cannot for the life of me find the section for coreXY to modify for coreXYU.Just got my 7" PanelDue to flash, and am working on flashing the arduino Due (mine is a RADDS+Due, sorry not Duet).
Cheers,
Tom
AKA Hlidskjalf maker -
Hiya Tom, I posted on your reprap thread with a link to my github repo, hope you can make it work for you!
-
Got it,
Thanks man.
Your rig is looking pretty sweet, love the youtube vid! -
I see dc42 just released 1.19beta9 on GitHub
-
Yep, will give it a go this evening. Also excited to start testing bed levelling using multiple independent Z motors. Hope you have solved your controller issues Tom and can start testing your printer!