What version of the firmware are you using?
“
commit b88d83f66e587ff65349630f6206f4d6e59b50b6
Merge: 11c8edc 137f9c2
Author: bdring
Date: Tue Nov 5 08:59:51 2019 -0600
Merge pull request #283 from bdring/Devt
“
Is the problem repeatable?
yes. can be seen when only moving one axis at a time.
Under what conditions does the bug occur?
When step invert mask ($2=1) is set to true, on any axis
In the above case, you can see when Channel 0 steps, it bleeds through to the inverted step axis (Channel 2)
If I invert the step pin to idle at high in hardware, there is no bleed through ($2=0)
评论 (2)
#2 – terjeio 于 2019-12-08
It looks like a step inversion issue to me. A possible workaround is to enable USERMTSTEPS in config.h.
Edit: try with setting st.stepoutbits to 0 in stwakeup() (line 677) and comment out st.stepoutbits ^= stepportinvertmask; // Apply step port invert mask in onStepperDriverTimer() (line 418) as step inversion is also performed in setstepperpinson(). IMO doing it twice causes the issue. Be aware that I have not tested this change so I may be wrong.
#1 – jasonhillier 于 2019-12-08
I’ve also written a simple sketch the pulses one pin or the other (from HIGH), and there is no bleed-through. So I am certain it is a software bug, not a hardware issue. Tested on multiple esp32-s to make sure.
I have a hunch it may have something to do with the esp32 multi-threading. But I have not had time to look into it.