How to build firmware from https://gitlab.com/lulzbot3d/marlin

The last time I build firmware from sources was 1.1.9.34 and I used build-lulzbot-firmware.sh slightly modified to only build for a TAZ 6 and the tool heads I own. I would like to build the current Universal firmware (2.0.9.0.13) for my TAZ 6 along with the latest firmware for the Dual Extruder V3.1 (2.0.0.144?) and the Aerostruder.

I believe this firmware is located at LulzBot 3D / Marlin · GitLab but I can’t find the build script or any documentation on how to prepare my environment. Can you point me in the right direction to get this done?

There won’t be any build scripts for the universal firmware as development is now done with the VSCode editor and PlatformIO build environment. There are a lot of details for setup I don’t remember and can’t look up at the moment, but the main idea is that you have to install VSCode and the PlatformIO extension. Then clone the code for the version you want from GitLab, load the project in VSCode, go to the PlatformIO extension and find your printer in project tasks and pick build there.

If you don’t want to deal with all that it should still be possible to just download the code from Gitlab, open it in the Arduino IDE, select your print and tool head in the config header file, and compile the code like any Arduino project. You can use “Export Compiled Binary” in the Arduino IDE to make the hex or bin file.

Oh, almost forgot, if you want to compile 2.0.0.144.5 or 2.0.0.144.6 that should be done in the Arduino IDE as those versions were not set up to work in VSCode and PlatformIO.

Where is the source code for 2.0.0.144.5 or 6?

On the GitLab page you should be able to select the version through the dropdown menu pictured in the below image.

Here’s a link to a document with a bit better info on how to set up the VSCode development environment to compile the universal firmware:

But, again, you can’t use VSCode to compile 144.5 and 6. Well, I shouldn’t say can’t, someone skilled with VSCode and PlatformIO could probably fix up the files to get it to work. But for just making some quick changes it is easier to just compile it in the Arduino IDE.

I checked and 2.0.0.144.5 and 6 are tagged and you should be able to find them the way @McLeach said. But here are links to them directly:

Another trick I learned to get the exact code for a firmware you already have is to look at the filename for the firmware. There will be a string of hex digits at the end of the filename. Take for example:
Marlin_TAZWorkhorse_Universal_2.0.9.0.13_80a6628.hex
The “80a6628” is the Gitlab commit hash. You can click the history button and look down the right side for that hash and then click the folder icon beside it to see the files. This is useful to find source code for firmware versions that weren’t tagged in Gitlab.