A new trick with my CoreXYUV(AB)



  • Some of you might find this reasonably interesting https://www.youtube.com/watch?v=rOP9QYAlhZU



  • That's a crazy amount of tech you've built in.. love it!


  • Moderator

    @deckingman glad you came up with a workaround that works for you. Giving each pair of axes specific commands seems sensible.

    Ian



  • @droftarts said in A new trick with my CoreXYUV(AB):

    Giving each pair of axes specific commands seems sensible.

    Kind of sensible but a great deal of caution is required because it would be fairly easy to command a move for either the hot end gantry, or the extruder gantry, such that only one gantry moved. That could tear out the Bowden tubes and/or some of the cables that connect the two together.

    So all the homing files and user macros for things like nozzle wipe, had to be changed to use XYUVAB moves instead of just XY. I also need to change all the jog buttons on DWC to restrict individual axes to say 10mm max. I'll write macros to jog all axes simultaneously.


  • administrators

    Very nice!

    Are you using the attached Raspberry Pi now? If you are, then you could implement your Python script as an interceptor.



  • @dc42 said in A new trick with my CoreXYUV(AB):

    Very nice!

    Are you using the attache Raspberry Pi now? If you are, then you could implement your Python script as an interceptor.

    No. I've been too busy with other stuff to get myself up to speed with the RPi. So it's still bolted to the machine but otherwise not connected.

    That would certainly be a more elegant solution that post processing slicer generated gcodes, but that will have to wait until I get this 6 input hot end working properly.


  • Moderator

    @deckingman did you see my reply to your other thread? I tested (in the rather limited way I was able to) that you could use a Kinematic solution, where each gantry (ie CoreXY pair of axes) followed a virtual XY for position, but each was individually addressable too. This made all motor settings specific to each gantry, and only used X and Y for coordinated movement. Homing files would need to change a bit, but otherwise would have been much as before, just that you would know exactly the motor settings for each gantry.

    If you want me to work out the kinematic command for you to try, let me know.

    Ian



  • @dc42 BTW - I should say that it's thanks to your firmware which does all the heavy lifting, which made this easy.

    All I have to do is supply absolute coordinates for each of the axes and the firmware takes care of all the calculations to translate those coordinates into relative moves. As well as the step pulse timings to keep all the moves (which may differ in length for each axis) in sync. The more I think about, the more impressive that seems. And I can simply tack any UVA or B parameters onto the end of an existing G1 Xnn Ynn Enn, command in any order. Neat!


  • administrators

    @deckingman this is very cool to see in action! It would be awesome for the slicer developers to allow you to do this directly. For example specifying an allowed deviation between the XY and UV axis and then move the UV axis just enough to keep within the deviation. So for example, in a circle the UV axis would end up traversing a smaller arc inside the larger arc that the hotend traversed.



  • @droftarts I did see it but I got lost in your explanation somewhere along the way.
    I think I'll stick with this solution though - I quite like having the extruder gantry tracking the hot end but with a degree of positional freedom. I'm hoping this will allow me to crank up the acceleration settings without shaking the extruder gantry to bits by not having it doing short zigzag moves.



  • @T3P3Tony said in A new trick with my CoreXYUV(AB):

    @deckingman this is very cool to see in action! It would be awesome for the slicer developers to allow you to do this directly. For example specifying an allowed deviation between the XY and UV axis and then move the UV axis just enough to keep within the deviation. So for example, in a circle the UV axis would end up traversing a smaller arc inside the larger arc that the hotend traversed.

    @T3P3Tony Yes, that would be cool but I can't see it happening - there aren't many crazy old farts like me around that would use it.

    My "rules" make a very crude motion planning algorithm. The circular part in that video (and any smaller arcs or circles) could have been done by "parking" the extruder gantry in the centre of that circle, where it could have remained static while the hot end described the circular print paths. But I'm not clever enough to write a script which could interpret a gcode file and work out what is an arc and where it's origin is.

    I'd say the ultimate solution would be some sort of look ahead program running on the SBC which could do all that clever stuff and generate the UVAB moves as a parallel stream. But that's way beyond anything I could do.



  • Ian, You and that printer continue to amaze me! Great work!!


  • administrators

    @deckingman I think the information required to generalise this is easiest gathered by the slicer. You are right that it's a very specific usecase though! Probably a plugin for cura or prusaslicer might be possible but I have not worked with either of those plugin architectures.



  • Very cool!
    I'd just stick your post processor into Prusa Slicer's list and you're done.
    It's a bit more work in Cura, but on the upside, you could have configurable settings for your "rules" in the GUI.
    Of course the hours you spend on that could also be spent adding more....
    Don't know what, just more!


Log in to reply