If you are running into printing issues between OctoPrint and your printer like
- lines seemingly being skipped,
- endless resend loops,
- a flood of errors in the terminal tab
and your printer responds to an M115
information request with a line that looks similar to this:
ok CBD make it.Date:Nov 21 2019 Time:16:32:55
or this:
ok ZWLF make it.Date:Dec 19 2017 Time:20:47:53
your printer runs a firmware that has some severe errors in its communication protocol implementation which due to the identifying string on its most widely spread variant will be called "CBD firmware" going forward.
The printers currently known to ship with this broken CBD firmware (or a variant of it) are the following:
- Anycubic i3 Mega
- Xinkebot Orca 2 Cygnus
- Qidi Tech X-One2, Qidi X-Pro, and probably more models from Qidi
- Tronxy D01, Tronxy X5SA Pro, and probably more models from Tronxy
There are severe issues with this firmware that cause it to be incompatible to OctoPrint:
- It doesn't support an
N
parameter on the line number commandM110
that OctoPrint utilizes during handshake for maximum compatibility and will react with a non descriptive error to its presence, stalling communication. - It doesn't support
X
,Y
and probably also notZ
parameters on the homing commandG28
and will react with non descriptive errors to their presence, stalling communication. - It doesn't support
X
,Y
,Z
orE
parameters on the stepper commandsM18
andM84
and will react with non descriptive errors to their presence, stalling communication. - It uses
wait
(which should signal that the printer is waiting for new commands to be sent to it) to signal that it's busy and can't currently receive new commands (a situation for which there is actually an establishedbusy
response).
Since so many users are affected by this broken firmware and the printer vendors in question so far haven't been very forthcoming with fixing their faulty product, there's an OctoPrint plugin you can install to work around these issues if you are affected:
The plugin solves the aforementioned issues by
- Stripping any parameters from
M110
- Translating
X
,Y
andZ
onG28
intoX0
,Y0
,Z0
- Translating
X
,Y
,Z
andE
onM18
andM84
intoX0
,Y0
,Z0
,E0
- Rewriting
wait
messages toecho:busy processing
messages
This should work around the so far discovered errors in this broken firmware.
Before you go
If your printer shipped with this broken piece of firmware, please scream at your printer vendor to fix their product. Issues like this take up a ton of resources in support that are then directly lacking for maintaining and improving OctoPrint for everyone. Vendors should not get away with putting out faulty products and then basically abandoning them and having the Open Source Community fix them for them for free.