Jump to content
Ultimaker Community of 3D Printing Experts
Daid

Main links for Marlin firmware

Recommended Posts

These are the main firmware links for the Ultimaker printers.

Ultimaker Original (Green electronics, Arduino)

https://github.com/Ultimaker/Marlin/

Ultimaker Original with Heated Bed Upgrade KIT (Green electronics, Arduino)

https://github.com/Ultimaker/Marlin/tree/Marlin_UM_HeatedBedUpgrade

Ultimaker Original PLUS (White electronics)

https://github.com/Ultimaker/Marlin/tree/Marlin_UM_Original_Plus

Ultimaker 2 (White electronics)

https://github.com/Ultimaker/Ultimaker2Marlin

All these firmwares can be build with the Arduino environment from

http://arduino.cc/en/Main/Software

Ultimaker 2 - Building problems!

Note that to build the Ultimaker2 firmware you will have to make an adjustment to the Arduino environment, or else you will get an error.

The file at "C:\arduino-1.0.3\libraries\Wire\utility" called "twi.c", open it in wordpad or any other text editor (except for windows notepad). And search for the line that starts with "SIGNAL(TWI_vect)". Remove this line and everything below it.

You might want to keep a backup of this file, or install a seperate Arduino environment for the Ultimaker 2 if you use the Arduino environment for anything other then building Ultimaker firmware. (This change does not conflict with the Ultimaker original firmware)

Origin

The Marlin firmware is based of the work of countless people. The "main" marlin version which is used as base for every other Marlin firmware can be found at:

https://github.com/ErikZalm/Marlin/

Online Marlin Builder

An online tool for building slightly customized firmwares has been made. This saves you fiddling with the Arduino environment if you just want to change a minor option. Cura can upload the resulting hex file to your printer.

http://marlinbuilder.robotfuzz.com/

Final note of warning

While it should be quite safe to test around with custom build firmwares, there are protections in the firmware to prevent problems with the hotend melting itself. Installing customized firmware is at your own risk.

 

  • Like 1

Share this post


Link to post
Share on other sites

Here are my instructions for building Marlin - I've only tried them with the UMO firmware. There are tons of options you can mess with in Configuration.h and this file is very well documented and very easy to edit.

GUI METHOD

There are instructions that come with the erik zalm download (and probably all firmware versions) in the "README.md" text file.

Basically you download and install arduino ide:

http://arduino.cc/en/main/software

Then copy the sanguino software as explained in README file. Open Marlin.ino file in Arduino IDE by double clicking it (not pde file as stated in README - I think that's old). Select board as "Mega 2560" as explained in README file (white UM2 likely uses a different computer chip). Go to "file" "preferences" and select "verbose output" so you can find your hex file. Then build it by clicking the check box in the upper left corner. At the bottom you will see it compiling Marlin. At the end of this it says where the hex file is. If you are currently connected to your UM through USB you can just click "file" "upload" and you are done! But you should locate that hex file and save it somewhere along with the Configuration.h file used to create it so you can recreate the same version with maybe one change. Also you can upload the hex file using Cura in expert menu.

COMMAND LINE METHOD

Alternatively you can build Marlin with somewhat more detailed step by step instructions the command line way (which I don't prefer):

http://www.extrudable.me/2013/05/03/building-marlin-from-scratch/

 

 

Share this post


Link to post
Share on other sites

Daid, just a quick question. If I want to change a little something in the UM2 firmware but otherwise stay in sync with your releases, I just need to check out the latest "release" from:

 

... and generate a hex file right? All settings are set and I don't need to scurry around in Configuration.h and Configuration_adv.h to add missing settings?

thx.

 

Share this post


Link to post
Share on other sites

Daid or anyone, can you provide more information on how to find the line that starts with "SIGNAL(TWI_vect)" in file twi.c ? I have searched that file and not been able to find the function "SIGNAL(TWI_vect)". I am using the latest firmware Daid references in his post above for the Ultimaker 2. Currently using Arduino 1.6.0. Im currently stuck as my Ultimaker 2 is not functioning and needs a firmware reload. Thanks for your help in advance.

 

Share this post


Link to post
Share on other sites

Daid or anyone, can you provide more information on how to find the line that starts with "SIGNAL(TWI_vect)" in file twi.c ? I have searched that file and not been able to find the function "SIGNAL(TWI_vect)".

 

The name of the macro has changed in recent versions of avr. Look for "ISR(TWI_vect)" instead.

The location of the file is also different, for V1.6.0:

..\hardware\arduino\avr\libraries\Wire\utility\twi.c

BTW: i had no success with the V1.6.0, and had no time to find the reason until now. Consider to downgrade your compiler to V1.0.6 if you run into other problems.

 

Share this post


Link to post
Share on other sites

I always build from the Makefile, which works with vanilla Arduino (you don't have to delete anything).

But stay away from 1.5/1.6, Marlin is untested with these versions.

(Daid compiles the official builds with 1.0.3 for Windows and 1.0.5 on the other platforms, so no need for cutting edge Arduino ;) )

 

Share this post


Link to post
Share on other sites

Thanks TinkerGnome and Amedee for the sound advice. In the shower after posting the question it dawned on me that the only thing I did not consider was the Arduino version being used. So it was refreshing to see that I was thinking in the right direction. I installed the Adruino 1.0.3 and compiled my new mods with success. Now with my sanity partially restored I will attempt to unbrick the Ultimaker 2!

 

Share this post


Link to post
Share on other sites

Hi,

I am starting to develop some changes to the UM2 firmware and I want to know how to recover it in case of something went wrong. Is the boot loader always starting the MEGA256, so that you can upload a stock version with Cura via USB or could there be situations to use the ICSP header. I own an AVRISP MK II. How would be the procedure if ICSP programming is needed ? I am working on Win 7.

Thanks and regards,

Nils

Share this post


Link to post
Share on other sites

Does anyone have / know of a list of the customizations which differentiate the Ultimaker (original) branches from the vanilla Marlin master?

I'm interested in testing out their new RC build, but the structure has changed enough to make comparing files tricky. I could compare (file by file) the master Marlin release to one of the UM branches, but it would take a while. I'm hoping somebody has catalogued the changes.

Thanks!

Share this post


Link to post
Share on other sites

Which Marlin firmware is the Ultimaker 2 firmware based on? I updated to the latest (released) Ultimaker 2 firmware and it still has a bug that supposedly has been resolved in Marlin (Printing from SD card via M23 truncates the last letter from the filename, e.g. foo.gco => foo.gc)

And the link to the Marlin firmware also does not work anymore. Marlin is now hosted at: https://github.com/MarlinFirmware/Marlin

Share this post


Link to post
Share on other sites

I think the um2 drifted apart long ago - I think the last merge from the main marlin branch was 6/27/2013 07:41:11 (I could be interpreting git wrong). I think the problem is probably that the menu system changed so much from the main marlin branch that Daid was no longer able to safely merge in the latest features.

You could probably create a fresh github copy of um2marlin, make the M23 fixes, test the fix, and then send a pull request to Daid. All us um2 users would probably appreciate that.

Share this post


Link to post
Share on other sites

I'll have to see if I find the time.

As I am trying to get Ultimaker2 to work with Octoprint it would be nice to exctract the UltiGCode handling from the LCD printing implementation and also use it for the M command to start a print job from SD card.

But that is another topic...

 

You could probably create a fresh github copy of um2marlin, make the M23 fixes, test the fix, and then send a pull request to Daid.  All us um2 users would probably appreciate that.

 

Share this post


Link to post
Share on other sites

Just wondering, does Ultimaker have plans to rebase their firmware on top of the upcoming Marlin 1.1 for the UMO+? The code of the upstream seems to be much more clean and has some interesting new features.

 

I am hoping so! It looks like the devs have improved it a lot with the upcoming release.

Share this post


Link to post
Share on other sites

Does anyone knows the current state of Marlin (upstream) running on Ultimaker printers? They are supposed to be supported but I really doubt it will work out of the box.

In addition, I wonder how much non-backported changes were made since the fork took place. If anyone who knows can give some insight, it would be nice to get a clear picture of the amount of work required.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!