Jump to content
Ultimaker Community of 3D Printing Experts

Where to Start in Writing G Code for UM2+?

Recommended Posts

I'm working on a project by which I construct single line drawings from a set of points (here's an example). This project is being coded in Python, and given that the program considers the coordinates of each point in its operation, I was thinking about translating these coordinates into g code instructions for my Ultimaker 2+ (upgraded from the original UM2) so that I could print the drawing as one continuous line! However, I do not really understand g code or how to write it. Are there any good tutorials out there for where to start on how to edit and write g code? I obviously don't want to mess this up as it could destroy my printer...

Any help is appreciated!

Share this post

Link to post
Share on other sites

I think this is a decent reference (look at Marlin when checking for Ultimaker):


I find it also helpful to take a simple object through a slicer and look at the g-code it outputs.

Also what is nice to know is that X0 Y0 Z0 is the location in the left front corner, at the height you set when leveling build plate.

Edited by Guest
  • Like 2

Share this post

Link to post
Share on other sites

I used that reprap link to learn gcode too. That combined with reading gcode files generate from Cura let me learn enough to write a Cura plugin. :)

It is also worth remembering that there are differences between UltiGCode flavour and RepRap-style flavour of gcode. Cura 2.3.x and below on UM2(+) defaults to UltiGCode. But with Cura 2.4 and on things are changing more and more (back) to RepRap-style. I do not know what the default it. And I do not know what UM3 defaults to. But it can matter when learning/creating gcode.

Anyway, hope this helps. :)

  • Like 1

Share this post

Link to post
Share on other sites

Well, I would expect that your printer accepts both. But it is a question of which Cura generates.

What it means for gcode is that some commands are different in each flavour. If you go searching for a command and it is not there because the flavour is different, then you might be confused. UltiGcode my use a G command for some task, but Rep-Rap might use an E command for the same task, for example.

Think British and American English. Mostly the same, but some words are spelled differently and sometimes there are different words for the same concept. :)

I am not expert on this stuff. I am still learning myself. :)

Anyway, hope this helps.

Share this post

Link to post
Share on other sites

Oh, so the difference is that with UltiGCode, the printer handles the material choice and temperature settings, for example. With Rep-Rap style, you have to tell Cura all that and the printer just blindly follows what is in the gcode.

The idea with the UltiGCode is that you could change materials and/or temperature settings on the printer and keep the same gcode to reuse over and over. With Rep-Rap, you have to re-slice your model for every change.

But now, with Cura getting smarter about controlling temperature, with multiple nozzles, different nozzle sizes and with the growing number of new fancy materials, it is becoming unwieldy to keep using UltiGCode. So the move now is back to the older Rep-Rap style like all other 3D Printers in the world.

Or at least, that is my understanding. I could be wrong about the motivations.

Hope it helps. :)

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

  • Our picks

    • Ultimaker Cura | a new interface
      We're not only trying to always make Ultimaker Cura better with the usual new features and improvements we build, but we're also trying to make it more pleasant to operate. The interface was the focus for the upcoming release, from which we would already like to present you the first glance. 
        • Like
      • 130 replies
    • "Back To The Future" using Generative Design & Investment Casting
      Designing for light-weight parts is becoming more important, and I’m a firm believer in the need to produce lighter weight, less over-engineered parts for the future. This is for sustainability reasons because we need to be using less raw materials and, in things like transportation, it impacts the energy usage of the product during it’s service life.
        • Like
      • 12 replies

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!