Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"B:" in an M114 response line is interpreted as bed temperature #1373

foosel opened this issue Jun 15, 2016 · 0 comments


None yet
1 participant
Copy link

commented Jun 15, 2016


Marlin's output for M114 with COREXY enabled looks like this:

X:-25.00 Y:230.00 Z:140.00 E:0.00 Count A: -2500 B:23000 Z:56000

The B: contained therein will trigger OctoPrint's current temperature processing code and hence 23000 will be plotted in the graph as a bed temperature until a new and correct bed temperature gets reported by M105.

We can't just have it stop reacting to lines that contain a B: but no T: since that would break temperature updates during blocking heatups (e.g. M190), which will lead to lines containing only the current temperature of the bed while the heatup is active. We can also not just only listen to "singular B:" after we've sent an M190 since that would make us stop detecting heatups triggered by external means (e.g. an M190 in a file on the printer's SD card).

(see also this discussion on Facebook where this issue was reported by a user)


Add handler code for M114 responses (contains X:, Y:, Z:) before the handler for temperature responses. Since a line can only be one or the other, temperature parsing will be prevented by this. Long term we want to parse M114 anyhow.

Alternatively (or additionally) make the B: code in the temperature parser only match if no A: is present as well (which hints at the line being something else than a temperature line).

@foosel foosel self-assigned this Jun 15, 2016

@foosel foosel closed this in ad201b0 Jun 16, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.