Baby Stepping.. can it, or can it not be permanent?
-
If users of baby stepping wish to have a one-click method to save baby stepping values, here it is:
First, you create a template-config.g This is where your master config.g that you would normally edit and contains your normal settings lives. It has no babystepping command.
Now, you create a real config.g in the sys directory that points to the template-config.g with an M98.
We now create a series of macros. In each of those macros you have something that looks like this:
; filename: +0.02.g M28 config.g M98 template-config.g M290 S0.02 M29
; filename: +0.04.g M28 config.g M98 template-config.g M290 S0.04 M29
; filename: -0.02.g M28 config.g M98 template-config.g M290 S-0.02 M29
etc., and lastly:
; filename: reset.g M28 config.g M98 template-config.g M29
Voila! Now you just have to select the amount of babystepping you have currently applied and wish to make permanent! It will be permanent until the next time you run one of these macros, and you can reset it permanently too. To make normal everyday changes to your config, you can simply change the template-config.g.
To be clear, this is a joke. To make this work for real you'd need to use M505 to set a different directory, because calling M98 would write the entire contents of template-config.g to the main config.g, precluding the ability to make easy changes! So instead, we would have to write a new override-override-config.g in a new directory that we then point the firmware to in the main congfig.g with our series of convenient macros.
-
@bot said in Baby Stepping.. can it, or can it not be permanent?:
If users of baby stepping wish to have a one-click method to save baby stepping values, here it is:
Compare with Prusa https://youtu.be/2wh0bKPOI_o?t=43 , it even has the test pattern built in.
(just swapped nozzle to 0.5mm and had to go through the routine of babysteps adjustment, config editing, and config uploading).
-
@zapta Presumably your nozzles are slightly different lengths which is the reason why you need a different probe/nozzle offset for each one. In which case, why go through the process of adjusting baby stepping every time you change nozzle? Why not make a note of the offset once established, and use a macro for each nozzle to set the offset? Then when you change nozzle, instead of playing around with baby stepping, simply run M98 P"05Nozzle" or whatever name you decide to use.
Presumably you use different profiles in your slicer for each nozzle. If so, then you could include a call to the relevant nozzle offset macro in the slicer. So you never (or rarely) have to use baby stepping. -
@deckingman said in Baby Stepping.. can it, or can it not be permanent?:
I'm just trying to understand why people want something that has to be changed regularly to be made to persist or be permanent.
I do see the value of the suggested feature. Especially for values that change regularly. I find myself babystepping down a bit for each print of the roll I am currently using. Yes, I need to compensate for that in the H parameter of G31 command, but call me lazy! (does everyone has to lookup if it needs to be added or subtracted?). What's wrong with a button that sets the default height compensation in config.g based on the currently set babystepping? I would like it for sure!
-
@DeltaCon said in Baby Stepping.. can it, or can it not be permanent?:
I do see the value of the suggested feature. Especially for values that change regularly. I find myself babystepping down a bit for each print of the roll I am currently using.
I'm sorry but I still don't get it. If you have to change baby stepping for each print, how does making it permanent help?
Scenario 1. With baby stepping as is (non permanent), you start a print, then adjust baby stepping. Repeat for the next print.
Scenario 2. With "permanent" baby stepping, you start a print, then adjust baby stepping, then save it. But you still repeat that process for the next print because you say "I find myself babystepping down a bit for each print........"
So all you are doing in scenario 2 is saving the value that you are going to change anyway next time you do a print. Why?
-
@deckingman said in Baby Stepping.. can it, or can it not be permanent?:
So all you are doing in scenario 2 is saving the value that you are going to change anyway next time you do a print. Why?
Because "change it next time" is actually quite often several attempts down the road.
Meaning, print A didn't start right because it took a few moments to get babystep correct, and parts of layer one are already blown. So, I have to stop, and sometimes estop and try again. Maybe for two or three attempts.
And, if I did reset, babystepping is gone, and I guarantee I will not realize that, and there is another blown attempt.
Once I've gotten through a number of starts of print A, and it finally "takes", it will be hours or days before I move on to print B. As part of setting up for print B, I'll check everything, and adjust settings, to get it started. Including zeroing babystepping.
And, just generically, I'm in the camp of "don't lose things across restarts". Babystepping or anything else.
-
@deckingman said in Baby Stepping.. can it, or can it not be permanent?:
... why go through the process of adjusting baby stepping every time you change nozzle?
Deckingman, I think that for two reasons I presume, first, I am not that organized and when I need a nozzle I pick one from an assorted bag of nozzles (last switch was from a microswiss 0.4 to a chinese 0.5), and second, my printer is not that stiff and stable that swapping back to the same nozzle will require the exact same configuration.
Myself and many others, on duet and on other firmwares, use babysteping to compensate for imperfections in our mechanics and processes, just the same as we do with mesh based bed leveling (I now run an automatic one, for the print area only, on every print). It would probably be less necessary in a more perfect world.
-
@zapta said in Baby Stepping.. can it, or can it not be permanent?:
@deckingman said in Baby Stepping.. can it, or can it not be permanent?:
... why go through the process of adjusting baby stepping every time you change nozzle?
Deckingman, I think that for two reasons I presume, first, I am not that organized and when I need a nozzle I pick one from an assorted bag of nozzles (last switch was from a microswiss 0.4 to a chinese 0.5), and second, my printer is not that stiff and stable that swapping back to the same nozzle will require the exact same configuration.
Myself and many others, on duet and on other firmwares, use babysteping to compensate for imperfections in our mechanics and processes, just the same as we do with mesh based bed leveling (I now run an automatic one, for the print area only, on every print). It would probably be less necessary in a more perfect world.
Yes I get all that. I don't have any problem with people who want to use baby stepping and I fully understand how it could be useful.
It's just the logic behind the reasoning that the more frequently something gets changed, the more necessary it is to save the value. In my book, the opposite is true.
-
I wonder how much of the precious memory on the duets are used for features that are catering to people whose printers are so poorly built that they need to calibrate it every single time they print. How much of the development time put into RRF was for such features?
Babystepping works as it does now. Config-override exists for you to save settings, but not babystepping. Figure out a way to save your babystepping values with that you have now!
It's so frustrating that some of us jump through hoops, spend tens of thousands of dollars or euros, build a machine that is rock solid, but yet we have to deal with the onslaught of features and feature requests from people who can't be bothered to edit one line in one file?
We should not cater primarily to the lazy folks who can't be bothered to perform extremely simple actions.
-
@deckingman said in Baby Stepping.. can it, or can it not be permanent?:
Scenario 1. With baby stepping as is (non permanent), you start a print, then adjust baby stepping. Repeat for the next print.
Only if you are homing again you will have to readjust. Making it permanent you do NOT have to readjust.
Scenario 2. With "permanent" baby stepping, you start a print, then adjust baby stepping, then save it. But you still repeat that process for the next print because you say "I find myself babystepping down a bit for each print........"
I find myself babystepping down for each print, because I cannot make it permanent. You have it the wrong way.
So all you are doing in scenario 2 is saving the value that you are going to change anyway next time you do a print. Why?
No, I do NOT need to change anyway if my value gets permanent.
I think you need to look at it not as permanent babystepping, but as an easy way to dial in the H value in config.g. Nothing is easier then looking at a result, adjusting, looking again, and when it is spot on, press the button and it is set. After pressing the button, babystepping is at 0 and no need for adjustment until you change material, adjust flowrate or esteps, or do something else that requires evaluation of your nozzle offset. -
@bot said in Baby Stepping.. can it, or can it not be permanent?:
I wonder how much of the precious memory on the duets are used for features that are catering to people whose printers are so poorly built that they need to calibrate it every single time they print. How much of the development time put into RRF was for such features?
Babystepping works as it does now. Config-override exists for you to save settings, but not babystepping. Figure out a way to save your babystepping values with that you have now!
It's so frustrating that some of us jump through hoops, spend tens of thousands of dollars or euros, build a machine that is rock solid, but yet we have to deal with the onslaught of features and feature requests from people who can't be bothered to edit one line in one file?
We should not cater primarily to the lazy folks who can't be bothered to perform extremely simple actions.
A little respect please... Not anyone uses their machinery the exact same way you do so yes, other people have to be catered too. The suggested option is a nice one, even if you do not understand that. RepRap is supposed to be the most userfriendly firmware, no?
-
@bot said in Baby Stepping.. can it, or can it not be permanent?:
I wonder how much of the precious memory on the duets are used for features that are catering to people whose printers are so poorly built that they need to calibrate it every single time they print. How much of the development time put into RRF was for such features?
Did you know? DC42 himself calibrates his Delta for every print.
-
@Danal dc42 also prints with a polar(scara?) printer onto a desk and barely has to adjust the calibration of it. Pretty sure he basically does whatever he pleases, and that's fine. He manages to get by without babystepping permanence!
-
@DeltaCon but you're being offered, for basically free, a firmware/software platform that is perfectly adequate to achieve what you want. You refuse to make one simple change to one file, and are demanding that the creator spend his time creating an amendment to the system that works fine?
Please, have some respect for the work you've been given. You bought electronics, and were given an amazing set of software for free.
-
Let's go the whole hog. Why stop with having a button to make baby stepping permanent instead of editing one value in config.g? Let's have another button that will set the steps per mm for extruders after we've calibrated them - one button for each extruder ideally. Then another button when we tune firmware retraction to save us editing config.g for that. The same for pressure advance and all the other things we have to tune. With enough buttons, we need never open config.g at all.
I'm sure many people would be delighted if DC, Chris Ham and all the others spent their time implementing that. Personally, I'd rather they spent their time on implementing basic functionality such as heater tuning and end stop/motor combinations on expansion boards, and perhaps restoring the step pulse frequency limit to what it was some versions of firmware ago. But maybe I just have my sense of priorities all wrong............
-
I always try to debate ideas, not people. This discussion turned a corner, and I regret my one post down the path of commenting directly on a person.
Back to the idea of persistence of babystepping: I am OK with it, and in fact, find it mildly desirable.
At the same time, it is not so important to me, either way, to stay in a high-friction discussion.
-
@Danal said in Baby Stepping.. can it, or can it not be permanent?:
... a high-friction discussion.
The Corona lockdown did it to us.
-
@zapta said in Baby Stepping.. can it, or can it not be permanent?:
The Corona lockdown did it to us.
Indeed! LOL!
Sheeze, I go away for one day from a polite discussion someone posted about a request for a feature change (WOW SHOCKING!) and I come back to a barroom brawl.
Everyone needs to step back here and relax. This isn't the WWF, remember to be polite when you make your points, I'm talking to the new people AND the regulars as well, who should bloody well know better and should set the tone.
NOW, about this recommended change.
My two cents. Rather than pick apart and quote all the various points that have been made, I feel this is close to the right answer:
@zapta said in Baby Stepping.. can it, or can it not be permanent?:
I believe that 'persisted' captures more accurately the use case of "save and use it in following sessions until I will set a new value".
For example, one real "Use Scenario" that I think addresses the main sticking point for those in the "leave it be" camp.
There are often times (particularly in a small production environment like the OP posted) when a machine will be setup a certain way that's a bit different than it's normal config, where baby stepping is used to quickly get it right. This config might persist through 5 or more prints, or even days, but THEN be changed back to normal.
Having the ability to make a SEMI-permanent change that survives reboot and/or power downs makes sense. Especially if easily reversed to revert to original, or a new setup.
This is only one example, I'm sure people will find more. If the setting is defaulted to off, it's no big deal for everyone else.
A couple other thoughts ...
@deckingman said in Baby Stepping.. can it, or can it not be permanent?:
I'm sure many people would be delighted if DC, Chris Ham and all the others spent their time implementing that.
I get your point, but I would point out that is exactly what their job entails, deciding what's a valuable feature and what isn't, as well as it's priority.
You listed several things you'd like implemented, does that mean the OP doesn't have the right to request his? Someone elses' needs and wants should be honored too, eh? It's OK for people to request a feature change that you don't use or need. I don't have a CNC or laser but I'm open to changes they need that make no sense for my setup. Who knows a multi-tool setup might be in my future, LOL.And to address a point I felt was a bit of the same subject,
@bot said
I wonder how much of the precious memory on the duets are used for features .... How much of the development time put into RRF was for such features?
"Software ALWAYS expands to fill whatever amount of memory is available."
You might as well complain about being stuck at home, or the weather! LOL! Software grows.
I feel you were a bit overaggressive here. You've made more than a couple requests for new features, some of then quite involved for the team to implement but you went off on a simple request for the addition of one switch on an existing feature.How much memory space do you anticipate that would take compared to some of your requests?
The amount of money and time you've spent has ZERO bearing on this thread or the priority of this request vs your request(s), and frankly was rather elitist.I don't mean to "call you out" here, your contributions to this Forum are great, in fact you've helped me in the past, and you're someone I admire, but you really should chill a bit, eh?
-
@PuterPro I could chill out, sure. I don't usually make actual requests, I just make observations, discussion, and perhaps suggestions. If I make a direct request, it's usually followed by a sum of money, because otherwise I'm personally not owed anything.
And usually if I'm requesting something, it's something that has zero possible way of achieving currently, and may benefit other people. This request, beaten to death, is already achievable with the current behaviour.
You change your print surface, and find that babystepping of +0.08 mm is good? Add that single line to the end of your config.g file. Done. How is this so difficult? Why must it be its own dedicated gcode? If you want an easier way than editing config.g, add a line at the end of your config.g that runs a macro with M98. Every time you want to permanently change the baby stepping, perform this series of commands:
M28 mybabysteppingmacro.g ; do your babystepping M29
Done. It will save your magic sequence of babystepping settings to load every time you boot.
-
I don't know if it been mentioned above but what I find really annoying with the Baby Stepping feature is when I have printers on the bench for repair for testing. Just quickly fixing something and now your Z is out, use baby stepping to temporally correct it, then run a test print. Come back to run another one and completely losing track of the Baby Stepping. Also, when you've got 10 different things on the go around the print farm like I usually do, you tend to forget if you reapplied the baby-stepping after running a print, you look at the value listed within that setting and the values are piling up if you've run a few prints so you really have no way of knowing unless you're better at keeping track than I've been and I'm horrible at multitasking lol