Getting Started #
Flashing your printer firmware is pretty easy once you go through the installation steps one or two times. We’ve simplified the firmware setup as much as possible so you don’t have to be an expert with code. Our firmware allows you to get more control over your printer, make repairs easier, add on upgrades, and really get into tuning your machine to make it print better.
The firmware update consists of downloading the firmware itself, opening it in Visual Studio Code, setting the options for your machine, compiling it, and then uploading it to the printer.
Board Compatibility #
This firmware is for the stock Creality “Melzi” 8 Bit Board (1284p CPU). This board also came in black color. Version numbers are V1.1.1, V1.1.2, V1.1.3, V1.1.4, and V1.1.5. VERY old boards did not have a version number but looks the same as the below picture. This printer also did NOT come with a filament sensor, if you have a filament sensor STOCK then you have a CR-10S, not a CR-10 series.
Setup Visual Studio Code First #
If you have not already installed and set up Visual Studio Code to compile the firmware please see our guide on how to do that before continuing. Click here to open the guide that we’ve written for you.
Flash a Bootloader #
These boards require a bootloader to be flashed before you can upload firmware to the board. This is a quick process and is only needed to be done once. After the bootloader is installed you will not need to update it again.
To do this follow our bootloader guide here: 8 Bit Board Bootloader Flashing guide – For 1284p CPUs. You will also need an Arduino Uno to flash the bootloader along with some jumper wires. To make this quick and easy we have a Bootloader Kit you can purchase from our website here: TH3D Uno Bootloader Flashing Kit for 8-Bit Boards
In the firmware download below you will get a ZIP file. Extract this to a folder on your PC
Unified 2 Firmware for Creality “Melzi” Boards #
We also recommend you download the Unified 2 STL pack as well. This contains EZABL mounts, Gantry leveling Blocks, Solid bed mounts, and Bed Level test files.
Unified 2 STL Pack #
Cloud Storage Note: Extract to a folder that is NOT in a “cloud” storage folder. Many users have reported issues using the firmware when the folder is in a cloud storage folder.
Using the Firmware #
Things to read BEFORE Starting #
File Locations #
Many users have been having issues due to odd folder setups on their computers. If you do not follow the below advice the firmware may have issues compiling.
- Do NOT put the firmware folder in a cloud storage folder (OneDrive, Google Drive, Dropbox, etc.)
- Do NOT use weird folder names (aka ones with anything other than letters and numbers)
- Do NOT use very deep paths. We work out of a folder on our main drive with a subfolder for the printer we are working on. Example: C:\Printer Firmware\TimsEnder3\
Marlin Auto Build #
Our firmware does NOT use Marlin Auto Build. Do not use Marlin Auto Build with our firmware. Use the directions below instead.
Video Guide #
We now have a video guide you can follow as well.
Opening the firmware in Visual Studio Code #
Once the files are extracted you will need to open the folder in Visual Studio Code. You must open the folder named Firmware and not any other one. Failure to open the firmware at the correct folder level will result in it not working.
First time using our firmware or having issues? Watch our video that is intended to clear up common mistakes people make when opening and using the firmware here: Unified 2 VSCode Tips for Noobs | EZTip #8 – YouTube
Once the folder is opened, you will expand the Marlin folder on the left and side and then double click on the file called “Configuration.h”. This file is where you will set up the firmware for your specific printer.
Editing The Configuration.h File #
In the configuration.h file there are printer models you can uncomment to tell the firmware what machine you are setting it up for. Uncomment means removing the // in front of a setting and you will be left with #define XXXXXX if an option is enabled.
There are many other options in the firmware for setting up upgrades, tuning, and other features. Read through the files configuration section to see all the features we’ve put in the firmware for you.
We have an article here with more details about the use of the configuration.h file.
Testing the Firmware Settings #
Once you have all the options you want and your printer model setting uncommented now it’s time to make sure it compiles with no issues. To do that just click the ✓ at the bottom-left of Visual Studio Code and it will build the firmware.
If the build succeeds it is ready for you to upload to your printer. You will know if it was successfully built because it will show a SUCCESS in green at the bottom of the window in Visual Studio Code.
Flashing the Firmware #
Upload the firmware to your board (USB Cable Method) #
Now that we have the firmware tested we can upload it to your printer. Your particular printer uses a USB cable to upload it to the printer board. Make sure you close out ALL slicers and any other programs that you may have open that could connect to your printer’s COM port. Once the printer is connected you can upload the firmware to the board by clicking the right-pointing arrow in the bottom-left-hand corner of Visual Studio Code.
The firmware will now be uploaded to your printer board. It will display a success message as we saw in the test compile step above when it is done flashing. This typically takes about 30-60 seconds depending on the speed of your computer and/or control board.
DO NOT UNPLUG THE PRINTER OR RESET YOUR COMPUTER. Interrupting the flashing can “brick” your board and if this happens you will need to reflash the bootloader with a programmer (like an Arduino UNO) before you can flash again.
When the printer boots you may see the TH3D logo on your LCD, printers with older 8-bit boards or low-end CPUs may not show a TH3D logo but all will show a Marlin screen with TH3D Studio showing on the version information.
Reset your EEPROM! #
Make sure to reset your EEPROM on your printer after flashing any firmware. You can do this from your printer LCD by going to Configuration -> Reset EEPROM or by sending an M502 followed by M500 with your favorite Gcode sender application.