Intro #
This article briefly describes how to obtain and use our Unified Firmware packages from our Github source, as well as how to use it to compile your firmware. Please note that you should always be using the latest version of Unified Firmware and the instructions available from our site for your specific model/mainboard for the best experience. This article is provided as a courtesy if you should require a “rollback” to a previous version of Unified Firmware. TH3D offers no warranty nor technical support for old or outdated versions of Unified Firmware.
Please note that these instructions are provided for Windows, but the instructions for MacOS are similar enough that you should be able to follow along. At time of writing, we do NOT have an up-to-date MacOS installation here, your mileage may vary.
Github Repo and Package Contents #
Please click this link to visit our Github page: https://github.com/th3dstudio/UnifiedFirmware
Unified Firmware Package Contents #
The main page shows the contents of the Unified Firmware package in its entirety. This includes things that are not present in the board/model-specific packages on our site, such as all of our freely-available STL files, board configuration files for all Unified-compatible packages, LCD firmware for the Ender 3 V2 DWIN display, and much more.
When you download the Unified Firmware package from Github, you will be downloading the entire package contents. At time of writing, total disk-space usage for the entire package when unzipped is around 550MB.
Downloading a Specific Version of Unified #
Method 1: Previous Packages via Release Version
Previous packaged releases are available via the “Releases” section. These are the download packages separated by brand and mainboard type that are available on our website. Click “Releases”, then find the version number and package you need. Follow the instructions in our Help Center to use these packages.
Method 2: Download Entire Repo Via Tag
Unified Firmware is currently broken down into “tags” for each specific version. The box in the top-left corner can be used to choose specific “tagged” versions for download.
For the most current package, simply click the green “Code” button, then click “Download ZIP”:
To download a specific version, use the version box in the top-left corner, select “Tags” then choose the version of Unified Firmware you wish to download. Then, use the green “Code” button and select “Download ZIP” to download the package.
Using the Unified Firmware package to Compile Firmware #
This section assumes that you already have VSCode, PlatformIO, and Python installed and functioning. If you need assistance setting up this software, please see this article. This section also assumes that you have already unzipped the Unified Firmware package you downloaded in the previous section.
In the most simple terms, Unified Firmware comes with everything you need to configure and compile a firmware for any printer model we support. The board files are contained in the “Board_Configs” directory. Choose the directory for the board type you wish to use.
Each board directory contains a directory called “Firmware”, which itself contains a Marlin folder containing the main “configuration.h” file as well as a file called “platformio.ini”. The main configuration file is the one you will eventually configure according to your printer model and features. The “platformio.ini” file tells VSCode and PlatformIO important information needed to compile properly. In order to properly compile firmware, we must move these files into the proper directory.
Copying the configuration files to the main Firmware directory #
To prepare the firmware to compile, we need to copy the “platformio.ini” and “configuration.h” files from the Board_Configs directory to the appropriate places in main Firmware directory.
In short terms, you’ll copy the “platformio.ini” file from [Boards_Configs\(board type)\Firmware] to the main [Firmware] directory, then the “configuration.h” file from [Board_Configs\(board type)\Firmware\Marlin] into the main [Firmware\Marlin] directory.
The easiest way to accomplish this is to right-click and copy the Firmware directory from the Board_Configs area, then paste it “on top” of the main Firmware directory.
This should copy the “configuration.h” and “platformio.ini” files to their proper places inside the main Firmware folder. You should see “platformio.ini” show up in the main Firmware folder now…
… and you should also see the “configuration.h” file inside the Marlin directory with the others.
Once the “platformio.ini” file is present inside the Firmware directory and the “configuration.h” file is present inside the Firmware > Marlin directory, you can use VSCode to load everything so you can begin configuration.
Opening with VSCode #
In VSCode, go to File > Open Folder and select the main “Firmware” directory as the one to open. It must be the “Firmware” directory specifically, as VSCode needs to see “platformio.ini” when it opens the package or else it won’t compile properly. Since “platformio.ini” is in the Firmware directory, that’s the one you need to open specifically.
If you have issues with the check-mark “compile” button not appearing where it should be, continue to this article.
Where to go from here #
Now that you have the full Unified Firmware package set up and ready to go, you can compile and flash your own firmware. Follow the instructions found in the “configuration.h” file or instructions for any of our other firmware downloads to get started.