I am trying to get my Express to work out of the box. I’ve spent some time now trying to get the Z-axis to function properly [Y works great; X is close but I’m going for one thing at a time here.]
The hardware on the Z axis is struggling to say the least. Sometimes it can move mostly up or down, but never all the way. The load is quite high and seems to be labouring.
One issue is just that in neutral, non functioning mode, the whole Z axis can sometimes just…fall? It spins with gravity right to the bottom. So I tighten the wheels and check the spacers, whether tightened or loosened, it still happens.
In both up and down directions, it will occasionally do a 3 move stutter and give me a relative movement error. Not always, but sometimes.
If it ever actually moves more than say 300mm without a stutter, it sure sounds like she’s struggling. Like the motor can’t handle the weight.
@kegli We have a feature called “Always Power Motors” to solve this problem. The reason this happens is that the weight of the Z-Axis is enough to pull the axis to the ground over time. By applying power to the z-axis at all times, it is possible to resist gravity:
Rory or Marc will reach out to you soon with regards to the other issues.
Thanks a lot! I wonder why it has to be so difficult, seems the stepper motor is not the right one for the task. I have not gotten mine to work yet, I also most of the days I have time to look at this problem run into problems with the message broker not connecting, and then I cannot operate the robot.
Thanks again!
Having tried several things with the Farm bot team (very helpful) the best setup for express z-axis seems to be
Motor always powered…
Stall detection off for day to day operations
Stall detection on for find home (but currently no UI way of doing this)
Ideally I want the find home to happen at boot, but the closest I could get was to create a lua sequence which runs periodically as part of other sequences…
See code / docs / limitations (e.g env values existing between reboots) at:
Hi @ranguard
In your sequence which runs on boot you could use the provided Lua function find_home(axis?) which performs “find home” on a specified axis.
I have code to find_home and enable / disable stall detection:
But I didn’t know about the sequence-on-boot! - though interestingly that seems to not allow sequences with variables (even with default values)… but I can hard code those - so this is great thank you.