Ender 3 Max Firmware Update Problems

I’m setting up an Ender 3 Max. I’m adding a CR-Touch and am running it plugged into a Raspberry Pi running Octopi/Octoprint. I’ve run into several problems:

  • The stock firmware seemed to run the printer OK, but when connected to OctoPrint I got:
  • The only version on Creality’s site that has touch sensor support is:
    Ender-3 MaxMarlin2.0.6HW4.2.7BLTouch firmware 13 Aug. 2021
    which gets rid of the error but won’t drive the steppers correctly- if I try X, Y, Z, and E steppers they make a noise, have no significant motion, and then give me an error and message that the printer needs to be rebooted.
  • I tried an older version without touch sensor support and it did the same thing. Since the files are not labeled consistently I didn’t figure out that the 4.2.7 was the board version till later and I don’t see any way of telling what board I have without disassembling the printer.
  • I tried a version with 4.2.2 (it had 3 different bins in it, labeled differently and the readme was in Chinese making it useless, I chose the one with the highest number/most recent date) and the steppers work again but I’m getting the firmware error in OctoPrint and no touch sensor support.
  • I don’t see any other firmware available, at this point, I’m assuming (I don’t know) that I have MB version 4.2.2 and an actual Creality branded CR Touch, I’ve followed the links in both the instructions and online with no luck.
  • I use the OctoPrint/OctoPi to automate things, it appears the Ender 3 Max board pulls power from the USB port so even if I kill the power supply on the printer it still pulls power from the R Pi causing it to do weird things (I’m assuming that it’s pulling too much power from the USB port), and I can’t get a reboot without physically going to the printer and unplugging the USB from the Pi.

How do I get the correct firmware?

How do I fix it from pulling power from the USB?

1 Like

Hi @Silverback and welcome to the forums.

Sorry to hear you are having issues connecting to the printer with OctoPrint.

If you click on Learn More… it should give you instructions on what you need to do to rectify the issue. Its usually a case of installing a plugin to get things working.

I would also recommend plugging the USB cable in to one of the black sockets on the Pi instead of a blue one as this can also sometimes cause issues.

In terms of the USB powering the screen, what you ideally need to do is tape over one of the pins in the USB connector to isolate the 5v power rail so that the printer wont be powered on by the device.

How do I get the CR Touch sensor working?

@Nikoli Thanks for the response, but I’ll be honest, running a plugin to cover up problems with an ancient version of incorrectly compiled firmware, and taping over the pins in a USB cable (possibly also a firmware problem, possibly a hardware design problem) both seem like fairly unreasonable hacks from one of the leading companies in the market.

I’m also shocked that I needed to get on Creality’s forum and ask questions about problems that appear to have been around 2-3 years (I’ve done a bit of searching online and been able to find plenty of “I upgraded my firmware and my steppers stopped” and similar related questions) with no answers at all outside of "on this list of machines Creality compiled Marlin incorrectly (wrong stepper definitions and a few other things) and you need to grab a current version of Marlin and recompile it correctly.

I am capable of doing this myself, but this is something that Creality should have done at least 2 years ago and have updated with the more recent versions of Marlin maybe a few months ago and posted to their site and I’m also surprised that the community doesn’t have pre-compiled versions in a file repository somewhere.

@Nikoli I don’t know if you’re just a forum expert or if you’re associated with Creality, but either way, being Creality’s forum I’m hoping someone from Creality is reading this:

I bought this 3D printer, specifically from Creality because they (you) have been heavily involved in the market and seem to have brought 3D printing to a lot of people, thinking “I’ll just pull it out of the box and it will work, and if I have problems I’ll have a lot of support and the problems will be worked out already.” I’ve since bought a Creality Falcon 2, 40W laser also which got set up first (the printer sat in it’s box for a bit because I have another one that I’ve been using for years).

In both cases now I’ve run into stupid problems (the Falcon 2 shipped with firmware that had issues, out of the box I had problems with the lens detection system and the laser head mount was assembled to the gantry incorrectly causing it to flop around. I was completely unable to find any information or get any support and conveniently know enough about these things that I just took it apart and figured it out (I still haven’t found any instructions or parts diagrams that show how that assembly was supposed to be assembled). I chose Creality over a 40W D1 strictly because Creality had the bigger name and after talking with a Youtuber that reviews these things he recommended that the Creality was just better worked out, you’ll be able to just pull it out of the box and just use it. I wasn’t afraid of “working on it some,” I can do that, I DIDN’T WANT TO. I PAID EXTRA NOT TO HAVE TO.

I say I’m capable of compiling my own version of Marlin, my previous 3D printer was a Frankensteined Anet A8 kit that I bought off someone who broke a bunch of acrylic parts building it that I used as a “build your own” 3D printer kit. It’s still running an 8bit board and I’ve gone through multiple hardware and Marlin upgrades. Currently, it’s running Marlin on it with a touch sensor, a filament sensor, and other stuff, so I had to go through and strip that version of Marlin to fit in the limited memory of the 8 bit board and compile correctly, it’s barely recognizable as an A8.

I can build and fix these things but I bought this printer from a major player in the market so I wouldn’t have to, I have a use for these machines and I didn’t want to waste my time building and fixing my tools, I just wanted to pull them out of the box and use them. It took me 4 days just to get the basics working correctly on the Falcon 2, I’m past that with the Ender 3 Max and still have more problems that I haven’t addressed (I’ve been wanting to try a couple of prints to see how big a thing the other problems are).

Until now when people asked me for recommendations I tell them about my experience just short of building my own, and recommended the Enders, worked out and simple as a better choice, but it appears that your products are not worked out, and my best guess is for the average buyer they should spend a couple $ more and get a Prusa or Bamboo labs…

I fear that you misunderstand how the relationship with Creality printers and Octoprint works… Creality do not design their printers to work with Octoprint, in fact as far as I am aware no manufacturer specifically designs their printers specifically for Octoprint. Instead Octoprint is designed to work with printers and modifications are constantly being made to Octoprint to support more printers and features. As a result sometimes plugins are required within Octoprint to enable proper communication with the printers, this is not a fault with firmware, a patch or a workaround. This is purely to enable to software to communicate with the printer.

Printers were never really designed to have powered devices plugged into them, the only time a powered device would usually be plugged into a printer is for on the fly firmware upgrades or configuration changes (usually at the factory). All USB devices use a 5v rail for power to be fed to the device connected on the other end, in this instance 5v does not need to be supplied to the printer as it has its own power supply and only requires the data lines to communicate therefore you should tape over the 5v pin. This is not a design flaw with the printer nor a fault with the firmware. This is just the nature of how USB works and always has worked.

Creality are always putting out updates as and when neccessary, unless users are reporting issues with certain aspects of the printer then there is no need for them to update the firmware. Octoprint will happily work with older versions of Marlin but often a plugin is required within Octoprint to function correctly.
There are actually many variants of community based firmware out there which you are free to try if you wish such as mriscoc which I believe has been modified to work on the Max printers and also ChadDevOps who has also compiled a firmware for the Ender 3 Max. Creality do not compile a list of them as developers come and go all the time meaning that projects could be retired or abandoned at any time.

No, I am not associated with Creality other than being a forum moderator.
I am merely hear to attempt to help people when I can.

Hope the above clarifies a few things for you.

@Nikoli you can argue that this is not intended to work with that or that, but that is clearly not the case with what I’m asking.

The original reason that I messed with the firmware was to install a touch sensor. None of this answers how I get the CR Touch (Creality touch sensor, comes in a Creality box with their little super hero log on it), which is listed as working for the Ender 3 Max, which comes with a plug-in cable that plugs into the Ender 3 Max motherboard, a diagram showing that motherboard, and a bracket that bolts to the nozzle carriage of the Ender 3 Max with a link and a QR Code that takes you to Creality’s firmware site but there is no working firmware there.

The only firmware update listing the sensor on the site, listed for the Ender 3 Max DOES fix the temperature reporting problem through the USB interface (which you claim is not a firmware problem), it does seem to communicate correctly with Octoprint, it does seem to enable the touch sensor, but it bricks the stepper drivers (they make a noise and don’t move from the control panel/knob, console, octoprint and from gcode).

You say that:

but this is a clear example of Creality products that do not have appropriate firmware even with CURRENT products that themselves come with a link to Creality’s firmware site. The most recent version was put up on the site 3 years ago and complied with Marlin firmware a full major release back and originally from 2014 (and there are versions in that same zip file that are older than that).

I’ll agree with you, that is how USB works, by specification. So if the motherboard draws power from that pin, by firmware or hardware design, it is not designed correctly.

And heck, if all these are “features” (bugs in IT parlance) and Creality is on top of it, why is none of this documented anywhere in the instructions?

First off I would like to make it clear that at no point was I arguing with you, I was merely providing some context and information surrounding some of the aspects of how these things work. OctoPrint is a third-party software project that was founded and developed by the very talented Gina Häußge and her amazing team of developers that she has around her constantly contributing towards the project. The OctoPrint project is always evolving to work with new printers and even some older machines that people want to work with the software. The software was always designed to work with 3D printers, new and old, printers are not specifically designed for OctoPrint. The fact is that most will work due to the fact they mainly run Marlin or Klipper firmware which the OctoPrint team are able to integrate into their software due to the fact the firmwares are open source.

Some printer manufacturers need to make changes to these firmwares to either add modified functionality for some of their addons or edit some of the existing code to ensure that the firmware is configured to work with their hardware. As a result this can mean that some firmwares might not be as up to date as the public release of the firmware but the manufacturer does tend to put out a version that works with their machines/hardware albeit sometimes an older version than the mainstream public firmware. Unless the manufacturer releases new addons specifically for that printer then there is no requirement to change or update the firmware at a later date as the machine will continue to work just fine on its current latest firmware.

As a result of these modifications the OctoPrint team and/or community will often put out plugins to keep or make printers function correctly with their software. For instance if newer code languages are introduced in the software due to depreciation of older programming languages a plugin may need to be made to keep things working with older machines/code. Thankfully the OctoPrint team willingly put in the hard work to keep everything working properly.

Moving on to the CR Touch sensor… unless you know which motherboard you actually have in your printer it can be hard to determine the exact firmware that you need. You would need to open the printer to view the mainboard. On top of this you would ideally also need to check the large black chip on the board near the version number to see if it has GD stamped on it or STM stamped on it as this will also determine another variable in which firmware you require.

The reason why the firmware has not been updated in this time is as I have mentioned above… there have been no changes to the way the addon hardware communicates with the printer since that firmware so there is no reason or need to update it.

You seem to have overlooked my explanation in the previous post about firmware flashing… without a 5V line how would the printer be able to initialise devices such as USB sticks and SD cards? So yes it works to specification as it should. It is not the printers fault that the Pi wants to feed 5V down the USB cable :slight_smile:

1 Like

I have the 4.2.2 board with the newer chip/memory configuration.

I’m afraid I have to disagree with that very strongly. Not only are there tons of features added to the newer firmware that improves both speed and output quality (for example arc welder), and Creality’s most recent compile is a 1.0.x, designed for 8 bit boards where we’re currently at 2.1.x which was designed to take advantage of 32bit boards like EVERY current reality product now has. Without upgrading to a 2 series firmware it is impossible to take full advantage of the existing hardware but you can’t take advantage of the advances in slicer software, especially Prusa Slicer and Cura’s current versions.

  1. I haven’t seen any evidence that you can do upgrades from the USB port, all the documentation shows only the mSD card slot,
  2. Even if you could that is irrelivant, the problem isn’t that the USB connection is powered, it’s that it draws power from the USB connection if you plug something like a Pi into it, keeping it powered up when it shouldn’t be.

At this point all this is moot, I grabbed the latest 2.1.x Marlin and compiled it for my Ender 3 Max/CR touch. Exactly what I didn’t want and shouldn’t have to have done.

I guess it took less time than the time I spent trying to find a solution where Creality published it was and I haven’t gotten a response from Creality support anywhere.


Would you be willing to share your updated firmware?

Thank you,