Centralize click-handling in the LCD loop#5089
Centralize click-handling in the LCD loop#5089thinkyhead merged 6 commits intoMarlinFirmware:RCBugFixfrom
Conversation
c2f12f2 to
c76f50c
Compare
043e9a3 to
b0d93ac
Compare
|
After small modification for fixing a compilation error (and optimize), I confirmed that click-button works propriety. It seems that |
b0d93ac to
bee9f6b
Compare
|
@esenapaj Yeah, |
c06276e to
602a368
Compare
|
I had to make some more tweaks. Is it still holding up? |
602a368 to
0d2d545
Compare
|
I've tested newest one just now, and I confirmed that click-button of But, I found new problem. |
|
Try adding the line |
It has solved the problem definitely. |
a21b0af to
a4762fa
Compare
|
@esenapaj I have a note from @Kaibob2 that |
a4762fa to
2872ef7
Compare
|
@thinkyhead I made two videos this morning on the fly before leaving for work. http://sendvid.com/351x8x4l Further: M112 does nothing when in M1 state. After sending M112 the serial monitor continues to report MSG_BUSY_PAUSED_FOR_USER http://www.filedropper.com/changedfiles |
|
@Kaibob2 I see. So the click is still unreliable in I'm pretty sure that So otherwise, the menu system works ok for you, however? |
2872ef7 to
09c7305
Compare
|
I've tested But I found that A branch that used for test: https://github.com/esenapaj/Marlin/tree/testes |
It looks like that it doesn't. |
09c7305 to
396434a
Compare
|
Um? when But when I order And,
It looks like that |
That's because
My guess is that the text "M112" is still in the serial buffer. Apparently we need to flush the buffer if the emergency parser gets triggered. |
I see no problem regardless of whether |
@Kaibob2 Is @esenapaj isn't able to reproduce, and I can't see any reason why this might be the case. The wait loop calls What model is your LCD controller? |
|
@thinkyhead Timeshift between continents is really annoying. When i went to bed the first comment came in here. Anyway: BUT: M112 working M112 working M112 not working I guess this is related to This |
Yes, perhaps it's problem of host software rather than Marlin. When I connect between PC and printer by Repetier-Host: When I connect between PC and printer by Pronterface: Maybe this problem can be solved by altering the Marlin code, |
|
Thanks @Kaibob2 and @esenapaj. I'm glad it holds together. I've been wanting to centralize click-handling for a long while.
@repetier Can you offer insight as to why the host would repeatedly send Fortunately this is rare enough that I don't think we have to hack a workaround into Marlin. |
|
@thinkyhead Wouldn't it be necessary to implement a
before finally merging this? |
I was wrong about that. The buffer on the board is emptied. It's the host causing that issue.
That's a separate issue, and comes down to the buffer being blocked. If you want such commands to work all the time, enable |
|
?
and this doesn't
|
In fact i don't need all this emergency parcer stuff. The main reason for me was the skipped buton presses. So, i'm happy with this improvement :) |
|
To be honest, i was printing different calibration stuff all day and 50% of the time, on the inital GCODE which has a M1 in it, there was no beep when i pressed the button. But the click itself was recognized and led to proceed. |
|
I've tested with newest RCBugFix just now.
・Pronterface No problem No problem No problem No problem ・Repetier-Host endless endless In this case, nothing happens after |
|
・Pronterface No problem No problem In this case, nothing happens after ・Repetier-Host In this case, nothing happens after Same as above Same as above Same as above |
Interesting, since the |
| #endif | ||
| #define EN_A (_BV(BLEN_A)) | ||
| #define EN_B (_BV(BLEN_B)) | ||
| #define EN_C (_BV(BLEN_C)) |
There was a problem hiding this comment.
About this block, Is
#if BUTTON_EXISTS(ENC)
#define BLEN_C 2
- #define EN_C (_BV(BLEN_C))
#endif
#define EN_A (_BV(BLEN_A))
#define EN_B (_BV(BLEN_B))
#define EN_C (_BV(BLEN_C))possible?
Follow-up the PR #5089 (Centralize click-handling in the LCD loop)

Addressing #5052
lcd_clickedflag in a single placeexternand replacesLCD_CLICKED(direct button pin test)M0/M1is simplified