What?! Need to update the printer Firmware ASAP!

in 3D Printing2 years ago

Watching more videos and it sounds like I need to upgrade my firmware to ensure I have the latest features and protection from fire risk with thermal runaway. Yikes!

image1.png

I've read and heard a lot about the Thermal runaway problems that could result in an unintended meltdown of your printer. Egads! That would be a bad thing. Luckily it's not often but it could happen and if there's a way to prevent it then why take the risk. I don't want my new printer to die a fiery death (check out this cautionary tale - Don’t burn your house down 3D Printing. A Cautionary Tale.)

Anyhow, there are more reasons to upgrade but where to start? I just bought the printer this year so surely it has the latest and greatest right? Nope. When I boot it I'm showing 1.0.1 for the Marlin version. Marlin is now up to version 2.0.x. Geez.

image3.png

Let's git at 'er

Easy-peasy. Download the version I need and flash the board, Bob's-your-uncle. Well hold on, not so easy seems like I've stumbled into a bit of a quagmire. Ender 3's seem to be out there with 8-bit and 32-bit boards. Now I need to figure out what board I received.

Had to open the hood and have a look. Looks like I have a 32-bit 4.2.2 version of the board. There's a 4.2.7 out there with updated silent drivers, but not mine. Definitely not silent :-).

image2.png

Let's get at it. Download the firmware upgrade and flash the board. Stock or BLTouch support. What the heck is that. Oh, automatic bed levelling - that's a shiny star...definitely on bucket list then. I've been suffering from bed levelling - it's an off and on relationship at the moment.

Following along with all the videos and articles out there I'll need to get an Arduino bootloader, cables and compile the code to load it. Gees, this is getting more complicated as I get into it. I was on a few forums and saw a few posts on the topic. The sun shined through and the clouds parted. I have the 32-bit board. I just need a microSD insert and turn it on.

Let's get under the hood

And another full stop. Sounds like we will need to compile the code first. Finally something I really know about. Boot up good ole Visual studio and install the PlatformIO extension.

platformext.JPG

Essentially at this point, you need to copy the correct config files into the build root. In my case for the Ender 3 with a v4.2.2 board the config files:

\Configurations-release-2.0.9.3\config\examples\Creality\Ender-3\CrealityV422

and drop them into the Marlin folder under the build Marlin Build:
\Marlin-2.0.x\Marlin-2.0.x\Marlin

imageA.png

You then need to open the PlatformIO project ini file in VS Code using the PlatformIO IDE extension. In the ini file you need to replace the env variable as follows:
[platformio]
src_dir = Marlin
boards_dir = buildroot/share/PlatformIO/boards
# default_envs = mega2560 <--- replace this
default_envs = STM32F103RET6_creality <--- with this line
include_dir = Marlin

So what did I just do there? By updating the env variable you've set up the build for the ARM chipset that comes on the v4.2.2 board. Otherwise, you are building against the Arduino chipset which will not work on the v4.2.2 board.

Enable (uncomment) the software support for the fan on this line below.

//#define FAN_SOFT_PWM

The next thing is to figure out the stepper driver chipset. Creality 4.2.2 boards may have A4988 or TMC2208_STANDALONE drivers depending on the board.

When you open the cover the have a look for a black marker letter on the microSD card reader. If they were nice enough they will have marked the chipset.

image4.png

C = HR4998
E = A4988
A = TMC2208
B = TMC2209
H = TMC2225

Reading through the comments in the file it looks like A4988 is assumed. So I should be good but best check yours.

After a successful build, you should be good to copy the files to a FAT formatted microSD card. All the files will be located in the following folder:

\Marlin-2.0.x\Marlin-2.0.x\.pio\build\STM32F103RET6_creality

Good to go? Maybe not

Copy the .bin file to the card. Put the card in the printer and turn it on ...
um, put the card in the printer and turn it on ...
again, card in turn on the printer and...
WTF?

Looks like the card I had was formated with exFAT, NOT FAT32. I didn't want to waste the brain cells figuring it out so I found an older microSD confirmed it was just FAT32 and moved the bin there... bingo, that worked and then...

imageb.png

Well, that can't be good.

One thing after another, always hate updating firmware. In this case, it's not so dire. The image loaded from the SD card does not match the one on the EEPROM. It needs to be initialized to the EEPROM. I ignored it, went into the configuration settings and selected initialize. Recycle and she boots just fine, no errors.

imagec.png

Now we have the latest and greatest Marlin (not the Creality) 2.0.9.3 version of the firmware. We've got a slew of new functionality and the added TRP that we were after in the first place.

Summary of the steps I followed (I'm on Windows)

  1. Determine the version of Marlin - Look in the about.
  2. Confirm the board version
    3. Buy Arduino Boot loader
    4. Install Arduino IDE
  3. Install PlatformIO (get the VS Code extension)
  4. Download the upgrade files from Marlin's website (2.0.x.zip and Config files)
  5. Recompile in VS Code with the config files
  6. Copy the build to the microSD card.
  7. Reboot the printer to update.

That's the gist of it. If you run into issues there are a lot of resources out there to help you muddle through it. Man, that was a crazy way to spend the day. Next, test the new firmware, let's hope it's all good. Hope you enjoyed my little adventure let me know below.

**N.B - Update

While I was going through all this, had typed it all up etc I found out that the Ender 3 Firmware 1.0.1 was actually Creality's flavour of the Marlin 2.0.1 which has the TRP updates in it already. So, TL;DR you don't have to upgrade the Creality 1.0.1 unless you want the latest and greatest features. Who knew. FML. I'm there now.


Resources:

Visual Code Studio: https://code.visualstudio.com/
PlatformIO: https://platformio.org/

Marlin's Websites
https://marlinfw.org/meta/download/
https://marlinfw.org/docs/basics/install_platformio_vscode.html


Follow along on some of my previous posts:
  1. And So It Begins - My Entry into the 3D printing realm
  2. Adding in Octoprint to the mix for managing the 3bForge
Sort:  

Nice job on this guide for the Ender 3 firmware upgrade. This machine can certainly be tricky at times.
I have the same board as you, and generally I need to keep all print moves below 60 mm/s or that motherboard will start sending rogue signals to the stepper motors and messing up the layers. If you ever have wildly shifting layers, this could be the culprit with the 4.2.2 motherboard.

It was recommended to me from someone when I first got the Ender 3 V2 to look into Klipper firmware, which is powered by Fluiddpi on the Raspberry Pi, and gives the ability to drag and drop your G-code files into a browser dashboard that you access through the Pi's IP address. This replaces that knob push button LCD screen and it can be disconnected altogether. It's a powerhouse in terms of user control, and has a lot to offer over Marlin. It's not for everyone but maybe worth checking out if you have a Pi laying around :)

Thanks appreciate the nod. Have not experienced the stepper misses yet but I'll watch for it. And yes lots of fiddling with the system. I do like the Ender so far, as you say though tricky. Especially around the bed levelling which is my main issue at the moment. Looking at the BLTouch now.

I'll definitely have a look at the Klipper firmware. Thanks for the tip.

Doh! added a comment and not a reply @futuremind - I'm a noob.

Hello dear @jasonbu! Happy New Year 2022. It's good to hear from you! I am so glad you are back. We are waiting for you. Best regards.

Leí por ahí de una persona que se le incendio su impresora, vi fotos y todo fue un desastre. Gracias por la guía.

Not good. I don't think I was at risk but it's always best to be safe. I saw too many posts that warned of the issue. I put a smoke alarm in close proximity as well.