Rotary Steps per revolution has changed?

I keep very detailed notes about using all three of my Lasers (CO2, Fiber Galvo, and UV Galvo). I also have three different Rotary attachments that I can use with each that are part of that documentation. My documentation with past experiences has always been reliable…

So, I have my PiBurn Rotary documented at 2000 steps/rev when used with my OMTech 80W CO2 laser (Ruida). Yesterday, when setting up the rotary for a couple of jobs, 2000 wouldn’t give me full rotation (I always check). It came up short. I did some additional testing and now I need to use 2500 to get full rotation.

???

The only thing which has changed is the most recent Lightburn update. I even re-loaded a saved config (specifically created for the Piburn Rotary on the OMTech 80W) and then wrote it to the Ruida controller. Tried again - this changed nothing. It still wanted 2500 steps (not 2000 as it had always been previously).

Anyone have a clue why this might have happened? The software in the Ruida controller has never been touched or updated. I obviously have the new setting I need, but I’m just not comfortable in not understanding why this might have happened…

Steps/revolution is not set by PiBurn, it’s how your hardware is configured. The ratio is PiBurn related.

This is different from mine… What is your motor stepper driver setting for steps/revolution?

Which PiBurn? I have a PiBurn 3.

This is the basic procedure… is this how you got 2000 steps/rotation?

:smile_cat:

Yes, this is my understanding as well. It should be controlled by my hardware - but NONE of my hardware has changed (although Lightburn HAS). I haven’t updated the code/firmware on the RUIDA controller, I haven’t made any changes to any controller dip-switches (even if there are any). But the steps/rev on my PiBurn 4.0 (w/Grip) used to be 2000, but now it apparently 2500!

I’ve used this many times at 2000/rev (and I always confirm), but now it needs 2500/rev. I even reloaded (and then “wrote” to the controller) a previous config I made just for using this specific rotary with this specific controller.

Nope, was 2000, now is 2500… I make a simple mark on my rotary head, run the rotary test, and look to ensure it makes a complete 360 rotation and then comes back.

Is it possible that the Lightburn Rotary TEST button no longer requests a complete 360 degree rotation? It used to! Could it be that it now only requests about 288 degrees?

I understand how steppers/controllers are SUPPOSED to work together. I’ve designed and built the hardware and coded the firmware and libraries to support them (https://github.com/HauteSolutions/USB-Stepper-Control). But none of that has changed in my environment. The only related thing which HAS changed was the recent Lightburn update. I’m not claiming its responsible, I just don’t know. Thats why I’m curious if anyone else has insight on what I may be missing…

If it was Lightburn, my rotary would also change, as would other people. We/they are not having this issue…

Lightburn or any other good software will not randomly change these values…

If you hand rolled some of the code, I’d look there… Never a good idea to do this unless necessary…

You’re also talking about a 25% change… that’s substantial…

My piburn has a 2.5:1 ratio, so my stepper drivers set to 2000 steps/rotation. The Lightburn gui has 2000 * 2.5 = 5000 steps/rotation. Is your motor driver steps rotation set to 1000 or do you have a different rotary?

Of what… the object … motor?

Don’t be offended by out questions, we have no idea about your or your issues or what you can or can’t do… just clarifying a few things… so we can help you resolve the issue.

Something has obviously changed…

I have a Ruida and I have fiber and on beta, all seem to work properly…

:smile_cat:

Yes, I understand that Lightburn shouldn’t introduce any such changes. But bugs DO happen…

Steps/revolution as set in the Lightburn Rotary Configuration dialog. IOW 360 degree rotation of the rotary head (chuck). Once again, I’ve set all this up before and run this many times. Its just not working like it used to

Are you sure your NOT also having this issue? Maybe I’m just the first one to report it… Have you confirmed that the Lightburn (current version) rotary TEST button still rotates YOUR PiBurn by a full 360 degrees?

This is not about any hand-rolled code… None of that has anything to do with anything (other than
illustrating a little knowledge on my part)…

The motor driver in my laser hasn’t been disturbed in any way. I’ve never even looked for the stepper drivers much less made any changes to them. I simply haven’t had any reason to mess with it…

Furthermore, a stepper driver typically microsteps (what you actually set on the controller) in powers of 2 - not by 25% (i.e. 200-400-800-1600-3200-6400 steps/rev, etc) IOW: A change to the stepper driver dip switches would typically result in the steps/rev being halved (50%) or doubled (200%) or some multiples thereof. Not a 125% sub-fraction…

Typically, most stepper motors have a full step resolution of 200 steps per rev. It’s up to the driver (controller) to microstep if you want smaller steps (with less torque as a result). But the PiBurn doesn’t include a driver. Its just a stepper motor connected to a chuck (in the case of the “grip” option) by way of a belt and a couple of pulleys. If the default PiBurn setting is 2000 Steps Per Rev then it would indicate the belt and pullies impart a 10:1 ratio (assuming a common resolution 200/rev stepper)

I can pull my PiBurn, hook it up to one of my own stand-alone controllers (TB6600) and run my own code to check the steps/rev in a completely isolated environment. However, I’m hoping this is not necessary…

I can also try one of my other rotaries (but I would expect a similar skew). I can also take the PiBurn and hook it up to one of my other Galvo lasers (Fiber or UV) to help determine if this is a situation unique to my CO2 laser controller…

I guess I know what I’ll be working on tonight… :wink:

Which PiBurn do you own?

I used my rotary multiple times on the fiber in the last week. Not the Ruida… but if I put the rotary in, I’m confident the drive wheel will turn completely in one direction and back.

Where did you get this? It’s 100% dependent on the stepper motor driver.

Do you know the ratio of the rotary?

Lots of us have rotaries we use a lot… I wouldn’t say there is no chance of a bug, but I think many of us would have found it by now… The beta version was beat on pretty well…

You an always go to a previous version of Lightburn and see it you have to change it back.

@JohnJohn may have some input here to help us figure out what’s happening?

What is your stepper motor driver setting for steps/rotation and what is the ratio of your rotary. Which rotary do you have?

:smile_cat:

One interesting possibility is a failing DIP switch on the stepper driver. You’d (well, I’d) swear such a thing couldn’t happen, but we had exactly that situation come through a while ago:

Changing from 2000 to 2500 is a factor of 25%, which is exactly what would happen if SW5 failed open on (for example) a DM542A driver: the step/rev setting changes from 4000 to 5000.

Ponder the table on the side of your driver to see if a single switch failure could add 25% to whatever the settings call for.

Once is happenstance. Yours might be the “twice” making it coincidence. If somebody else has it happen, then it’s definitely enemy action. :grin:

1 Like

Well, that certainly could be the case. Its interesting that you’ve seen it before. And, you are correct, I certainly would not expect it…

I think the easiest way for me to test that, is to just to run a simple square cut of known dimensions on the standard XY table of the laser. As with many CO2 lasers, my rotaries simply replace the plug on my Y-Axis.

If any of the controller configs (switches) have mysteriously changed (or failed), then I would expect the same skew (25%) to be seen on the Y-Axis of a “flat” acrylic cut as well. (As the rotary and the linear axis share the same socket & driver)…

If a standard “flat” cut does not similarly skew from the expected dimensions, then a driver/controller switch failure/bump should be able to be ruled out…

(I made a flat cut which was completely dimensionally accurate just the day prior…)

From the description in that thread, the switch (or driver) failure was absurdly sensitive to initial conditions / vibration / phase of the moon, so I think you can confirm there’s a problem (if it happens), but not rule it out (if it doesn’t).

I expected it to be a matter of flipping the switch and watching it not behave properly, which was totally wrong.

I loves me a good mystery! :grin:

The most simple way is to load the previous version of Lightburn you had installed and see if it fixes the issue…

The is the 100% best way to eliminate the version change question…

:smile_cat:

I’m gonna start with doing a few test cuts, playing with other rotaries, and maybe putting the PiBurn on one of my other lasers to see where the problem tracks…

I don’t want to start uninstalling and reinstalling software if I can help it… But thanks…

Unless installing the new version pooched a setting that’s not unpooched by installing the previous version. I don’t know how that happens, but a lot of folks claim to have it happen.

Wish I had a nickel for every time somebody stated they didn’t change anything… :wink:

:smile_cat:

Well, I get the joke - but don’t appreciate the context… I didn’t change anything. (period)

If I’m not being honest here - then I’m not really doing myself any good, am I? Particularly as the OP…

Anyway, I just ran a couple of tests…

  1. I unplugged the Rotary and reconnected my linear Y-Axis. Ran a cut job for a 50mm x 50mm square. Everything measured up properly. Barring something that reset itself after shutdown and restart, it doesn’t appear my stepper drivers have been reconfigured. (Switches bumped or something. I still haven’t looked for them…)

  2. I then unplugged my Y-Axis and plugged in my Rotary. (Yes, I normally do this “hot” otherwise the laser tries to run both Axis at startup until they hit the stops (which the rotary obviously does not have). …and yes, I could manually “stop” the initialization process, but its much easier to just swap the axis AFTER the machine completes its initial calibration.)

  3. I then opened the Rotary Dialog, set the steps to 2000 (and my typical project diameter of 87mm - not that it matters) and hit the test button. The rotary spun around several complete revolutions - and it didn’t sound like it was microstepping. It was actually pretty noisy as if it was full stepping.

  4. So I hit OK on the rotary dialog to close it and ensure the data was preserved. I opened it back up, confirmed the settings were saved, hit TEST again, and the rotary went through several rotations as it did before.

  5. So I loaded (and “wrote” to the controller) the machine config that I normally use for my rotary. I went back to the Rotary Dialog, confirmed my settings again, ran TEST, and now the rotary is running exactly one full rotation at 2000 Steps again.

It should be noted that I also loaded (and wrote) the very same machine config last night during my troubleshooting. I could never get the rotary back down to 2000. So I used 2500 all last night to run several power coated tumblers…

I specifically DID NOT load the machine config just now as I wanted to see what happens if I don’t and then when I do. Although loading/writing the machine config didn’t help last night, it did today.

The curious thing is that the only thing which I have changed between my “Linear” and “PiBurn” machine configs is basically some acceleration and max speed numbers. Other than the actual rotary section itself (in the machine config) there doesn’t appear to be any other related paramaters. BUT loading/writing the config did help TODAY. Curiously, the very same thing didn’t help YESTERDAY.

and TODAY when things were out of scale, I got several full rotations (could have been 10 if the driver was full stepping) - while yesterday I was actually getting a reduction in rotation…

Today the machine is behaving differently than yesterday:

  • Today it started by over-revolving while yesterday it started under-revolving.

  • Today, loading/writing the machine config resolved the issue. Yesterday, it did not.

I’m not sure why loading/writing a machine config should have anything to do with resetting any stepper resolutions. I don’t believe there is anything in the Ruida Controller which controls the microstepping resolution of the drivers…

Is it a requirement to write the full machine config after changing the Rotary settings in the Rotary Dialog? There is no indication of this in the Rotary Dialog and it certainly did NOT help yesterday…

I guess I need to go locate my stepper drivers so at least I can figure out what type they are…

Nothing to you, just we all hear that… it was more of a reply to @ednisley not any negative to anyone… I’ve felt that I haven’t done anything either… happens all the time with Windows…

Please don’t take this as directed at you… it’s just a general comment.

:smile_cat:

This is something of a digression …

@jkwilborn and I have a longstanding disagreement, but IMO the right way to plug / unplug steppers is with the power off. Hot plugging requires the stepper drivers to absorb all the winding energy while not being damaged by the arc voltage, which seems like a Bad Idea™ as a matter of general practice.

As with all risky behavior, most of the time, it just feels good.

Because a rotary typically has slower and gentler speed / acceleration requirements and lacks a home switch, you can set up a specific “rotary” configuration in addition to the normal “linear” configuration, saving the files with the LightBurn Machine Settings dialog. Before shutting down, you load the appropriate file for the machine when it starts up the next time.

Then turn the power off, swap the motors, turn it back on, and all is right with the hardware: no errant homing, proper speed / acceleration limits, no risky behavior, no excitement.

As a medic at a marathon once told me: “Boring is good.”

Getting a picture of the config tables on the side will answer many questions. Note that the driver model number (M545) typically has a suffix (M545A vs M545D) that is absolutely critical to know, per the discoveries in an ongoing discussion.

Then the switch settings give you the winding current and the number of steps per motor revolution, both of which will be interesting to know.

Another thing to ponder.

Is the stepper motor on the rotary a different size than the one for the Y axis? For example, if the Y axis uses a NEMA 23 and the rotary uses a (smaller) NEMA 17, then the driver will badly overcook the rotary motor. This can lead to erratic behavior, particularly for high step/rev settings.

@jkwilborn discovered the drivers in his laser were preset at about twice the recommended current for a NEMA 23 motor, which would do horrible things to a NEMA 17 in a rotary.

I don’t think there is a disagreement, you are right and you shouldn’t do a hot swap…

I don’t always follow the rules… either…

:smile_cat:

I know where the drivers are but I can’t swing out the side doors unless I move my laser (undoing ducting, etc). I’m not going to do that right now as I will have to move it anyway very shortly when I prepare to install an A/C mini-split. I’ll likely be able to get a peek inside in the next couple of weeks.

That being said, I understand (and appreciate) the concerns about switching steppers while the driver is energized. It shouldn’t cause any issues, but there will be a current surge as the driver is actively clamping the stepper during the process. I would certainly feel better about it, if I could temporarily disable the stepper outputs. I can easily do this using my own code (by using the DisableOutputs() and EnableOutputs() of the public domain AccelStepper Arduino Library). However, I am usure of what the specific GCode might be for my Ruida Controller (via Lightburn). (Disabling the outputs of a stepper driver results in the stepper being able to free wheel rather than being locked or clamped. It effectively eliminates any/all current being delivered by the driver to the stepper). If anyone can confirm a specific GCode command (M18? M84?) I can issue directly from Lightburn to do this (Enable/Disable Y-Axis stepper outputs) that would be a really good test.

I am also unsure that there is anything in the Machine Config which can prevent the laser from trying to home the steppers on start up. There certainly doesn’t appear to be any such settings exposed in the Machine Settings dialog. Again, the only changes I have made between my linear and rotary machine configs are all speed and acceleration related. I’m pretty sure the rotary axis would try to home itself (unsuccessfully) regardless of which machine config was loaded. In fact, I’m pretty sure this is why I originally decided to simply hot swap the stepper connection (because the rotary just kept spinning at startup and never triggered the home stop on the linear axis). Perhaps the mere action of writing a config (any config) caused the logic reset necessary to clear the issue…

Regardless, none of this explains why loading/writing the machine config solved the problem yesterday but did NOT solve the issue the day prior. As a professional working in the computer industry (inc tech support) since about 1980, I’m pretty careful in planning and documenting my diagnostic processes…

Right now, the only credible explanation (discussed so far) - of why I might be seeing the stepper resolution changing - involves a failing or confused stepper driver (dip switches or otherwise). …and I agree, hot plugging the stepper axis could be what’s aggravating this issue. The fact that the resolution increased one day and then dramatically decreased the day following indicates some form of instability (otherwise I would expect the reolution change to be consistent).

I’m going to run some tests this weekend to see if I can develop some sort of cold start procedure which does not try to home the y-axis (causing the rotary to spin endlessly while it searches for the end stop).

I can also try manually issuing GCodes (maybe M18 or M84 - not sure of what the Ruida wants) to disable the steppers before I swap axis.

Still looking for this answer though: Can someone confirm that we don’t need to manually WRITE the controller config (from Machine Settings Dialog) after we make changes in the Rotary Config dialog? IOW - Making changes in the Rotary Config dialog takes effect immediately (when pressing TEST or OK), right?