Core-XY based on Rat Rig V-Core and Duet 2 Ethernet

  • @dc42

    I was reading here M574, am I reading that correct that I can map any actual end stop connector to any axis as described in this example ?

    M574 U1 S1 C2 ; U axis uses endstop input 2 aka Z

    Could I use one of the free E end stops as z max and the normal z end stop as z 0 ?


  • administrators

    @snoozer said in Core-XY based on Rat Rig V-Core and Duet 2 Ethernet:


    I was reading here M574, am I reading that correct that I can map any actual end stop connector to any axis as described in this example ?

    M574 U1 S1 C2 ; U axis uses endstop input 2 aka Z

    Could I use one of the free E end stops as z max and the normal z end stop as z 0 ?


    That facility is only in some 2.03 beta releases and is about to be withdrawn in firmware 2.03RC1. A functionally similar facility is available in the 3.0 firmware series, but that is only available as a very early beta.

  • @snoozer said in Core-XY based on Rat Rig V-Core and Duet 2 Ethernet:

    Does your setup have two mechanically independent Z motors ?

    It uses a single motor belted to 3 lead screws. The bed itself is an aluminum plate attached to the bed frame via 3 point leveling screws. You can see photos and more description in my signature.

    The lead screws are single start a 1mm pitch/lead. So very flat. Zero tendency to drop when power is removed. Travel speed is in the 300-500mm/min range so not super fast but not super slow either.

    You may very well be able to use stall detection to level each motor individually. Though I would still prefer to level to Zmin rather than the Zmax frame, simply because you get feedback from your probe rather than just a hard physical stop at the bottom that would need to be manually calibrated and maintained as level.

    The great thing about RepRapfirmware is that there are many ways to achieve the desired results. Whatever makes the most sense for you and your machine can probably be worked out.

  • @phaedrux your setup would not allow for independent move of one lead screw unless the belt slipped. On my set-up that mechanical link between the two steppers is not there. If the bed is non level to start with the auto bed leveling may well compensate for that but it wont make the bed level in relation to the printer frame or more importantly to the gantry. I leave it with the z 0 end stop for now, everything else seems to be non realistic or to elaborate for now. Once I have a probe set up I will follows up on the tip of dc42 to have a z max end stop and have the z probe provide z 0. There apperats to be no way to have max and 0 end stop for z at the same time and I have not seen a way in the documentation to use stall detection for z max and end stop for z 0. I can realistically not see my printer having the lead screws move independent unless only one stepper would stall. powered off I can not push my bed up or down. Should that become an issue it will probably just be a lot easier to link them with a belt.


  • That's right, I don't have any independent motors to worry about. I square up the bed frame at the bottom of the printer with the lead screw pulleys loose, tension the belt, then secure the pulleys to the lead screws. I haven't had any skipped teeth after that, though occasionally I do have to re-tension the belt plate. The bed itself is then leveled independent of the frame to square it with the gantry.

    In your case, using this procedure to correct the tilt of the bed might be the best way to g provided your bed frame has a little bit of play to allow for the alignment process.

  • I can post some examples of how to use multiple end stop types together. This is all configurable inside your macros. Everything is configurable at time of use. Once you see a few examples I think it will become obvious.

  • @phaedrux oh that sounds interesting now, you mean I could use a different M574 in a macro then the M574 I have used in config.g ? If that's possible I just need to put the z 0 and z max end stops in series and can make use of them on both ends or even try stall detection in my macro that brings the bed to z max. I must read the link regarding "Bed levelling using multiple independent Z motors". To late now for that, bed time.

    Thanks for the valuable input !!!


  • Yes that's right. You can treat the config.g as the default settings that are applied at startup. Pretty much every command can be issued at any time to change a setting. So in your macro files for various things like homing, etc, you can reconfigure things right when you need it.

    So in your homing macro you could have the Z probe configured (M558, G31, and G30 to probe) and use it to find Z0, then you could use M574 to define a Zmax endstop and use G1 S3 Z400 (Note teh S3) to seek the Zmax endstop and when it triggers, set the Z axis maxima (M208) to be equal to the current Z height (which you know, because you established Z0 first). And then save it to config-override.g with M500 P31. You've now automatically established the length of your Z axis.

    In that example, if you weren't using a Z probe yet, you could substitute the probe commands for the M574 Zmin commands and home to Zmin using the endstop first.

    Note that this method won't help after a power loss. In that case, you'd need to use the method I described earlier where you set the Z axis length precisely ahead of time, so that homing to zmax will give you a predefined known value.

    Here are some example macros that may help explain the concept.

    0_1557290636906_0_Measure Zmax trigger.g

    Just examples of what's possible. Things can be as simple and basic, or as specific and involved as you like.

  • @phaedrux That's great to know how I could make it work. I am not worried to have z max that precise since I can now have both z max and z 0 end stop or the combination of z probe and z max end stop. Since I do know the physical dimensions when at z max I can fast move close to z 0, say 10mm off and probe at slower speed from there.

    Thanks very much

  • @phaedrux I was just looking through the g-code you linked. I do get the idea, I see how you use M574 in the homezmax.g. Till you mentioned it I did not realise this can be done outside the config.g and change "on the fly". I also see you used M291 a bit. I assume that works in DWC as well as on the PanelDue ?


  • @snoozer said in Core-XY based on Rat Rig V-Core and Duet 2 Ethernet:

    I assume that works in DWC as well as on the PanelDue ?

    That's right. A popup window will come up in the DWC.

  • Hi,

    I got a bunch more done now. I have moved the z end stop to the z max end and installed an inductive probe for now till I have a piezo probe to go. Had to modify my bed mount as well, I was to worried about losing height on the extruder and it was higher than the bed can reach without losing a few turns on the lead screws. Had to raise the springs a little. The bed for now is the original that came with the printer. Its OK actually. The heater is a adhesive silicone mat with a pretty good wiring harness in a thick silicone tubing. I have made some strain relieve to prevent pulling on the heater when the bed moves. Its a 24V supposedly 300W but in reality more 280 looking at the current it draws. I was surprised how long it take to heat up. I guess I am spoiled with the Prusa. I had it going for a couple hours at 60 degree to start and went to 120 in the end which took for ever. That's all acceptable for the moment but definitely not a solution in the long run. I was super disappointed with the spring steel sheet that I got from Amazon I think it was. Once I had applied the PEI sticker it would no longer lay flat. I guess I should have pre bend it slightly cause it looks as if the PEI is pulling the edges up. Its also very thin, not anything like the Prusa one. Its basically unusable. The last observation I made was the difference is probing distance for my inductive probe between the aluminium, bed and spring steel. Without the steel and only aluminium the probe barely triggers before digging the nozzle in. The probe is then so low that I worry about proximity to a print. With the spring steel that approx 1.5mm better. That surprised me a little, did not expect just big difference.

    I had no go on macros yet or making use of the z max switch, that's on the agenda for next week. Also trying to find better spring steel with PEI and a piezo probe cause I want to be able to print on glass as well.

    Here a few pics of today.





  • Just a quick add on, an impression of the fast non print move speeds I get so far.

  • administrators

    @snoozer said in Core-XY based on Rat Rig V-Core and Duet 2 Ethernet:

    Just a quick add on, an impression of the fast non print move speeds I get so far.

    That's noisier than I expect from a Duet. What stepper motors are you using, and at what current and microstep setting (M906 and M350 commands in config.g) ?

  • @dc42 Hi,

    My settings are here:

    M350 X16 Y16 Z16 E16 I1
    M906 X900.00 Y900.00 Z1500.00 E800.00 I1

    I have not yet done anything with the extruder cause I don't yet have a good bed solution. The motors I have on X,Y and Z are 0.9 degree rated at 1.7A.



    PS: The noise in the Z axis is MUCH more intense in the video than in reality, I believe I had the bed resonating with the bolts holding it as well.

  • why are you running X and Y at 900mA if the steppers are 1.7A?

    also you are moving your Z axis at a very high speed. what is the sound at a more reasonable speed of 6-10mm/sec?

  • I have not fully fine tuned the stepper settings yet cause I am not yet at a stage where I actually print. Getting to grips with mechanical issues and macros, end stops, probes etc...... From what I have read and what makes logical sense to me is that there is no need to drive the steppers with the highest rated current but rather find a sweet spot between desired torque and needed current, I could probably reduce that even further but I just did not yet get around giving it a good test. If I move everything at slow speeds like the Prusa does by default I hardly hear anything little background wine. The Prusa would be louder. One of my main concerns was the time it takes to move Z from 0 to max. On this particular build because its not as freely accessible like most Cartesian printers I like to have the bed move quick to Z max for ease of access. That's also the reason for playing around with z probe for z 0 and end stop for z max so I can do quick moves but yet have the ability to home to 0 for the last 5mm at slow speed since I know the dimensions. In general I think its my mindset to move all axis as fast as possible without losing steps or causing mechanical damage on non print moves. Power consumption and noise are not really issues for me. Having that said, I obviously don't have the experience yet to know what is the limit 😉 but I am not losing steps with my set up as it is for now and I have no rubber dust from the belts.


  • I have ran the bed leveling a few times now to see where I am re bed adjustments. Its the 1st time that I did that now after having the Z probe working. Once its done the probing I get the overemphasized graphical representation of the bed. The bed and the probed view are on a different plain level. The probed bed is approx 5mm below the ideal bed. Is that an issue with some offset that I have not taken care of or is that the difference due to position from homing to z0 and then probing at a much slower speed.


  • thats the difference between your height and your actual height as measured by your z probe.

    if you have a fixed probe having a z max endstop does not make much sense in my opinion.

  • @veti The end goal is to be able to turn on the printer, move quick to Z max without the need to home to z 0 because I may still have a print on the bed or what ever. This way I can have a macro to move fast to z max, do what ever is needed and then move to z 0 +5mm and go slow from there to probe for z 0. That's the idea behind it but as I said, I am still in the process of learning and finding good ways to mount end stops, probes etc..... Piezo probe on the top of my list now..... redesign extruder mount etc..... plenty of playing around to do 😉 I don't even know if I leave it at micro switches or rather change to optical or other ways for homing. The smaller and lighter the better, contactless probably ideal.


    PS: I have just read this and flew over the write up:

    I love the idea of actual buttons. That would be even better if I get that to work without the need of interacting on DWC for certain things such as "Go to Z max fast" or load and unload filament.


Looks like your connection to Duet3D was lost, please wait while we try to reconnect.