Baby Stepping.. can it, or can it not be permanent?



  • Hello!

    I've just read through the piles of requests for baby stepping to have the option to be permanent. I'm still unclear as to why there is not an option for this like in other firmware? It's a super pain to have to go in and change it in the config. I absolutely love how (for example), my Prusas have "Live Z adjust", and My enders have the option for baby stepping to apply to Z offset (marlin option). Has this been implemented? If not, Would you add it just to shut everyone up? I understand that it may not seem helpful to you, but to the majority of users out there, it's a huge convenience to simply get stuff dialed in right, and "forget it". Getting used to the Reprap firmware way of doing things, has been a Love / Hate relationship. as I'm now with my 4th Duet enabled machine, I'm learning to love the firmware more and more each day, but then the way we did things last week seems to change with every build. If it's not already available, can we please please please have an option for "sticky babystepping"?

    Thanks as always!



  • You're likely to get a few different opinions..

    Mine would be, if its permanent, it should be a calibration thing. If its related to bed or nozzles, it should be a work coordinate offset thing.

    When you say get it dialed in and forget it, thats what I do - I calibrate the printer properly and hardly touch the settings (except for the printer that is in an eternal state of assembly).



  • As @bearer already pointed out, it should't be permanent. If your printer needs a permanent fixed offset, calibration is the way to go. For example setting the correct H parameter in G30.



  • @Steve-Lynch To add to the above comments, if baby stepping became "permanent", you'd need to put the value in config.g. The probe to nozzle offset goes in config.g and does the same thing. So what would you gain? The whole reason for baby stepping is to make a very occassional adjustment to the odd print which, for whatever reason, has problems with the first layer. So if you made baby stepping permanent, how would you then deal with that situation? Introduce a new function to do what baby stepping used to do before it was made permanent? What would you then call that new function?



  • Persisting babysteps on the printer makes sense to me, just the same the mesh map is persisted.

    Being able to adjust babysteps whenever needed, without having then to plug the number in my slicer or config.h is a user experience improvement.



  • As a relative new user I'm struggling with the same thing.
    I calibrated the Z probe and set the offset with a G31 in config.g.

    Now I start printing with PLA and babystep the first layer a couple tenths of microns until perfection is reached. I note the value and add it to my slicer offset for the next print. Next print I set the babystep value to 0 only to find out it doesn't work and re-adjust the offset and set it in my slicer. Rinse and repeat.

    Change filament to PETG and find the same thing: confusion complete 🙂

    I also searched and found a lot on this topic but couldn't find a definitive answer on how the workflow is supposed to work?
    I can add the offset to my G31 in config.g but this doesn't seem right since it's filament dependent. Would I add a "G30 H<offset>" to set the offset without actually probing the bed?
    I could live with having a PLA/PETG specific offset in my (Prusa) slicer but I can't get it to work.

    How do you guy's set this up?



  • The point is, you don't have to go into the web interface to fix it if it's a bit off. for example, My CoreXY all have Volcano nozzles for the different parts I make for my products.. Say I run plate after plate of a bracket at 1mm nozzle size, then I switch to .6 for the next few runs... Being able to just run the same file from the card that I always use, and simply tune the print in one shot, would be awesome... OR: I use 3 or 4 different build surface types... I have one for Nylons, I have textured PEI, Smooth, Glass, etc... it's nice on my other printers to be able to adjust the "Live Z", or "Z offset" in real time. If you don't want to call it Baby stepping, call it Z offset, It's all semantics.... Just give me an "UP / Down" adjust for god's sake! 😉
    For reference, Marlin has the option to make baby steps persistent. Upon re-boot, it applies it to the Z offset, and baby steps report zero again until you make a change. The "back and forth" between the config.g and the printer is just annoying sometimes... Save Config, test, make a change, re-home, test again... Oops! It's a bit off, stop print, re-start again, and re-baby step it, then dial it in... in a production environment, anything that saves 2 or 3 steps is appreciated.

    Really, what would be the harm in allowing an easy way to dial in your offset from the PanelDue? I'm not asking for a strange function, it's a function in most other firmware.

    I'm talking about an S0 / S1 option for "Apply baby steps to Z offset" if you are diametrically opposed to using this feature, don't enable it... For those of us who miss it's glaring absence on the Duet platform, Let us be happy!.

    I'm running anywhere between 5 and 15 machines all day, printing about 30 different functional parts for machines, and I have to make a lot of little changes every day. This is just one simple way to make life a tad easier. My few "fun" machines? I don't mind messing with all the settings and tweaking... But when for example, (We're a small business run out of a building on my property) My wife, or My kids, or one of My employees pulls a magnetic plate of parts off to cool, puts a new one on, and re-starts a new batch, I don't want them in the Config file. Dial it in during the skirt loops, and let it go....

    Anyhow, Hopefully you understand why I want this so badly.

    Thanks!


  • Moderator

    @Steve-Lynch It sounds like you're really asking for a method to automatically adjust the Z offset with the value of babystepping, so you don't have to do it in config.g yourself. Perhaps a way of saving the Z offset + babystepping with M500, so it loads next reset with M501, would be workable. That's effectively what Marlin is doing.

    Ian



  • Yeah! That's absolutely fine.. I don't really care how it gets there, I just would like it to happen. The 4" Paneldue is too darn small to "Finger Type" on, so it would be AWESOME to just have it save the new offset.



  • just run a macro. (assuming you're running RRF3)
    You could either do it manually or put it in the stop gcode of your slicer

    ;save_babystep.g
    ; Add babystep to Z offset and make "persistant"
    if move.axes[2].babystep !=0
    	echo {move.axes[2].babystep ^  "mm - Baby stepping added to Z trigger height"}
    	echo {"OLD: " ^ sensors.probes[0].triggerHeight ^ " new: " ^ sensors.probes[0].triggerHeight + move.axes[2].babystep}
    	G31 Z{sensors.probes[0].triggerHeight + move.axes[2].babystep}
    	M500 P10:31 ; save settings to config-overide.g - Must have M501 in config.g
    
    else
    	echo "No babystepping set.  Nothing to save"
    

    save_babystep.g


  • Moderator

    @OwenD Ooo... that's good. I'm starting to see the point of the programmable gcode and Object Model now!

    Ian



  • IMHO if you need to store babystep value you are doing something wrong. Baby stepping is there so you can "compensate" for the bad repeatability of your Z probe.



  • @Steve-Lynch said in Baby Stepping.. can it, or can it not be permanent?:

    The point is, you don't have to go into the web interface to fix it if it's a bit off. for example, My CoreXY all have Volcano nozzles for the different parts I make for my products.. Say I run plate after plate of a bracket at 1mm nozzle size, then I switch to .6 for the next few runs... Being able to just run the same file from the card that I always use, and simply tune the print in one shot, would be awesome... OR: I use 3 or 4 different build surface types... I have one for Nylons, I have textured PEI, Smooth, Glass, etc... it's nice on my other printers to be able to adjust the "Live Z", or "Z offset" in real time. If you don't want to call it Baby stepping, call it Z offset, It's all semantics.... Just give me an "UP / Down" adjust for god's sake! 😉
    For reference, Marlin has the option to make baby steps persistent. Upon re-boot, it applies it to the Z offset, and baby steps report zero again until you make a change. The "back and forth" between the config.g and the printer is just annoying sometimes... Save Config, test, make a change, re-home, test again... Oops! It's a bit off, stop print, re-start again, and re-baby step it, then dial it in... in a production environment, anything that saves 2 or 3 steps is appreciated.

    Really, what would be the harm in allowing an easy way to dial in your offset from the PanelDue? I'm not asking for a strange function, it's a function in most other firmware.

    I'm talking about an S0 / S1 option for "Apply baby steps to Z offset" if you are diametrically opposed to using this feature, don't enable it... For those of us who miss it's glaring absence on the Duet platform, Let us be happy!.

    I'm running anywhere between 5 and 15 machines all day, printing about 30 different functional parts for machines, and I have to make a lot of little changes every day. This is just one simple way to make life a tad easier. My few "fun" machines? I don't mind messing with all the settings and tweaking... But when for example, (We're a small business run out of a building on my property) My wife, or My kids, or one of My employees pulls a magnetic plate of parts off to cool, puts a new one on, and re-starts a new batch, I don't want them in the Config file. Dial it in during the skirt loops, and let it go....

    Anyhow, Hopefully you understand why I want this so badly.

    Thanks!

    I am not arguing against a permanent z-offset, I am saying that it is already there. In the situations you mention where you swap out a bed or a nozzle the offset in firmware should not change at all. You probe the bed, the G30 H parameter offset is applied and you are good to go. Your nozzle Z=0 should always be correct after doing this. Unless you swap the actual probe or use a different style of mounting the bed that parameter really should not change all that often.



  • @arhi said in Baby Stepping.. can it, or can it not be permanent?:

    IMHO if you need to store babystep value you are doing something wrong. Baby stepping is there so you can "compensate" for the bad repeatability of your Z probe.

    Not always. Sometimes it's as simple as a different filament needing just a bit more or less squish for proper adhesion. Some plastics are VERY sensitive to minor Z changes.

    Also if you're running removable plates, you can get some differences in thickness that need a quick adjustment that's at the edge or below the probe's accuracy range.

    Z Baby Steps came about as a fudge factor for us trying to do hyper accurate things with less than hyper accurate machines. We're sometimes trying to do nano scale stuff with micro scale tools.

    Ultimately, @OwenD has the right of it, as a work-around, put it in a macro.
    Adjust Baby steps, two clicks, done. Can't get much easier than that, but I do think @Steve-Lynch has a point about it being in the Firmware as an S0/S1 option, defaulted to off.

    @OwenD - Nice macro ! Makes me wish I was more conversant with programming, just not one of my strong points. Have to rely on my good looks ... (NOT!) LOL.



  • @PuterPro well the "different filament" - you put your z-offset in per-filament confing and you are golden .. as for different plates, if you are probing a surface (and these days isn't everyone? bltouch, piezo, ir, inductive, capacitive...) the thickness of the plate is irrelevant ... if you don't and have some microswitch Z connector for the holder then again, per-plate config file with offset there. That's my take on things, of course, not single way is the only way... good thing RRF3 comes with variable code support 🙂



  • @arhi said in Baby Stepping.. can it, or can it not be permanent?:

    ..well the "different filament" - you put your z-offset in per-filament confing and you are golden

    Yep. 'Assuming' one is using it. Neither of us know the OP's complete workflow ...

    as for different plates, if you are probing a surface (and these days isn't everyone? bltouch, piezo, ir, inductive, capacitive...) the thickness of the plate is irrelevant ... if you don't and have some microswitch Z connector for the holder then again, per-plate config file with offset there.

    What you say is mostly true, but I think you missed my point - we sometime are working at the edge of a probe's accuracy, and find that it's not enough and need Baby Steps to get it right.

    Remember, this person is running in a production environment with many hands, including KIDS interfacing with the machines. He needs a quick and easy solution, and personally, I think he has a point that it should be baked into the Firmware as an option, defaulted to off.

    That's my take on things, of course, not single way is the only way... good thing RRF3 comes with variable code support 🙂

    It sure is! 🙂 We definitely need many paths, something that RRF is much better than it's rivals at providing. Now if only I was a competent programmer ...!



  • @PuterPro said in Baby Stepping.. can it, or can it not be permanent?:

    Z Baby Steps came about as a fudge factor for us trying to do hyper accurate things with less than hyper accurate machines. We're sometimes trying to do nano scale stuff with micro scale tools.

    As a very long time user of RRF firmware and Duet products, I distinctly remember the rationale for baby stepping when it was first introduced. Which was to make small, non persistant adjustments on a "per print" basis if, for whatever reason the first layer wasn't going down as expected. The rationale has always been that if the Z probe needs the same offset correction for every print, then change the offset in the configuration file to make it persistent. On the other hand, if there is variability from print to print and the offset needs to be adjusted often, then use (non persistent) baby stepping.

    I'm having a hard time understanding why people want to save the value of something that needs to be changed frequently. If baby stepping is made permanent, how does that help in all the use cases that people are stating? If it needs to be changed per filament, or per build plate or per "whatever", how does making the value permanent help?



  • @deckingman said in Baby Stepping.. can it, or can it not be permanent?:

    ... how does making the value permanent help?

    'Permanent' is a strong word 😉 I would use 'persisted'.

    Some of us already do it, making small persisted Z adjustments once in a while, except that the current process is tedious, having to go through editing and uploading a config.g file.

    Supporting an option for the duet to remember the last babysteps adjustment, as it does with mesh data, will eliminate that hassle for some of us.

    As for the people that don't want the Z settings to be persisted, I am sure that this option will not be taken away from you. 😉



  • @zapta said in Baby Stepping.. can it, or can it not be permanent?:

    'Permanent' is a strong word 😉 I would use 'persisted'.

    The thread title says "Permanent" - that's what I was replying to.

    As for the people that don't want the Z settings to be persisted, I am sure that this option will not be taken away from you. 😉

    Personally I don't really care - I wasn't thinking of myself because I never use baby stepping.



  • @deckingman said in Baby Stepping.. can it, or can it not be permanent?:

    If it needs to be changed per filament, or per build plate or per "whatever", how does making the value permanent help?

    I agree that Baby Steps came about as per print adjustment, but I have to politely disagree with your conclusion.

    Like everything in this 3D world, as times move forward, things must be free to advance. RRF3 is a far cry from those early days with thousands of changes and tweaks from it's introduction.

    When Baby Steps were introduced we didn't have things like magnetically held interchangeable tools, print beds held magnetically with PEI textured steel sheets, as well as all the myriad of printer types we have now. I mean, who HAD a laser that could be switched in??!?

    As someone who has such a lovingly built and amazingly personally engineered machine, I'm surprised you aren't more receptive to this small change. You've had to have celebrated many times as RRF matured and fixed problems you had with your setup, or added a new easier way to accomplish something, sometimes fixing something you didn't even know you had a problem with!

    I see how some setups could benefit from the small addition of a software switch enabling the change to be saved past reboot or shutdown. With it defaulted to not saved, there's no impact for the average setup, but there's another tool in the arsenal for someone who needs it for their setup.

    IMHO 🙂


Log in to reply