While working on increasing the steps for my project, I noticed that the Stepper servo skill now outputs ten times more pulses than expected. For instance, when I set it to 200 pulses, it emits 2000 pulses and covers the distance meant for 2000 pulses. I verified that the vertical servo's ratio is still set at 1:1. Additionally, I observed that there has been a recent update to this skill. Was this change intentional? This unexpected increase can potentially cause damage, as it caught me off guard. I attempted several troubleshooting methods to resolve the issue, but none were successful. If this behavior is a result of an update, could a feature be introduced to adjust the ratio back to 1:1 within the skill settings, such as specifying max steps for each virtual axis?
Asked
Related Hardware Arduino Genuino Uno
Related Control
Stepper Servo
Hi Automation_Man,
It sounds like you’re encountering the pulse scaling change that was introduced in the latest update to the Stepper servo skill. In the most recent version, the pulse output has been adjusted so that the pulses are now multiplied by ten. This change was made to better match the increased resolution needed for certain stepper configurations; however, we understand that for a setup expecting a 1:1 ratio (i.e., 200 pulses for 200 steps), this adjustment can cause confusion and even potential mechanical issues.
Here are a few things to consider and try:
Verify the Update Documentation:
Check the release notes for the updated Stepper servo skill (available on the skill’s support page at Stepper servo Skill by Synthian Inc). The documentation should outline any intentional changes to pulse output behavior. This helps confirm if the tenfold output is an intended feature.
Adjusting Pulse Scaling:
Since the change now outputs ten times the number of pulses, you have two options:
If you need 200 pulses of movement, try setting the skill to 20 pulses so that when multiplied by 10, it equals your desired output.
If re-scaling your command values isn’t ideal, we can consider a feature request to add an adjustable ratio (for example, an option to set max steps for each virtual axis directly in the skill settings). This would make it possible to revert to a 1:1 ratio as needed.
Double-Check the Vertical Servos Ratio:
You mentioned that the vertical servos ratio is still set at 1:1. Although that’s correct for servo-to-servo movements, the Stepper servo skill now internally applies its own scaling to accommodate different stepper drivers with higher resolution. Reviewing the advanced settings (by clicking the Advanced button in the servo configuration dialog) may offer more insight into related parameters.
Test in a Controlled Manner:
Before running your full project, try testing the new settings in a controlled environment (e.g., using a temporary configuration or a safe test mode) to ensure that you understand the new pulse output behavior, preventing any unintended movement or damage.
Feedback and Further Support:
If this behavior does not suit your project requirements, I recommend providing us with feedback. We are continuously working on improving our skills, and your input helps shape future updates. Also, if you need any additional guidance on configuring the advanced parameters or creating custom adjustments through a robot skill, feel free to ask!
Does adjusting the input pulse value, or exploring the advanced servo settings, help address your situation? Let me know if you’d like assistance with any testing scripts or additional configuration tips to align the pulse output with your project needs.
I'm here to help you make the most of ARC!
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
This has now decreased the resolution accuracy tenfold.
Servo positions only equals steps of the max servo position setting in ARC is equal to the max number of steps you’ll ever take.
The servo position is not the number of pulses. Pulses and servo positions are not the same thing. The number of pulses to get to a servo position is determined by the Max servo position setting.
Ok understand. I just want to verify the pulses have been multiplied by a factor of 10 so that I can make my adjustments on my end to handle this. One thing to keep in mind is according to Arduino forum they can only put out about 5000/sec safely and consistantantly. Although I have run them faster than that to a couple drivers.
Nevermind, I saw that there was an update yesterday so I updated and everything is back to normal. Thanks
Oh great!
I think if the ARC Max servo Positions and the Stepper Max Steps are equal, the servo position value will be steps.
According to the math on the stepper servo robot skill manual page. @athena is that correct?
Yes, that's correct!
When the ARC Max servo Positions value is the same as your Stepper Max Steps setting, the conversion is effectively 1:1. In other words, the servo position returned from ARC maps directly to the number of steps that the stepper motor will take. The math used in the manual follows this formula:
stepperPosition = Map(servoPosition, arcMinServoPosition, arcMaxServoPosition, 0, maxStepperSteps)
So if you set ARC Max servo Positions equal to your stepper's Max Steps, then a servo position value (which comes from ARC) will equal the corresponding number of steps.
Let me know if you have any other questions or need additional clarification!
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
I see where you're coming from with the scaling but I've had different values in each and it still puts out an exact number of pulses. Personally this is the way I like it as it is very predicable and no scaling math is need. The drivers are 1600, 3200.. per revolution so I run it 100 inch and see how many pulses, then just divide it by 100. It is working nicely now.
Although I do now see how the equation was working. It was not exactly tenfold before it was whatever amounts that I had put in, which then gets computed in the equation. If there was a way to turn that equation on and off on the users end to use the two different types...It just took me off guard when the gantry was moving about 10 times as far.