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.
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.
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.
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.
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.
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.
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:
- Change position in the room
- Scale selected object
- Component, here around all 3 axes, turn
- Mirror component
- Duplicate component
- 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.
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.
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.
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.
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.
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.
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 Thingiverse.com 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.
Figure 12: Getting a STL file from Thingiverse.com
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.
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 22.214.171.124, 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.
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.
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.
Figure 16: Open printer management in Cura
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.
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 https://github.com/M3taKn1ght/Blog-Repo.