Getting started with 3D printing Part 2

In the first post of this series, I took them to the first impressions with the 3D printer and the first technical matters such as Hotend or Heatbed clarified. At the same time, the basic commissioning and the levels has been explained in more detail. The first pressure has succeeded over the SD card, but what are you doing next and how can you get to the GCODES now?

Following the introduction of the GCODES and the required program, I'm still looking at why my printer is no longer running with the original firmware and what to pay attention to.

What is GCODE

In the first post of this series, I mentioned that my first test print was the two owls. So that I could print these, there was already a file with the extension * .gcode in the root directory on the SD card. But what exactly hides behind the GCODE? If you open a GCODE file with e.g. Notepad ++ so you will kill "code", depending on the size and complexity of the object, from several 10,000 and 100,000 lines. If you look at code 1, you will not really understand what exactly everything should happen.

; Flavor: Marlin
M73 P0
M117 Time Left 3h26m24s
; Time: 12384
; Filament used: 6.73417m
; Layer Height: 0.2
; Minx: 67.96
; Miny: 41.494
; Mint: 0.1
; Maxx: 142.04
; Maxy: 170.274
; Maxz: 24.9
; Postprocessed
; Generated with cura_stamengine 4.8.0
M140 S60
M190 S60
M104 S200
M109 S200
M82; absolute extrusion fashion
G21; Metric Values
G90; absolute positioning
M82; Set extruder to absolute fashion
M107; Start With the Fan Off
G28 x0 y0; Move x / y to min endstops
G28 Z0; Move Z to Min Endstops
G1 Z15.0 F120; Move the Platform Down 15mm
G92 E0; Zero The Extruded Length
G1 F200 E3; Extrude 3mm Of Feed Stock
G92 E0; Zero The Extruded Length Again
G1 F120
G0 Y20 F120
M117 Printing ...
G92 E0
G92 E0
G1 F2400 E-6
; Layer_count: 125
; Layer: 0
M117 Layer 0 of 124 ai3m_halter_drucker_v2
M204 S500
M205 X30 Y30
G1 F600 Z0.175
G0 F1200 X71.842 Y93.629 Z0.175
M205 X14 Y14
; Type: skirt
G1 F600 Z0.1
G1 F2400 E0
G1 X72.914 Y92.852 E0.02928
G1 X73.088 Y92.742 E0.03384
G1 X75.216 Y91.345 E0.09014

Code 1: Cutting out of a GCODE file

Who is traveling in the area of ​​CNC manufacturing, will already find some parallels to CNC machine code. Each code or command has a particular meaning, with the following parameters describe exactly what to do. The only exception is all signs behind ";" follow, there ";" comments are. You can imagine the "//" in the source code as in the Arduino ID.

From now on the Documentation of the firmware Marlinwho used the AnyCubic of me, interesting! In this case is explained exactly for each command what he does and which parameters are needed so that it works cleanly.

As an example, the lines behind "; Generated with Cura_stamengine 4.8.0" should serve code 1.

M140 is the command to bring the Heatbed to the desired temperature. The parameter S60 in this case means that the temperature is to be set to 60 ° C.

M105 assigns the printer or controller to send the temperature to the host. In the case of the AnyCubic via the serial communication via USB cable, if it is active.

G1 is the linear movement in this code. With X, Y and E, the position can be specified exactly on the heatbed.

You see to make the printer to do something, you need to typing many commands to get to the result. Of course, there are also commands to change various settings in the printer or get information from the printer.

You do not have to memorize these commands and write for your print objects yourself. There are so-called 3D slicer software, which takes over this work for you.

My helper of the (3D) slicer

At this point, it now comes to a topic in which every user of a 3D printer has his own opinion. The speech is from the 3D-SLICER software, which generates a GCOD file from a so-called STL file.

On the question of what Stl is again: This is the file extension for SUrface Tessation LAnguage and is the resulting object file from a 3D modeling program. If you are ever on the road in 3D printing forums, the meme from Figure 1 will run over the way more often.

Meme Stl? from meme generator

Figure 1: Meme Stl? from meme generator

Since you always have to create your own GCOD file for your 3D printer, you need the STL, that is, the 3D model of your desired object. If you do not know these sympathetic seagulls, you should "find Nemo" to understand this GAG.

But what does the 3D slicer software do right now?

From the principle exactly what I mentioned in mind, so from a 3D model, the STL file, create a GCOD file. What the 3D-SLICER software but is that it offers a pile of setting options with which options and settings of the GCODE is generated, which has a significant influence on your pressure! It starts to adjust the printing speed or how thick the individual layer types should be at a 3D printer, up to the control of the fan at the bottom of the nozzle.

The movements and settings for the printer, let's just say the frame settings for the 3D printing, will be used after creating the GCODE file. However, since there are quite printers with different firmwares, e.g. Marlin, reprap or reputers to name a few, a 3D slicer software must also use the right commands so that the printer can later print correctly.

The question of which 3D-SLICER software is now to be used and where the preliminary or disadvantages lie can fill further blog contributions. For me, Ultimaker Cura was the only software so far. That does not mean that it is the best, but this has made me a lot easier for me. Especially because the manufacturer has recruited from my printer with this software. If you look on the Internet for 3D-SLICER software, you will be currently finding the 21 appreciable programs. These are partly free, partly commercial and are not suitable for every user. But Cura is classified as an introductory start-up in most forums and offers enormous adjustment options in the free version. If you later attach value to specific plugins, you may need to upgrade to the Enterprise version that costs accordingly. In my case, this was not necessary, since I did not have to use plugins, other possibly hidden settings needed. Supposedly, Simplify3D should be a bit better than Cura, just for beginners, but with currently 130 euros for two licenses I could not judge that so far.

The 3D Slicer program gets to know my printer

Once you have opted for a software and installed it, then a wizard is running in most cases at the first start, which sets up the first printer. In the case of Ultimaker Cura, many common printers are already available in a selection mask. This is not self-evident at Ultimaker Cura, as Ultimaker sells its own 3D printer at the same time. However, the software seems to have so much popular thing that you have gone the step of depositing as many printers as possible a default profile, see Figure 2.

For almost every 3D printer a profile in Ultimaker Cura

Figure 2: For almost every 3D printer a profile in Ultimaker Cura

In most cases you spare yourself in most cases a variety of basic settings for the printer, because the basic dimensions and printhead settings you do not have to look for this, but has these device settings directly via the print profile, see Figure 3.

Basic data for a printer with customized DEFAULT profile

Figure 3: Basic data for a printer with custom Default profile

Also appropriate start and end gcodes are already available for the 3D printer, but can be changed at will.

Admitted, at this point I do not know how there are other 3D slicer programs, but may well imagine that one or the other program has also stored for the most common 3D printer profiles

The 3D Slicer Cura in detail

Now that it is known what a 3D slicer program is exactly, such a program, here Cura, should now be considered. Cura is pretty easy if you look at picture 4. Simply, however, it does not mean that this tool is only for the beginning, but has just been programmed quite catchy for beginners.

Surface Cura

Figure 4: Surface Cura

In the upper line there are the riders Preparation, Preview and monitoring. Basically, this is also the workflow to start and perform a pressure.

Over the rider To prepare Select the object to be printed and position it on the virtual print bed. When the 3D model is first loaded, this is placed in the middle. Hardly the model is loaded, some things happen in the background and also on the surface.

Prepare the rider with charged component

Figure 5: Preparing the rider with charged component

Most striking are two newly added. Centrally links, the component options are now visible, with which the 3D model can be manipulated. In the following, briefly explained what the individual options, from top to bottom, make:

  1. Change position in the room
  2. Scale selected object
  3. Component, here around all 3 axes, turn
  4. Mirror component
  5. Duplicate component
  6. Create exclusion areas

The last option is needed just when it comes to support structures.

At the bottom right you will see an info window, how long the pressure will probably take how much the component weighs and how much meter filament you will consume.

Theoretically, you can also save the "Save to File" button already in the background GCODE to hard disk or SD card. But that's only recommended if you have made the optimal settings.

For the latter point is the rider preview there. This shows how the component is later printed on the printer. Basically, it's a small gcode viewer as it mimics the path of the nozzle. Also, additives, such as support structures and printing plate adhesive types are shown, which are generated during pressure, see Figure 6.

Preview of printing in Cura

Figure 6: Preview of pressure in Cura

You see the model a so-called skirt line and a support structure on the left edge from the component for a hole. Depending on how you have set Cura, you get another result.

Why do you need support structures? 3D printing is carried out in layers which are superimposed. Each new layer needs an underlying layer. The first layer is on the heat bed, which is also a topic for itself. Missing the previous layer, e.g. When creating a model with a window, the next layer can not rest. For this, a support structure can be generated with the slice software. It can be broken out in retrospect because it contains predetermined breaking points.

To get to the settings, you have another menu bar below the main champion. Fold the rights once, see Figure 7, you can only preserve very rudimentary print settings.

Open base pressure settings

Figure 7: Opened base pressure settings

In theory, you can also make your first pressure, but with increasing complexity or compared to other printing, you will quickly find that the beginner is glad here, but the advanced user is rather disappointed.

But do not worry, with the button Custom, See Figure 8, you can set much more.

Print settings in custom mode

Figure 8: Print settings in custom mode

Here you will already slain with options at the beginning, but it is still much more options available. Via the button marked in Figure 8, you can set what you want to see for parameters in each category. From the principle you only need a handful of the settings and also about the pop-ups is well explained, which makes the individual option exactly, see Figure 9.

Description of the print parameter "Printing speed"

Figure 9: Description of the print parameter "Printing speed"

At some point, however, caution is required. Some options have been very trying to translate into German, which could find that of some parameters difficult, especially when they are in English 3D printing forums. In fact, only helps to switch the software into English briefly and then search the desired parameter.

The last rider Monitor For me personally never was of interest, because I have made my prints made either with the SD card or with a Raspberry Pi my prints. The latter I show in another blog post. The idea behind it is to connect the printer with the PC via USB cable and transfer the pressure commands via serial interface to the printer. While this works quite well at the point, but the long USB cable I found in my office as disturbing and why a large tower start overnight, which consumes a lot of electricity when a Raspberry Pi 3 or 4 can do the same work? Only a feature is interesting in conjunction with the USB cable and that is the flashing of a new firmware to the printer, more.

Let's jump to the rider again preview From Cura. So far, only roughly explained how now settings change my pressure, not how a gcode is generated or only on the edge.

In Figure 10, you still see the info box with the details of how long the pressure lasts how much it will weigh and how much filament is needed for it.

Infobox lower right

Figure 10: Infobox lower right

The Blue Button Save to file Write the pre-prepared code of Cura into a GCODE file. As with each normal program, a dialog opens and you can give the file a freely selectable name, see Figure 11.

Save Cura GCode

Figure 11: Save Cura GCODE

On the question that will now be burning to your fingers, "where do I get 3D print templates now?", I can only give you the page recommend. Especially on this page you will also find some of our authors, including me, and many (un-) useful gadgets and components find. You can say quasi, there is nothing there, see Figure 12.

Get a STL file from

Figure 12: Getting a STL file from

At this point, the 3D-Slicer program Cura should have been explained enough. With the standard profile, a pressure succeeds, where I quickly realized that I was not so satisfied with the printing result, see Figure 13.

Result of the first prints

Figure 13: Result of the first prints

As may not be noticed, the individual layers do not see cleanly printed or moved and generally still air is up.

The 3D printer gets a custom firmware

In the previous chapter I mentioned that there are different GCODE variants or firmwares for 3D printers. By default, all devices are delivered with a firmware. The question is how old the software stand is on the 3D printer. In my case, the last available version of my printer manufacturer was Marlin firmware version 1.1.5. The current version of Marlin is, as of March 2021, version, but not so easy 1: 1 can be installed on my printer. But there are some (hobby) developers that port up-to-date versions of the different firmwares for the printers and provide prefabricated updates at Github. Well-known developers are Oliver Köster Alias ​​Knutwurst and David Ramiro Alias ​​Davidramiro, which build for the printer manufacturer AnyCubic according to current company hardware. The trick on the point, since there are now many interesting conversions for the printers, corresponding firmware collections are published by the developers, so every imaginable combination also works.

But what is the big advantage of such updates? Now basically, as is the case with every update, a newer version brings different new features and also bugfixes. The corresponding Changelogs can be viewed on GitHub or the official homepage. In my case, an update, among other things, has the advantage that some interesting features like the Mesh Bed Leveling are unlocked. In this case, a crooked headbed is equalized by software, which is not possible with the regular levels. Also, some commands and motor drivers are better controlled, the latter is treated closer in the next blog article.

Small slot on the edge, the Marlin firmware is compiled accordingly with an Arduino IDE, which fits very well with our other projects. What you have to pay attention to everything and how you need to do is also explained in more detail in the next blog article.

The most important question in the beginning is which version of the FW may it be? "New is always better," may apply to some software packages, but it is also caution offered! With each new version, there may be the risk that you have to re-perform the calibration of the extruder and PID tuning. This calibration will also be topic in the next blog post.

In my case, I still use the current version of Knutwurst. Compared to the manufacturer's Marlin version, various new features and fixes have been added significantly improving the print image. The current version of Knutwurst is 1.1.9, which is not the Marlin version, but an internal version of the Github developer. In fact, the Knutwurst firmware is based on Marlin 2.0.x. Even more confusing will be when you get the Release looks at, see Figure 14.

The different versions of the firmware Knutwurst

Figure 14: The different versions of the firmware Knutwurst

The fog opens when one reading a little bit more. Knutwurst has the documentation written in detail that you quickly find out what the different abbreviations mean. For my first update, I need for my printer because I have not performed any tags on the printer, the file "Mega_s_v1.1.9.hex". In addition, it still needs a program that allows the firmware to transfer. How good that the 3D-Slicer program Cura deliver this feature immediately.

At this point a warning before it continues. Here the original firmware is overwritten by the manufacturer and it carries the risk that the printer stops working afterwards. Depending on the printer manufacturer, the update method is different or something must be considered. In the following, the update method of an AnyCubic I3 Mega S will be described. This procedure can be transferred to all AnyCubic printers, but you should still check in appropriate forums whether the update method has changed.

So I first save the hex file needed for me on the PC. Afterwards, the PC must be connected to the USB cable, see Figure 15. In my case, no additional drivers were necessary because the CP2102 driver was already present on my computer by other projects. If necessary, these drivers can also be reloaded at AnyCubic.

The printer is connected to the PC

Figure 15: The printer is connected to the PC

Where the USB port is at your printer, see the housing of your printer or in the description. Depending on the printer, it is necessary to turn it on or turn it on the mainboard from the 3D printer to a jumper. In the case of AnyCubic I3 Mega S, it is sufficient to turn on the 3D printer. Next, Cura is started and the printer settings are opened, see Figure 16 and Figure 17.

Open printer management in Cura

Figure 16: Open printer management in Cura

Select the correct printer

Figure 17: Select the correct printer

About the button Update firmware Can be performed a firmware upgrade and under Device settings Can be opened the basic setting. For the update it takes the first button. Figure 18 shows how the rhein sequence with an update.

Update order at Cura

Figure 18: Update order at Cura

The problem after the update is that neither the printer nor Cura shows the currently installed firmware. This requires software that can send and display commands accordingly via a command line. Unless the power is switched off during the update or the USB cable is pulled, the update should have been successfully copied. Then, Knutwurst recommends that the printer still switched on 20 seconds and then restart.

Thus, the printer has received a new firmware. You now know the term Slicer And know what a 3D slicer program makes. At the same time, it should be clear how a GCODE file is generated and what needs it.

With the new firmware new possibilities and tuning options are added. This is intended to become topic in the next blog post of this series. How can the printer be tuned and what does it need? For the tuning to work, it needs a program that grant command line access. I do not want to use my work computer for this, but the one-board calculator Raspberry Pi in combination with Octopi. Octopi will first be described rudimentary in this context and deepened in a later blog article. In addition to software tuning, the topic of hardware tuning will also be a central role. So stay stretched.

This and other projects can be found on GitHub

Basics softwareProjects for beginners


Jörn Weise

Jörn Weise

Hallo Michael,
da ist Sie wieder die Frage, wo fängt man an und wo hört man auf und wie detailliert schreibe ich über etwas. Wie schon im ersten Teil erwähnt ist es meine persönliche Sichtweise und meine Erfahrung mit dem 3D-Drucker die ich gemacht habe. Ich sehe das ganze eher von der technischen Seite und beschäftige mich daher an lieber mit z.B. dem gcode oder der SW. Letzteres hat in Kombination des Hardwareumbaus zu einer enorme Verbesserung vom Druckbild geführt. Klar habe ich vorher versucht über den Slicer viel zu korrigieren, aber dann kommt wieder die Frage bei einigen Lesern auf, warum ich gerade Slicer XYZ genommen habe und dort soviel Energie in den Blog gesteckt habe. Das Thema 3D-Druck ist eben nicht schwarz weiß und es gibt viele Bereiche, die es zu lernen für meinen Teil nutze bisher nur PLA und habe daher keinerlei Erfahrung mit anderen Druckmaterialien, somit kann ich darüber auch nichts schreiben. Das Thema 3D-Konstruktion wird aber noch kommen, jedoch habe ich früher viel mit SolidEdge konstruiert und werde daher Fusion 360 nutzen. Auch hier wieder die Frage, welches Programm bietet für mich den größten Nutzen?! Das muss jeder Nutzer für sich entscheiden und kann eine Blogreihen nicht abnehmen, es zeigt aber durchaus womit sich der Käufer auseinandersetzen wird/muss.



Respekt vor so einem Blog, aber ganz ehrlich – ich betreibe 3D-Druck seit 10 Jahren und sich mit gcode oder SW-Update näher zu beschäftigen ist m.E. im 2. Kapitel unnötig. So oft muss man nicht in diese Tiefe.
Ich fände es wichtiger über Materialien wie t.B. PETG oder WillowFlex zu berichten oder Programme wie openscad vorzustellen (Basis von
Da haben Einsteiger erst mal mehr davon.

veit burmester

veit burmester

Der Beitrag ist sehr gut. Endlich eine übersichtliche Erklärung.
Ich bin der Meinung es sollte aber auch auf die Marlin eigene Drucker Software hingewiesen werden,
Diese Drucker Software auf dem PC verbindet sich ohne vielzutun über USB mit der Drucker Marlin Firmware. Und was wichtig ist sie verstehen sich auch.
Die PC Software beinhaltet unterschiedliche Slicer unter anderem auch CURA. Ein Klick und Slicen ist erledigt. Die Unterschiedliche Slicer sind anwählbar. Es ist auch möglich ein einzelnen Druckauftrag mit unterschiedlichen Slicher zu bearbeiten und dann nach dem Drucken die Ergebnisse zu vergleichen. Die Bedienung ist wirklich einfach und selbsterklärend. Gerade für Anfänger ( ich 63Jahre ) ein wirklich gute Tool. Wenn man nach einigen (15) positiven Druckergebnissen die Einstellung der Sclicer anpassen oder “verbessern” möchte sind alle Parameter der Slicer erreichbar. Und dazu ist das alles kostenlos.

Leave a comment

All comments are moderated before being published

Recommended blog posts

  1. Install ESP32 now from the board manager
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP programming via WLAN