I cannot successfully print on my printer running a firmware identifying itself only as "CBD make it" or "ZWLF make it"

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 command M110 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 not Z parameters on the homing command G28 and will react with non descriptive errors to their presence, stalling communication.
  • It doesn't support X, Y, Z or E parameters on the stepper commands M18 and M84 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 established busy 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 and Z on G28 into X0, Y0, Z0
  • Translating X, Y, Z and E on M18 and M84 into X0, Y0, Z0, E0
  • Rewriting wait messages to echo:busy processing messages

This should work around the so far discovered errors in this broken firmware.

:point_right: 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.


can we just call this the 420 error?