Ultimaker Original custom firmware builder

Contributed by

Ultimaker is lucky to have a dedicated team of software engineers working every day to create even better and more stable firmware releases that make your Ultimaker tick. Fortunately, we’re even more blessed with a dedicated community of members who are willing to put in time and create their own updates. Members like Amedee who’s created this firmware builder below and Neotko from Sugarpop! Store who kindly contributed towards this new Ultimaker Original guide once more.

Back to topic, if you’ve made some modifications to your Ultimaker Original, you may want corresponding firmware to go with it. If you’re not familiar with creating your own firmware from scratch, user Amedee has made the tool for you! Besides the practical modifications you’re able to activate, it also reveals what an intriguing world lies within the firmware realms.

So let’s go over the options:

Ultimaker firmware builder

My favorite by far is the fantastic Ultimaker firmware builder by Amedee which is based on the original and latest firmware available.

Let’s go through a few scenarios in which this builder could help you, but remember that by default the settings will work on a standard machine. This means when you adjust something without knowing exactly what it is you are changing this may have consequences for your Ultimaker. The firmware is basically the brain, so you are making adjustments in its very core. Being forewarned is being forearmed.

Let the LED shine

Did you know that every Ultimaker Original+ has the same electronics board as the super shiny Ultimaker 2? It means you can plug a 24V LED strip into the LED PWM connection on your electronics board and make your Ultimaker Original+ shine! You can even buy an LED strip from Ultimaker’s partners that are made for the Ultimaker 2 and fit it your Ultimaker Original+ perfectly.

But plugging it in and gluing it to the frame doesn’t mean it’ll work straight away. The Ultimaker Original+ needs to know there is a LED-strip plugged in so it can turn it on and off. That is where the firmware comes in. And in this case, Amedee’s builder. By following a few easy steps in the builder you can gain access to an LED controller on your Ulti-Controller. You can set it from 0 (off) to 255 (maximum power). Shiny!

*Beep* *Bap* *Boop*

Another great advantage of this firmware builder is that you can change the sound your Ultimaker makes. For my personal taste the default *Beep* was a just a little bit too loud. With Amedee’s firmware you can change it on ‘Controller beep sound’ from the default Marlin firmware. It’s very short and less intrusive and sounds nicer when going through the menus and pressing the button.

Display information

This is another great thing about the Amedee builder. When enabling this feature the display will tell you how fast your fans are moving. Varying from 0% to 100%.

This is very helpful to test settings and see how the fans are moving at any given moment in your print.

Dual extrusion

Any version of Cura that you use has a firmware file ready to be uploaded to your Ultimaker Original with dual extrusion. For the Ultimaker Original+ dual extrusion is a different story. When you have two extruders, two heaters, two heat sensors and a heated bed, this may be a bit demanding on your power supply. With Amedee’s firmware builder you can safely continue 3D printing. However, when you don’t actually have the hardware installed, don’t select dual extrusion in your set up as it’ll cause errors and prevent you from 3D printing.

Display time-out

Actually, I am rather proud of this feature because I have requested this one myself. I found it rather annoying when, for example, adjusting the Bed Z to find the Z end-stop you had to go to click - prepare – move Z – and then adjust the height until you find your Z end-stop. But if your controller stays untouched for 15 seconds it goes back to the home screen again. I found this annoying so I asked Amedee to include it in his builder. It is currently set to 1 minute. This setting allows you to select any given time you prefer ranging from 15 seconds to 1 minute.

Controller language - parlez-vous français?

If your main language is French, you can change the settings of the Ulti-controller here to have all the options in French. It’s as simple as that.

Maximum temperatures of your hot end - for experts only!

A very nice feature which was requested by Macua85 was to unlock the current safety measurement to prevent any temperatures from going higher than 260º C.

Please note that unless you modify your print head or go for a completely different head it’s not advised you do this, as you’ll damage or burn crucial parts in your print head. But when you have an E3D full metal head for example, you may want to go above 260º C and this is how you can set a new limit.


If you’re like many Ultimaker Original modders and want to print with alternative pulleys or speed, you may have also changed your standard MXL belts to GT2 belts like on an Ultimaker 2. This option changes the XY configuration so they just work.

Let’s talk Pro - experimental branch

If you don’t fear risks and you want to contribute on the experimental settings of Amedee firmware you can do so by testing its experimental branch. But be warned, this has a few options that could potentially damage your printer when used incorrectly. In the end, you are messing with its brains. Be experimental, but do so at your own risk.

Fan Kickstart

If you’ve already done the Ultimaker Original Dual Fan mod you know what this part is about! One of the problems I experienced when playing around with the fans is that sometimes they don’t start when set to a low setting like 30 out of 255. This is due to a feature called PWM. It allows a fan to spin at a certain speed under its maximum. If you have different fans than the stock fans, they may have different settings, for those fans this is a good feature.

Fan kickstart does exactly what the name suggests. It gives a kick by setting the power to  255 for a very short amount of time, like 400-500 milliseconds. This way the fan spins and the PWM changes to the desired setting you’ve chosen. For example, my personal fans don’t start spinning unless I set them to 150, and then when they’re spinning I can tune it back to 100. This is now something I don’t have to do manually as the firmware does it for me.


Imagine you want to change the main extruder direction because you have installed some other kind of motor, added a gear or just made a completely different design.

To do so, you could swap the cables of the motors so they run in reverse, but that is quite a finicky procedure. Wouldn’t it be easier to change this in the firmware? Well Amedee thought so too!  With this option the extruder will do everything in the opposite direction if you tick the box invert first extruder.

The motor settings are set to the default as they should be for a normal Ultimaker, so there is no need to adjust these if you don’t have to.

Upload firmware

Now all that’s left is to upload the software to your Ultimaker. Depending on which version of Cura you are using, you have to take slightly different steps. 

Cura 15.04

If you are using Cura 15.04.4 or earlier, it is pretty straight-forward. After you’ve saved your firmware, open Cura and go to Machine. Scroll down to Install Custom Firmware and select the firmware you have just created. And that is it! Your Ultimaker will restart and a progress bar will show how far the installation of the new firmware is. When finished, just unplug the USB and enjoy your new firmware.

Cura 2.1

If you are using Cura 2.1.0, uploading custom firmware requires an extra step. Go to the Cura folder, right click and go to ‘show contents folder’. Next, go to Contents > Resources > Cura > Resources > firmware. Now, you’ll see a folder with all the different types of firmware available. The goal is to replace the default firmware file, for your custom version under the original name. Depending on which machine you have, Cura will automatically upload that firmware.

In the folder, find the firmware that matches your printer:

  • MarlinUltimaker is for the regular Ultimaker Original. 
  • MarlinUltimaker-HBK is for an upgraded Ultimaker Original with a heated bed. MarlinUltimaker-UMOP is for the Ultimaker Original+.
  • Depending on what OS you have, you need to choose either the ‘125000’ or ‘250000’ baudrate option. Windows and Mac use baudrate 250000 and Linux uses 125000. This number is required to communicate through the USB port, and allows your computer to communicate with the Arduino.
  • For additional information you can review the code in this page in our github account for more information.

Now that you know which version fits your machine we recommend you make a back up of your default firmware in your folder by copying and renaming the file, like adding ‘BackUp’ to it. If you get confused at any point, you can find and download all default firmware from our github repository . Copy the original name of the firmware you need and name your custom firmware identically.

Replace the default firmware with your new custom firmware which will overwrite the firmware folder under the original name. Cura will then select your custom firmware when you select update firmware, based on its name.


So good luck! If you have any questions or feedback, please share your comments with the rest of the community on our forums! And if Amedee's firmware builder is not quite to your tastes, you can also try the firmware that Tinkergnome has developed. We'll talk about the ins and outs of that firmware in a future tutorial!