[Grbl_Esp32 Issue#302] Step invert — step pulse bleed

未分类 bolang 4个月前 (10-14) 58次浏览

Issue #302 | 状态: 已关闭 | 作者: jasonhillier | 创建时间: 2019-12-08

标签: bug


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

!grbl_bleedthrough

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)

!grblhardwareinvert


评论 (2)

#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.


#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.


原始Issue: https://github.com/bdring/Grbl_Esp32/issues/302

喜欢 (0)