Hello, 3D Printing Friends!
Today on the BV3D Channel, we’ll learn a little bit about a new firmware build for
the Ender-3 V2, and how to install it!
Stick around and we’ll get into it right after this.
I’m Bryan, and YOU… are watching BV3D!
Hi, welcome back!
Hey, if you’re new here, and you’re wanting to learn about 3D Printing, 3D Modeling, and
other 3D Printing-related stuff…
Start now!
By subscribing, and clicking the bell, so you don’t miss anything.
OK, so today we’re going to check out a new fork of the Marlin 3D printer firmware
specifically for the Ender-3 V2, by GitHub user Jyers!
It’s called…well, until recently it was called Ender-3 V2 Extensible UI, because it
had been developed around a Marlin framework called Extensible UI.
But that Marlin feature was intended for LCDs that aren’t directly controlled by Marlin,
and instead communicate via a lightweight serial protocol.
Such as touch screens.
So Jyers is no longer making use of that framework, and a lot of rewriting and refactoring has
probably been taking place behind the scenes.
And since it’s not using the Extensible UI framework any longer, it’s been rechristened
JyersUI.
So, why does this even exist?
Well, Jyers says, “This fork was created with the intention of giving the best possible
experience to E3V2 users.”
And they’ve got a point.
As good as the Ender-3 V2 is right out of the box, there ARE some issues with the firmware
that need to be addressed.
What kind of issues?
Well...
The stock firmware doesn’t support the “filament change” commands, so you can’t easily
do filament swaps mid-print.
So, for prints that are multi-color based on changing filament for certain layers, this
is a real challenge.
The stock firmware also saves settings changes to the MicroSD card instead of writing the
values to the EEPROM on the main board.
This means if you customize certain settings, like jerk, acceleration, or steps-per-millimeter
for the stepper motors, those settings stay with the memory card, not with the printer
itself.
And moving the card between printers causes problems when the hardware doesn’t match
the settings, such as the case where you’ve installed a Bondtech-style extruder that requires
three times the number of steps to move filament.
The stock firmware only shows the first 16 characters or so of a filename, making it
difficult to tell if you’ve selected the right file, when you have similarly named
files.
Sometimes you’d have a hard time picking the right file to print.
Other issues are that you can’t adjust the screen brightness, you can’t disable the
“click” beeper, and there’s no assisted leveling feature available.
Now, I know the stock firmware IS available in a version that supports the BL-Touch, but
even with a bed probe, it’s still good to have the bed properly adjusted.
So that brings us to the JyersUI firmware.
It has assisted manual leveling; Manual Mesh leveling;
Automatic Mesh leveling, which means it supports a BL-Touch;
Live Z offset adjustment that works; Additional customizable preheat presets, so
you can have presets for PLA, PETG, ABS, and set them the way you like.
It supports assisted loading and unloading of filament, AND supports the M600 G-code
command to pause & change filament during a print.
It shows the full filename by scrolling it horizontally, both when selecting files to
print, and during a print.
If you’re using a BL-Touch with the standard Creality probe mount and hot end, the probe’s
X and Y offsets are set correctly.
If you’re using a non-stock probe mount, you can edit the X and Y offsets from the
screen.
You can perform a PID Autotune right from the screen, too.
It offers screen brightness control, you can turn the click beeper off, and you can select
color schemes for the screen.
It also shows the total number of prints, the number of SUCCESSFUL ones, and how much
filament has been pushed through the printer.
And, it works with OctoPrint to display the filename and printing progress on the screen.
Oh, and did I mention that it’s free?
Yep, it’s free.
Doesn’t cost you a darn thing.
You can either compile it yourself, if you have the right toolchain installed and set
up for compiling Marlin, or you can pick from a BUNCH of precompiled binaries, ready to
install.
In this video, we’re going to pick from the precompiled binaries.
You can get to these in your web browser by going to GitHub.com/Jyers/Marlin/releases,
and you can find a link in the description.
There are two components to this, updated screen firmware which contains revised icons
and the like, and the associated Marlin firmware for the main board.
The updated screen firmware is an optional extra, and gives a refreshed look to the user
interface.
Here’s what you’ll need: Your printer’s current values for Jerk,
Acceleration, and steps-per-millimeter for the X, Y, Z, and E axes.
The version number of your Ender-3 V2’s main board, which will either be a Version
4.2.2 board or a Version 4.2.7 board.
You’ll need to remove the bottom cover of the electronics bay to look at the board and
see what you’ve got.
A MicroSD card that’s 8GB or less, formatted as a FAT32 volume.
A precompiled binary selected from the big list of precompiled binaries.
And the display firmware, if you want to update the screen with new icons.
So let’s go through these in order.
To get your printer’s current values for Jerk, Acceleration, and Steps-per-Millimeter,
grab a piece of paper and head over to your printer.
From the Home Screen, go to Control, and then Motion.
There are four sub-menus: Max Speed, Max Acceleration, Max Corner, and Transmission Ratio.
Write down the values for X, Y, Z, and E shown in each of these.
Unless you’ve changed something these are probably all at their default values.
Mine’s got a non-default value for “transmission ratio E.” Transmission Ratio is Creality’s
term for steps-per-millimeter, and mine’s different because I have that Biqu H2 extruder
installed and it needs 932 steps per millimeter instead of the usual 93.
If you don’t know for absolutely certain whether your printer has a version 4.2.2 board
or a 4.2.7 board, take the time now to remove the cover and verify what’s installed.
Now that we’ve got the current settings documented, and we know what version of main
board we’ve got, we need to pick a firmware file.
There are lots of different options, and you’ll pick them by name.
They all start with E3V2.
After that, there’s either Default, or the type of mesh leveling system you’re intending
to use.
You can choose BLTouch if you’re using that probe, or you can choose ManualMesh.
There are also a set of UBL versions, which make use of Marlin’s Unified Bed Leveling
feature.
The different leveling options are kind of interesting.
Using Default will operate pretty much the same as the stock firmware.
Using BLTouch will, of course, use the BLTouch probe.
And there are a whole set of options within that range of files too.
You can choose whether to have a 3x3 grid of probe points, or a 5x5 grid, and whether
to use “High Speed” probing which doesn’t stow the probe when it moves from one probing
point to the next.
Manual Mesh leveling is like a hybrid of using a bed probe and manual leveling.
It moves the nozzle to each probing point, but then you use the screen to raise or lower
the nozzle and check the distance between the nozzle and the bed with a piece of paper.
This is available in a 3x3 grid or a 5x5 grid.
You’ll do this once, then the mesh will be saved to EEPROM, and you’ll enable it
by including a specific G-code command in your starting G-code in your slicer.
Unified Bed Leveling is an interesting concept based on the idea that the overall shape of
your printer’s bed never changes, but the tilt of it does.
So it generates a mesh, saves it, and then when you start a print you’ll just have
it probe the corners so it can determine the bed’s tilt.
And each one of these files is available for a v4.2.2 board or a v4.2.7 board.
So, since I don’t have a BLTouch on this printer, I’m going to go with the basics,
and select E3V2-Default-v4.2.2-v1.3.4.bin.
And that means I’m getting the basic JyersUI firmware for the 4.2.2 board, and the JyersUI
is version 1.3.4.
And I’ll click that particular file to download it.
I also want to install the updated icons on the screen.
Remember this is completely, one hundred percent optional, but I figure if I’m doing this
I may as well go all in.
So the easiest way to get THOSE files is to download the Source code zip file, down here
at the bottom of the list.
So I’ll click that one to download it, too.
After downloading and unzipping, here’s what I’ve got in my Downloads folder.
I have the E3V2-Default-V4.2.2-V1.3.4.bin file, and I have a Marlin-1.3.4 folder.
First, we’ll flash the new JyersUI firmware onto the printer, and then we’ll flash the
icon sets onto the screen.
Both of these updates are super, super easy.
For the printer firmware update, I’ll be using the 8GB card that came with the printer.
I backed the card up by copying its contents to a folder on my desktop, and then I formatted
the card as a FAT32 volume named ENDER3.
So, I’ll copy the E3V2-Default-V4.2.2-V1.3.4.bin file from my Downloads folder to the card.
Then I’ll eject the card, and head over to the printer.
With the printer off, insert the card.
Then turn the printer on.
The printer should take ten or fifteen seconds to flash the firmware, then it will boot up.
So this looks good.
There is a LOT more info on the screen.
Now, we COULD leave it here and JyersUI would work fine.
But as long as we’re upgrading, let’s go all the way and give the visuals a makeover.
Next, we’ll update the screen’s firmware.
Let’s get the card ready first.
Turn off the printer, remove the card, and bring it back over to the computer.
I’ll delete that firmware file and empty the trash, so now the card should be empty
again.
Now let’s get the screen’s files.
Looking inside the Marlin folder, there’s a Display Firmware folder.
Inside that is a Readme file, and a Firmware Sets folder.
The Readme has the instructions for updating the display, and they say we should pick a
DWIN_SET folder, copy it to the card, and then rename it so it’s JUST got the DWIN_SET
name.
The one I want is the DWIN_SET (gotcha) folder.
I think this one is the most updated of them.
So, I’ll copy that over to the card.
Then I’ll rename it, removing everything after DWIN_SET.
I’ll eject that, and head back to the printer.
Make sure it’s off, then unsnap the screen from its bracket, and unplug the ribbon cable.
Now we need to open up the screen’s case, so remove these screws from the back.
Then we can remove the back of the screen.
And hey, look at that, there’s a MicroSD card slot!
So, plug the card into it, contacts side down, and then plug the ribbon cable back into the
screen.
Next, turn the printer on, and the screen should update itself from the card.
The screen should be blue, then change to orange when the update is complete.
Once it’s done, turn the printer off, remove the card from the back of the screen, and
unplug the ribbon cable.
Replace the back of the screen, plug the ribbon cable back in, and snap the screen back onto
its bracket.
Okay!
We’ve got the screen and the main board updated with JyersUI!
Let’s turn the printer on again.
Hey, look at that!
The graphics are definitely a step up!
And it seems like there’s a lot more information on the screen than we had with the stock Creality
firmware.
That’s pretty cool!
Anyhow, let’s take a look in Control, and then Motion.
There’s Max Speed, Max Acceleration, Max Jerk, and Steps per Millimeter.
Let’s go into Steps per Millimeter.
All the axes are at their standard values for stock equipment.
The main thing I’m concerned with is the steps per millimeter for the extruder, because
I’ve got a Biqu H2 installed.
So the E axis is at the default for a standard extruder, 93 steps.
I’ll change that to the 932 steps I need for that H2.
Then I’ll come back out to the Control menu, and Store Settings.
And since JyersUI saves the changes to the EEPROM on the main board, the settings you
set will stay set when you set them.
That means for this specific printer, with its 932 steps per millimeter on the extruder,
I don’t have to worry about accidentally using a different card and then having an
unexpected under extrusion issue.
It’s probably also a good idea to perform a PID Autotune on the hot end at this point,
since we changed out firmware.
Plus it’s super easy to do.
There’s actually a menu item for it!
That’s here in the Control menu as well, inside the Temperature menu.
Scroll down to the PID menu, click Hotend, and then click Autotune.
By default it’ll run five cycles.
And you can do this for both the hot end and the bed.
Make sure to save when it’s done.
And hey, check out some of these other features!
Screen brightness controls, beeper toggle, pick your own colors…
This is neat.
Plus, now the printer will work with PrusaSlicer’s “color change” feature, which lets you
change filament to swap in a different color at a layer of your choosing.
In other words, it will now properly handle the M600 G-code command.
Most of the reason there are all those different versions of JyersUI is that there are all
those different methods of bed leveling.
Now, I went with the Default version of JyersUI, and it helps you perform manual bed leveling
by moving the nozzle to the corners for you.
That increases the accuracy of your leveling because the nozzle goes to the exact same
spot for each adjustment point.
From the screen, you pick which corner you want it to go to, and it goes there.
If you have a BLTouch installed on the printer, you’ve got a few choices to make when picking
your firmware file, depending on whether you want a 3x3 or a 5x5 probing grid, and whether
you want to stow the probe tip between points, and heck, even whether you want to use Unified
Bed Leveling instead of the traditional method.
So, once I get a better feel for the Default version, I think I’ll give the ManualMesh
version a try.
Manual Mesh leveling compensates for irregularities in the printer’s bed, like if it’s higher
or lower in the middle compared to the corners.
After you manually level the bed, it uses the nozzle as a probe, and you adjust it up
or down at each point using the paper method, and at the end of it all, you have a mesh
of the shape of the bed’s surface, just like you would’ve with an automatic probe.
If you’re interested in seeing a video about using the manual mesh leveling feature, comment
down below.
If there seems to be enough interest, I’ll add that to my Videos To Make list!
So there’s a fair bit to explore in here, and I encourage you to give JyersUI a try,
and look around through the menus to see everything it has to offer.
What’s really great about JyersUI is, if it turns out you don’t like it, you can
always revert back to the current Creality firmware, downloadable from the Creality site.
That’s right, it’s 100 percent reversible!
But no matter which version you pick, JyersUI seems to make use of a good bit more of Marlin’s
feature set than Creality’s firmware does.
Are YOU already using JyersUI?
If you are, leave a comment and tell me what you like the best about it!
Well, 3D Printing Friends, that’s about all the time we have for this episode.
And now that we’re at the end, let's go print something cool!
Hey, real quick before you go.
I wanted to say thanks for being one of the super-awesome people who sticks around all
the way to the end, and thanks for all the likes, comments, and shares.
And an especially big thanks to those who directly support what I do.
You’re all wonderful for doing that, and I really appreciate it!
If you liked this episode, a thumbs-up would be great, and if you’d like to help support
the channel, check the description for ways you can do exactly that.
And hey, if you haven't already subscribed, please do!
It’s absolutely free, and is an excellent way to help keep me making these videos for
you!
Well that’s it for this one.
Thanks again, and I'll see you next time, here on The BV3D Channel!