Core-XY based on Rat Rig V-Core and Duet 2 Ethernet
-
I have been playing around with speeds, acceleration and currents. My concern was that I would not get the speed out of my 0.9 degree steppers. I was so wrong, the head if flying around REAL fast, way faster than ever needed for a print. Even the bad moves pretty quick. Light at home is pretty crap, did not bother taking a video yet.
The print bed is a bit of a worry however. I have 2 motors for the Z axis which are mechanically independent. When playing around with speeds etc I would ofc come to the point where the motors just stall. Unfortunately not both at exact the same time. While that is only a matter of adjustment I am concerned that if I have build up of material on the nozzle and the head does catch on a blob of plastic that my motors ger out of "sync" and the bed is no longer level. Also I dislike the idea of flexing couplers between lead screw and stepper shaft. They are provided with the kit and I have them put in for now. Is my concern about the two motors getting out of sync justified or am I just to worried ? Would you put a belt between the two ?
My bed is only temporary and I dislike a 4 point mount anyway. The kit did not come with any means of bed adjusting. I just got a few springs and printed brackets for them to rest in and push against the bed from below.
I am not 100% happy with that at all. The bolts are supposed to go into the small slot, they are M2 or something small. I will modify that to a 3-point mounting and countersink M5 bolts in the print bed. I wont bother with magnets on this. The final setup would be a 230V AC heated bed from E3D or a machined aluminium plate, not sure yet.Jan
-
Motors will stall if you set the maximum speed (M203) and/or maximum acceleration (M201) too high. If you set the Z parameters in those commands to values that your printer can do reliably, then it's most unlikely that you will get one Z motor stalling and not the other.
So with the proper settings, you needn't worry about the Z motors getting out of sync during a print. OTOH they may get slightly out of sync when you power the printer off and on again. If your printer has a Z probe, you can resync them before printing as described at https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors,
-
Thanks for the reply. A Z probe is on my bucket list for this build. I have an inductive probe but I wont bother mounting it cause I want to be able to print on glass and prefer to give a piezo probe a shot. My speed tests have been VERY much on the edge, not at all settings for real printer set-up. I have reduced the speeds a good bit to have lower motor currents and reasonable practical speeds instead of show-room effect
Thanks
Jan -
One more thought about the bed and end stops. I have one end stop at the low logical end of the z axis for now which means homed the bed is lifted all the way up. That seems to be what I have seen on most or all printers in fact. its not really very practical from a operational perspective. To overcome this I can see two options.
A: Modify the homeall.g to have the bed drop all the way after homing to allow easy access and do the same after every print. Not clear yet how that would work when using a Z probe.
B: Having the end stop at the bottom (logical high end) and home the bed there. Again I have not yet looked into Z probing, no clue if this would be an option.
Which is the better approach, anyone has practical experience to share related to this ? It only really come into play where the bed moves for Z instead of the tool I guess.
Jan
-
@alexander-mundy this maybe a little late, but still how I did it with my V-Core. I used long vice/clamps to hold it together, from corner to corner diagonally. So when I was squaring one side/square I had an X made with two vice/clamps. I with then measure to make sure the corners diagonally we're each the same distance from each other and tighten down all the screws. For good measure (), I would also measure the sides of the squares distance from each other to make sure they were also all the same, but they have to be after the corner to corner diagonally were already the same (just checking my work I guess). Once I had one side done moved on to the next.
-
@bluedust
Thanks for the tip, I am short of "large tools" at home that why I used my print bed as square. I have to bring a tape measure from work to measure the diagonal to be sure its identical both ways. With my "square" is have it done so I have no visible gap which should be OK. My X axis front and back have the same distance from the edge of the frame on both ends which is also an indication for the lot being square. Have not yet printed anything as I am still in the process and the bed is not yet done. I am sure I will take it apart again anyway, 2 of the double t-nuts have lost their thread because I was to generous with the force tightening the bolts. The slot in nuts seem to be a lot stronger and I think I prefer them. I have a bunch of them ordered.Jan
-
My current Duet 2 Mount can be found here:
https://www.thingiverse.com/thing:3613809
The Fusion 360 file is here:
https://a360.co/2Vm7KSCIts my temporary solution until I have a final setup with proper print bed. Its out of the way on the upper rear 2040 extrusion, easy access and view of limit switch LEDs and so on. I have no active cooling as its exposed and my motor currents are below 1A.
Picture was taken before wiring was complete, so a bunch of cables are not shown here. Printed on the Prusa MK3 with Prusament PLA Galaxy Black.
Have FuN!
Jan -
@snoozer said in Core-XY based on Rat Rig V-Core and Duet 2 Ethernet:
One more thought about the bed and end stops. I have one end stop at the low logical end of the z axis for now which means homed the bed is lifted all the way up. That seems to be what I have seen on most or all printers in fact. its not really very practical from a operational perspective. To overcome this I can see two options.
A: Modify the homeall.g to have the bed drop all the way after homing to allow easy access and do the same after every print. Not clear yet how that would work when using a Z probe.
B: Having the end stop at the bottom (logical high end) and home the bed there. Again I have not yet looked into Z probing, no clue if this would be an option.
Which is the better approach, anyone has practical experience to share related to this ? It only really come into play where the bed moves for Z instead of the tool I guess.
Jan
Homing to Zmin is more common I think because it's far more important to have that set accurately than the Zmax. It's just a lot easier to adjust the distance between the nozzle and the bed. Of course, regardless of how you home the Z axis, where it finally rests is up to you. You could home to Z0 and then move it to the bottom. But that's a lot of long travel moves on a slow axis.
Using a Z probe lets you automate that Z0 procedure and opens up the door to using other bed leveling and compensation mechanisms, which philosophical opposition aside, do have their place. At the very least, having an accurate way of finding and setting the Z0 position is a requirement for a good first layer. That's just easier to do when homing to Z0.
It's definitely possible to do both though, and in fact on a CoreXY with a moving bed, having a way to reliably home to Zmax is very useful for resume after power loss functionality. In my case, I use a z probe for homing and have an optical endstop on Zmax. The optical flag is adjustable with a screw, so I find Z0, move the bed down 300mm, and then adjust the flag until it triggers the endstop. Then I have a macro to homeZMax that does a simple homing move to the max end of travel and sets position to 300mm.
There's going to be some variation over time due to differences between each homing trigger height being slightly different, or thermal expansion and drift loosening things up, but it seems to work already for resuming the print on layer heights I use. You can tell there is a subtle layer line if you look at it, but it's better than a failed print.
Personally, I wouldn't want to home to Zmax every time because of how long it takes and since it's going to have to just come all the way back up at the start of the print. If I need access I have a macro that places the bed half way down and moves the gantry to the middle. Or I use the homeZmax macro to get it all the way down.
-
I understand what you say re proper positioning for the 1st layer. I think for now I probably go with the end stop at Z 0. You mentioned using a macro for homing to z max. That's something I have not looked into yet at all. Using marcros would ofc make things very easy once I have a handle on that. I wont be home now till Thursday so I am not hands on to look into it.
Regarding speed, my Z moves pretty fast if needed, IDK the value of the top of my head now but that was one of the things that drove me mad on the Prusa how slow Z moves.
Does your setup have two mechanically independent Z motors ? How do you make sure your bed is level in the geometry of the printer. I have seen some printers especially with ball screws and rails drop the bed once steppers are powered down. Mine does not do that but if it does you intervene by hand to level it somehow ? I was thinking of a mechanical strong end point like adjustable threaded spacer under the nut for the lead screw. that is level to the geometry, or in other words parallel to the gantry above to have a known point to make sure i am definitely level. Is it possible to define stall detection for the z max and end stop by NC switch or Z probe for z 0 ?
Thanks for your input, much appreciated.
Jan -
@snoozer Just to say that macros are nothing more than a sequence of commands that get run one after the other, and that homex.g, homey.g, homez.g and homeall.g are in fact macros.
-
@deckingman If I remember right (not at the printer now) on the right in DWC was a list of shortcuts or buttons to click to call macros, I just have not yet changed the defaults to what makes sense for me. I am sure I figure it out.
Regarding homing z to 0 or max, my main concern is that I have not yet figured out how I safely move z to z max without previously homing to z 0. was thinking of a hard mechanical stop at z max but i would have to have stall detection enabled for only z max, not z 0 or x and y 0, looks as if that is not a possibility. I was then thinking of using E0 or E1 as end stop for z max but I am not sure such configuration is even possible. The RFF Config Tool does not seem to allow for that.
I am just thinking out loud here. Sounds all a bit weird I guess but in practical reality once I have the printer enclosed I would need to be able to move the bed to z max to access a print that may be on the bed after the printer was switched off. I like to have a button for that which does not require home z to 0 1st with a print on the bed and no access from above.
Jan
-
@snoozer, you can use your Z max endstop switch when you want to home to Z max, and the Z probe when you want to establish a more accurate Z=0 position prior to starting a print.
-
-
@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 ?
Jan
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.
Jan
-
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.
https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors
-
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 !!!
Jan
-
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.
2_1557290592240_PrimeNozzle.g
1_1557290592239_start.g
0_1557290592239_homeall.g
0_1557290612902_2_HomeZMax.g
0_1557290636906_0_Measure Zmax trigger.gJust examples of what's possible. Things can be as simple and basic, or as specific and involved as you like.