All commands blocked after setting temperature

What is the problem?

I connect to the printer, can control movements, etc. from the menus. If i set the bed temperature to some value, it goes there. But after that i can't send any other commands. I looked at the serial.log and octoprint doesnt even generate "send" commands for anything else i try via the GUI. FOr example changing the temp again or going back to the control tab and manual trying to move.

This condition is only triggered after i change any value on the temperature tab. If i don't i can control the printer forever with the move commands in the GUI, it only goes bad after i set any temperature. And even after that as you can see on the log, Octoprint continues to receive messages from the printer. only receive as seen in the log and i can see them in terminal too.

Note: i am not printing anything, just manually controlling the printer from octoprint GUI

What did you already try to solve it?

restarted, tried different serial settings, etc.

Have you tried running in safe mode?

Yes

Did running in safe mode solve the problem?

No

Systeminfo Bundle

browser.user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15
connectivity.connection_check: 1.1.1.1:53
connectivity.connection_ok: true
connectivity.enabled: false
connectivity.online: true
connectivity.resolution_check: octoprint.org
connectivity.resolution_ok: true
env.hardware.cores: 2
env.hardware.freq: 2900
env.hardware.ram: 8230703104
env.os.bits: 64
env.os.id: linux
env.os.platform: linux
env.python.pip: 20.0.2
env.python.version: 3.8.10
env.python.virtualenv: true
octoprint.safe_mode: false
octoprint.version: 1.6.1
printer.firmware: Marlin bugfix-2.0.x (Sep 18 2021 00:09:29)
systeminfo.generator: systemapi

Here is the serial.log - the last "send" was line 140. after that no more sends even when i manually click temp change or moves on the menus. If i also write a command on the terminal and try to send i get nothing (no send registered in log file) so i don't think the printer is blocking anything as the "send" is not even attempted from octoprint

serial.log (14.1 KB)

*124

Do you have any fan speed plugin or something similar installed?
I'm asking because of all the M710 errors.

Please upload a full systeminfo bundle next time :slight_smile:

The M710 error was because i didn't have USE_CONTROLLER_FAN defined. Which i do now and the M710 error is gone, this is because the LCD is pinging for status i guess. Which of of course didnt fix the main issue. No plug-ins installed. Will upload systembundle next time :slight_smile:

with an additional note, if i reconnect octoprint i can again go change the temp just once (without restarting printer) I also tried connecting directly through a separate terminal app and can control temp and issue unlimited commands with no blocking

any other ideas?

The serial.log shared doesn't seem to have any temperature setting-commands in it? Just some auto-reporting, where the temperatures are unchanged.

I think I found it. Missed the first time!

Line 124:

Send: M140 S0

Is when i try to set it back to zero (it was in 60) previously

1 Like

Yeah, I spent a few minutes staring at that and missing it. What I don't see is any ok response, so this would be why OctoPrint doesn't send any further commands.

Way back at the start of this year, we had issues with oks for some commands being sent to the wrong serial ports (if there were multiple configured). I would guess you might have multiple ports, since the screen is using one.

Have you tried a few different versions of Marlin to see if it was a recent commit that introduced the problem?

Found that one as well. See in line 125, there's an ok on the end of that line. It should be on its own line, which would be why it's not been picked up.

you may be right here. looking at the log, after the M140 S0 is sent:

2021-09-18 09:29:12,040 - Send: M140 S60
2021-09-18 09:29:12,223 - Recv: //action:notification Bed Heating...ok

So it is not a simple 'ok' like the other ones, there is where Octoprint gets stuck. That Recv: needs to be simply 'ok' - the question is: is there any place in Marlin or in Octoprint to change/parse this properly?

1 Like

Try disabling action notifications in your firmware build and see if that fixes it. Looks like there's a missing newline at the end of all of them, since the one in the log provided above misses a NL twice & you end up with 3 commands at once.

do you know where in Marlin i can do that?

I think it's all under 'Action Commands' - here

ok, i disabled it and it is now working ... BUT what am i missing by disabling this?

Now what you can do is go to the Marlin repository, and submit a bug report here:

The best explanation is that action commands/notifications are missing a newline.

What you are missing out on is the printer being able to send action messages to OctoPrint, for example with filament sensors pausing the prints. It's highly recommend to enable that option usually, but at least now we know the cause of the problem, it can hopefully be fixed.

Seriously, this is not a WAD???!!! I thought this was some freaking safety Feature!!! LMAO!!!