MakerBot Print is our newest print-prepration software, which supports native CAD files and STL assemblies,
allows you to interact with all your printers via the Cloud, and many other exciting new features.

Download Now

Klipper for TEVO Tarantula

fast_print klipper quality tevo_tarantula

Please Login to Comment

I was thinking about moving to Klipper for a while. And now I got my TEVO Tarantula configured with it.

Klipper is new firmware, that is totally different from any other firmware by the way how it controls printer's kinematics.
You need Octoprint with Raspberry 3 or similar
You can read and get it here: https://github.com/KevinOConnor/klipper

There is new plugin in Octoprint for Klipper.

What is good:

  • to change config you won't have to flash it into printer - just edit it in OctoKlipper plugin of OctoPI
  • at same speed it can give better quality;
  • it can achieve much higher speeds (you might need to make printer more sturdy). Before I used to print at 50-60 mm/s. First my print with Klipper I did at 80 mm/s. Second - at 110 mm/s. It has shown that I need to tension belts better. Also I will redo extruder bracket shorter and add the stiffening ribs to it. But overall it is OK for my purpose. 2 Hours instead of 5 is important! And definitely I can increase speed further.

What is no so good, though it is only for high speeds above 100 mm/s:

  • You have to use highest filament temperature to extrude it faster;
  • with PLA it is fine, you use fan. but with ABS you need to tune corner speed, and sometimes use fan (slightly).

Bed leveling is working fine. Same as mesh leveling.

In the config file there is a section for Bed Tilt leveling commented out, because I used Mesh leveling. You can use only one - ether ether.
Note that I specified number and coordinates of points for my large bed. You need to adjust that is yours is not 200x280.
Also, My Octoprint by some reason uses ttyUSB0. You will find it when you install Klipper in your OctoPi following instruction.

As for your printer additions/mods: the more weight you hang on cartridge and bed it the more wobble you introduce.
I might review some parts of my printer to make it stiffer and lighter.

"... with ABS you need to tune corner speed, and sometimes use fan (slightly)."

Can you please elaborate on this a bit? How do you tune the corner speeds, and how much is 'slightly' for the fan speeds?

It described in klipper documentation here:

look at the pictures with corners there, you will understand if you need to tune yours.

Regarding fan speed. When you use really high speed for print, the filament has not enough time to cool down. You can use fan on minimal percentage which depends on what fan you have. I used 20% - 25% speed on prints faster than 100 mm/s


thanx for sharing your config for the Tarantula. I have an issue and you might be able to help if you already saw.
After restarting klipper the result of M503 is :

Send: M503
Recv: // Option 'position_endstop' is not valid in section 'stepper_z'
Recv: // Once the underlying issue is corrected, use the "RESTART"
Recv: // command to reload the config and restart the host software.
Recv: // Printer is halted
Recv: !! Option 'position_endstop' is not valid in section 'stepper_z'
Recv: ok

Configuration of stepper_z is as per your file

The stepper_z section is used to describe the stepper controlling

the Z axis in a cartesian robot. It has the same settings as the

stepper_x section.

step_pin: ar46
dir_pin: !ar48
enable_pin: !ar62

step_distance: .0025

step_distance: .000625

endstop_pin: ^!ar18

endstop_pin: probe:z_virtual_endstop
position_max: 200
homing_speed: 12

Any ideas?

Check syntax near position_endstop in stepper_z section

I'd check first if z_virtual_endstop is valid, as it automatically defined with section [probe].
I defined that because I use probe for automatic bed leveling. If you have just z end stop switch (manual bed leveling) and section probe is not defined, then in stepper_z section remove (or comment with #) line
endstop_pin: probe:z_virtual_endstop

and uncomment line:
endstop_pin: ^!ar18

This is what i have now in my config file:

step_pin: ar46
dir_pin: !ar48
enable_pin: !ar62

step_distance: .0025

step_distance: .000625
endstop_pin: ^!ar18

endstop_pin: probe:z_virtual_endstop

position_endstop: 0
position_max: 200
homing_speed: 12

I am still getting the same error.

P.S. looks like a forum where code needs to be posted in comments, treats the dash as font formatting operator...
They should fix this

You did not mention about the [probe] section

sorry about that, here it goes:

Z height probe. One may define this section to enable Z height

probing hardware. When this section is enabled, PROBE and

QUERY_PROBE extended g-code commands become available. The probe

section also creates a virtual "probe:z_virtual_endstop" pin. One

may set the stepper_z endstop_pin to this virtual pin on cartesian

style printers that use the probe in place of a z endstop.


pin: ^!ar18

This creates a virtual "probe:z_virtual_endstop" pin for z-stop

x_offset: 1.0

The distance (in mm) between the probe and the nozzle along the

x-axis. The default is 0.

y_offset: 93.0

The distance (in mm) between the probe and the nozzle along the

y-axis. The default is 0.

z_offset: 0.0

The distance (in mm) between the bed and the nozzle when the probe

triggers. This parameter must be provided.

speed: 10.0

Speed (in mm/s) of the Z axis when probing. The default is 5mm/s.


A list of G-Code commands (one per line) to execute prior to each

probe attempt. This may be useful if the probe needs to be

activated in some way. The default is to not run any special

G-Code commands on activation.


A list of G-Code commands (one per line) to execute after each

probe attempt completes. The default is to not run any special

G-Code commands on deactivation.

i tried both commented and not the :

pin: ^!ar18

both do not work for me.

You might want to post this at klipper' git hub issues

i recheked and now i am getting something different:
No option 'pin' in section: 'probe'

i am pretty sure there is something wrong in the way my text is parsed or copied to nano.

I really appreciate your help on this issue. i will probably do so.

it is so strange, the focus is on the commented lines and actual directives are almost not visible, can i do otherwise in this forum ?

I noticed that right away.
But other people can be confused.

You always can attach your config file

Hi again.

is there any way to get back my tarantula to original state? In the end i don't care too much for the raspberry (if needed i will reinstall octopi from scratch), however during the klipper installation the board was flashed, correct? Do you know how i can re-flash the board to its original state?


replying to my comment, i was able to revert my tarantula back to its original state. The purpose was to remove klipper from the board as well,

Comments deleted.

The pin ar19 is not used in my MKS Base 1.4.

I assume your printer is TEVO Tarantula and it uses board MKS Base 1.4

The pin is just a input point of a signal. Where software reads the state of a signal.
Even if there is no pin in hardware, the Aduino CPU will still get some undefined data input (garbage). Or that pin used for something else.
It looks like your case - no matter where the Z is it still reads the same state, therefore continuing to move even crashed into bed already.

In my config I use a probe - the automatic bed leveling sensor
If you don't use automatic bed leveling then you have to remove section [probe], uncomment endstop_pin: ^!ar18 in [stepper_z] section and remove line endstop_pin: probe:z_virtual_endstop

You need to follow the "Verify endstops" part in klipper Config_checks:
You will test your every endstop state both triggered and non-triggered depend of position of head.


Actually, verify everything else as per that document.

What I can think about your situation:
your Z sensor (or endstop switch, whichever you have) has opposite polarity that I use in my config filre.

Two types of sensors exist - normally open (NO) or normally closed (NC).
If it is NO, use ^!ar18
if it is NC, use ^ar18

thanks for your answer,although I fixed my proble yesterday, this is the stepper z Im using right now, it is printing but, I have a problem extruding now, it pushs so little filament , Im using speed 130mm/s but I dont know how to modify to make it send more filament

step_pin: ar46
dir_pin: ar48

dir_pin: !ar48

enable_pin: !ar62

step_distance: .0025

step_distance: .000625

endstop_pin: ^ar18

endstop_pin: ^!ar18

endstop_pin: probe:z_virtual_endstop

position_endstop: 0.5
position_max: 200
homing_speed: 5


Is it print speed - 130 mm/sec?
you need to make hotend up to 20-30C warmer at high speed prints.
E.g. with ABS+ I print at 255C. With PLA - 220C or more. (Well, I almost don't use PLA now)

cool I will check with 220C and 130 mm/sec, thanks, Ill let you know in a sec

You need to check/modify [extruder] section for that.

But if your printer is standard Tarantula the config should be proper.
Check your settings in Octoprint. If filamentis 1.75mm, not 3mm

You need to follow klipper procedure: https://github.com/KevinOConnor/klipper/blob/master/docs/Config_checks.md to tune extruder as well before any printing

In Octoprint You can preheat extruder to your filament nominal temperature, and then extrude 10 mm and measure the length of filament (before extruder motor, not in hotend).
You will see 10 mm of filament enters into printer. if it goes other direction - modify config.
If you hear clicks - ether hotend got clogged, or temperature is too low.
Check temperature settings in Octoprint. If it is OK there - check config for extruder heater parameters.

when I test the extruder in octoprint default config worked but when I use the Cura plugin to connect to octoprint, it doesnt work , it prints nothing or at the beginning it push very few filament

Try to slice on computer with proper parameters of filament and temperature. Upload to Octoprint and test print

it is not extruding enough material, I dont know why

with another slicer?

Hi there,

I found this REAL interesting but... (there's always a "but") it seems quite difficult to edit your settings and stuff, or at least that's my first impression. Is there any easy way to actually edit the settings? In Marlin it was kind of easy to just go and make some mods and just upload and you were good to go.
I'm waiting for my lead screw for second motor on my Tarantula, i got the MKS GEN L with TMC2208 and MGN rails for X an Y axis so this new firmware looks really tempting but i wouldn't want to go from something rather easy to configure to something that keeps me busy trying to figure out witch settings should be changed where... hope you got the idea of my concern.
Anyway, thanks for sharing this and hope to learn new stuff.

All the best!


at first it really felt more difficult than "simple" mods in Marlin but when you get into that, it really gets much easier than Marlin. I recommend the OctoKlipper Plugin in Octoprint where you can change your printer.cfg file directly in octoprint.

I don't see any problem in editing - it is just a text file (name is printer.cfg), you can edit it several ways.
Just establish one or another and always use it:

For 1st and 2nd you need terminal or ssh access to raspberry, then use either way:
1) keep config file in your computer in shared folder. Install samba client in raspberry and mount that share. Then edit config file with wordpad, wordpad+ or MS Word, just save as text. Then in Raspberry copy it from share to home.
2) Or edit it in raspberry with nano editor.

3) Another way is to connect display and keyboard/mouse to raspberry and install GUI (graphical desktop):
sudo apt update && sudo apt install raspberrypi-ui-mods

Then when you start desktop - just use textEdit.

Most of configuration settings applicable to Tarantula alreready are in this Config file in my 1st post.

For second z-stepper there is additional section in example-extras.cfg (you get it from Klipper github) - search for "Multi-stepper axes."
how to configure TMC2208 you will find in same file.

All these additional configuration need to be added to printer.cfg file, uncomment what you need.