Preparation
At the time of writing the Creality Ender-3 V2 comes with the Creality 4.2.2 board (TMC) In theory if you are upgrading an existing Creality Ender 3 with the 4.2.7 board the same process will apply other than a board version definition later on in the guide. However, the guide has currently only been tested on a Creality Ender- 3 V2.
The Creality Ender-3 V2 uses a 32-bit board this means there are some changes to the typical workflow that you were used to using with 8-bit boards. Instead of the Arduino IDE we recommend the use of Visual studio code - Don't worry it's still free!
1. Download and install Visual studio code:
https://code.visualstudio.com/
In order to use Visual studio code you will also need to install PlatformIO.
2. Check to see if the icons on the left-hand side are visible. If they are not you will need to toggle the visibility by selecting:
view - appearance - show status bar
3. Select the extension's icon, this should open up a list of potential extensions.
4. Type PlatformIO into the search bar, then select install.
Once the extension is installed you will notice the install icon changes to a cog.
Source Firmware
5. Go to the Marlin downloads page.
https://marlinfw.org/meta/download/
6. Download the base Marlin 2.0 firmware.
This guide demonstrates the latest (stable) build. You may consider using the nightly bugfix for the most up to date version of marlin, there is also a bugfix variant of the configurations files. The process should be the same., the file name, however, being slightly different.
7. Before closing the window under configurations click View/ Download.
This should take you to their GitHub page containing printer-specific configuration options.
8. This will take you to the GitHub page, Select:
Code - Download zip
9. At this stage there should be two new files in your downloads folder:
Configurations-release-x
and:
Marlin-2.0.x
extract these into a new folder for safekeeping.
10. Open the folder:
Configurations-release-x
then:
config
then:
examples
then:
Creality
then:
Ender-3 V2
11. You should now have the Ender-3 V2 specific configuration options visible in the finder window.
12. Copy all the files (ignoring DWIN_SET file as this is for the screen firmware)
13. Navigate back to the Home folder (where you moved the extracted folder to initially)
now open:
Marlin-2.0.x
then:
Marlin
14. Paste the files, when prompted select replace files in this destination.
15. Back in Visual studio code click the platform io icon on the left toolbar, select:
open
then:
home
then:
open project
16. Navigate to the location of the two folders you unzipped open:
Marlin-2.0.x
look for the file:
platformio.ini
you won't be able to select it, but as long as it's in the folder structure select:
Open "Marlin-2.0.x"
17. Before making changes to the firmware you will need to make sure PlatformIO is using the correct settings, change:
default_envs - mega2560
to:
default_envs - STM32F103RET6_creality
18. whilst still in the tab:
platformio.ini
press:
File
then:
Save
If you do not hit save before moving on it will cause errors when compiling later on!
19. locate the tab:
configuration.h
20. scroll down until you find the section that defines the temperature sensors.
or
Press:
Ctrl F
then type:
#define TEMP
Using the CTRL F function help speed up the navigation, unfortunately, the line numbers won't always match up depending on the version of marlin you are using. This same process applies for all the navigation steps.
21. Change:
#define TEMP_Sensor_0 1
to:
#define TEMP_Sensor_0 5
Changing the definition here changes the type of thermistor that the board is expecting input from.
Failure to change the temperature sensor definition will result in incorrect temperature readings.
22. Scroll down further and you will come across the MAXTEMP values, in order to hot tighten correctly at 285°C you will need to set this value to 300.
change:
#define HEATER_0_MAXTEMP 275
to:
#define HEATER_0_MAXTEMP 300
The reason you need to set it to 300 in order for this to happen is due to a -15°C limit on max settable temperature via the LCD.
23. To ensure the safety triggers work properly also change:
#define HEATER_0_MINTEMP 0
to:
#define HEATER_0_MINTEMP 5
If you are printing in a particularly cold environment such as a garage or shed and are finding min temp errors occur with a reliable thermistor then you may want to decrease this value or heat the environment you will be printing in prior to printing.
24. Scroll Down some more until you find the movement settings.
look for:
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 93 }
change it to:
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 409 }
This changes the Steps per mm value from 92 to 409 and is the primary method of ensuring when you tell the extruder to extrude 100mm of filament that there is actual movement of 100mm. This can be fine-tuned later on to optimise your setup.
25. Locate the motherboard definition section.
At the time of writing the Creality Ender-3 V2 uses the Creality 4.2.2 board double check your board type (this will be written on the board).
If you have upgraded an older Ender 3 with the new 'silent' board it will most likely be V.2.7
For the 4.2.2 board:
#define MOTHERBOARD BOARD_CREALITY_V4
For the 4.2.7 board:
#define MOTHERBOARD BOARD_CREALITY_V427
26. Because Hemera is a different size and shape from the standard Bowden configuration you need to set up a manual home position to ensure the best use of the build area.
Locate:
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
change them to:
#define MANUAL_X_HOME_POS -40
#define MANUAL_Y_HOME_POS -10
Once you have made the changes to the firmware click the tick at the bottom right, if all goes well you should see:
Environment Status Duration
---------------------- -------- ------------
STM32F103RET6_creality SUCCESS 00:00:07.564
Upload Firmware
27. Go back to the folder that you have the firmware folders saved to then
open:
.pio
then:
Build
then:
STM32F103RET6_creality
28. Locate the .bin file.
There are a few versions of firmware bins in the above example because of some prior testing, if in any doubt choose the file with the latest timestamp (that corresponds to when you compiled the firmware)
VLC media player is installed on the computer being used and is viewing the file as a video file, to make sure it is a .bin file right click and check the file properties.
29. Copy and paste the file onto a Micro SD card.
the "randomness" (timestamp) of the file name is required here, if you are tempted to rename the file make sure that you use a unique file name for each firmware flash you attempt. If you reuse an old name the screen will remain blank when restarting.
30. Make sure the printer is turned off, insert the SD card into the printer, then power on. the screen will remain black for a few seconds and then should boot up with the new firmware.
If you are unsure about how to upload the firmware Via SD card watch this video from Creality
31. To ensure the changes have been made navigate the LCD to:
Control
then:
motion
then:
steps per mm
If the firmware has flashed correctly you should see 409 next to E.
If you are using a bugfix version steps per mm may be labelled:
Transmission Ra
32.
Cura Slicer Start Gcode
M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration
M203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate
M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration
M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk
M220 S100 ;Reset Feedrate
M221 S100 ;Reset Flowrate
G28 ;Home
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
G1 X1.1 Y20 Z0.28 F5000.0 ;Move to start position
G1 X1.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
G1 X1.4 Y200.0 Z0.28 F5000.0 ;Move to side a little
G1 X1.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up