<p>I read that G-code commands can be sent through a console/terminal over USB. What is a console/terminal and how do you use that?</p>

There are several programs that could serve as a console to connect to a printer, put let's start somewhere: the USB connection.
Step 1: Connection with USB
When connecting the printer via USB for the first time, we will get a notification that some unknown item is connected. If we use windows we can learn what device it decided we now have via the
```
device manager
```
(
```
Windows Key
```
then typing in
```
manager
```
and
```
Enter
```
). It should be a COM Port as this picture shows.
In this case, we have connected to
```
COM4
```
. To change the COM port, we can do so via a
```
Rightclick
```
->
```
properties
```
, then the
```
connection settings
```
and
```
advanced
```
. In the new window, we can change the COM port number to anything from 1 to 256, but it is recommended to keep the number somewhat low.
Make sure you run the printer's power supply
and
the connection via USB, as you can't use motor control commands if you have the power supply for the printer off.
Step 2: Using the COM-port
Now, we need a program that can use the COM port to connect to the printer. There are, as said, several out there. One such is
Repetier Host
, which comes with slicer and a good graphical interface. Another is
Ultimaker Cura
, which has the same capacities but lacks logging of all the commands exchanged. Because many are familiar with it as a slicer, I will look at it first. As a third option, I will take a look at
Pronterface
.
CAVEAT: Only
one
program that actively uses the COM port can be properly run at the same time, as the first program accessing the port will claim all uses for the COM port till it is shut down - any program or even other instances of the same program trying to access the port after that will have no control of the port.
Ultimaker Cura
After launching Ultimaker Cura, choose your printer. many printers are available as presets by now, so just import the printer you use or make a custom profile. At the moment the latest version of Cura is 4.1.0, and will look like this:
After switching to
```
Monitor
```
, it will automatically connect to the Printer via the COM port, in my case 4.
Once more we test the connection via Home
and then use the Send G-Code prompt, confirming lines via
```
Enter
```
.
Repetier Host
After running Repetier Host the first time, you need to configure your printer.
```
Ctrl
```
+
```
P
```
opens the config window for the printer. We need to know the Baud Rate of our printer, so I looked up the documentation of my Ender3, which told me 115200 is the right setting. Most printers seem to run on this setting. The other tabs decide the speeds, extruder number and limits and the bed shape. The rest isn't needed for this. My settings for the Ender3 are these:
Ok, we made our settings and saved via
```
OK
```
.
Now, we press the Connect button on the left side of the menu:
It should change to the blue Disconnect button and display other parts of the print now, showing that we have connected. Note that at the bottom of the screen a log is filled with all the commands and exchanges.
On the right side, we now can choose the Tab
```
Manual Control
```
Before sending any commands, it is a good idea to press the Home
button. This also serves as an extra test to see if the printer is connected correctly. Now we can use the Prompt G-Code to send our commands. The commands will be put into the log below.
Pronterface
This is the first time that I used
Pronterface
. The first thing to do after downloading the Printrun package and running the Pronterface application is to press
```
Port
```
, then set the right Baudrate (115200 seems to work for many machines) and press
```
connect
```
.
The GUI will saturate and the right log will show lots of things tested in connection. Note that in the lower right of the GUI, there is a temperature curve log, which can be very handy for troubleshooting, as it shows the change over a little time.
Below the log, we find the input for commands, and if we send a command, we get a log entry of it: