tevo_tarantula_i3_3d_printer

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tevo_tarantula_i3_3d_printer [18.03.2018 13:16] – [X Y Z Axis positions] Pascal Sutertevo_tarantula_i3_3d_printer [23.02.2020 12:03] (current) – [Dead Stepper driver - workaround] Pascal Suter
Line 47: Line 47:
   #define X_MIN_POS 0   #define X_MIN_POS 0
   #define Y_MIN_POS 42   #define Y_MIN_POS 42
 +
 +==== Z axis stabilization ====
 +one of the structurally weakest point of the Tevo is the off-center Z-axis leadscrew that is hanging by the flex-coupling of the servo.. there are two solutions to this problem, one is to mount the servo at the bottom and then have the Y-axis push down on it, the other is to add a support at the bottom which will hold the weight of the y-axis so that it is not hanging on the flex coupling. 
 +I decided to go with the support, as it seemed more convenient to implment
 +
 +[[https://www.thingiverse.com/thing:2560073|lower support]] (needs a 608ZZ bearing)
 +[[https://www.thingiverse.com/thing:2533666|M4 t-nuts]]
 ===== Firmware Setup ===== ===== Firmware Setup =====
 Since I have the Auto Level option I had to dig into how to calibrate that thing right away as the auto homing will cause the Z axis to crash into the printing bed with the standard firmware configuration.  Since I have the Auto Level option I had to dig into how to calibrate that thing right away as the auto homing will cause the Z axis to crash into the printing bed with the standard firmware configuration. 
Line 53: Line 60:
 that's quite easy: just download the latest Arduino IDE and install it. a little warning here, the one included in the Ubuntu Repos is very old.. for Ubuntu 17.04 there was still a version 1.0.x of the arduino IDE, Marlin currently needs at least 1.6.x to work and you currently can download 1.8.3 from the Arduino webpage. then double check that your control board has the Atmel 2650 chip on it and select the board accordingly in the Arduino IDE. now you can simply open the Marlin.ino file, change your config settings and hit upload.  that's quite easy: just download the latest Arduino IDE and install it. a little warning here, the one included in the Ubuntu Repos is very old.. for Ubuntu 17.04 there was still a version 1.0.x of the arduino IDE, Marlin currently needs at least 1.6.x to work and you currently can download 1.8.3 from the Arduino webpage. then double check that your control board has the Atmel 2650 chip on it and select the board accordingly in the Arduino IDE. now you can simply open the Marlin.ino file, change your config settings and hit upload. 
 ==== Settings ==== ==== Settings ====
-I will upload my config here once i got it all workingso you can simply compare my settings with yours, and will explain some parameters below i had some difficulty to understand or to get right+To get started, you can download my {{ :tevo:configuration.h}} and compare it to the defaults. I recommend you really read the comments and figure out yourself if you need some settings to be different from mine. This file is for Marvin 1.1.9 and a 20x20cm Tevo with BL Touch Sensor and the LP-Fanduct to mount it. I will explain some parameters below i had some difficulty to understand or to get right
 ==== Auto Bed Leveling ==== ==== Auto Bed Leveling ====
 There are many options as to how the auto bed leveling should work. I went with the Bilinear option which will just check 4 corners and then calculate the bed surface. As for my probe i selected a FIX_MOUNTED_PROBE which is what I have.  There are many options as to how the auto bed leveling should work. I went with the Bilinear option which will just check 4 corners and then calculate the bed surface. As for my probe i selected a FIX_MOUNTED_PROBE which is what I have. 
Line 64: Line 71:
  
 So for the homing to work when your endstops are at the physical end of the axis and not at the logical 0 points, you need to configure the probe offsets. here are mine:  So for the homing to work when your endstops are at the physical end of the axis and not at the logical 0 points, you need to configure the probe offsets. here are mine: 
-  #define X_PROBE_OFFSET_FROM_EXTRUDER  // X offset: -left  +right  [of the nozzle] +  #define X_PROBE_OFFSET_FROM_EXTRUDER 39  // X offset: -left  +right  [of the nozzle] 
-  #define Y_PROBE_OFFSET_FROM_EXTRUDER -40 // Y offset: -front +behind [the nozzle]+  #define Y_PROBE_OFFSET_FROM_EXTRUDER -42 // Y offset: -front +behind [the nozzle]
   #define Z_PROBE_OFFSET_FROM_EXTRUDER 0   // Z offset: -below +above  [the nozzle]   #define Z_PROBE_OFFSET_FROM_EXTRUDER 0   // Z offset: -below +above  [the nozzle]
 As you can see here, my Y endstop is 40 mm behind the actual 0 point.  As you can see here, my Y endstop is 40 mm behind the actual 0 point. 
Line 88: Line 95:
   M206 X0 Y-42 Z0   M206 X0 Y-42 Z0
   M500   M500
-the first line is to set the X offset to 0 and the y offset to -40, the second line is simply to store this to eeprom. +the first line is to set the X offset to 0 and the y offset to -42, the second line is simply to store this to eeprom. 
  
 now my coordinates work, when I move the printer to Y=5 it moves 5mm to the back :) now my coordinates work, when I move the printer to Y=5 it moves 5mm to the back :)
  
 ==== Setting the Z Axis Sensor offset ==== ==== Setting the Z Axis Sensor offset ====
-In order to get the first layer to a) stick to the bed and b) not be too flat the Z axis needs to have a very precise 0 point. However, adjusting the Z axis Inductive sensor is everything but a precise job. So the only viable option is, to configure this in the firmware. Again we will use the eeprom to save that setting. Here it even makes sense, because every time you remove that sensor, i.e. after you have printed the fan duct and mounted it, you will need to play around and adjust this setting. +In order to get the first layer to a) stick to the bed and b) not be too flat the Z axis needs to have a very precise 0 point. However, the Z probe usually needs some fiddeling until it is mounted correctly so that it won't interfere with your print but still reach the print bed before the nozzle does. So the only viable option is, to configure this in the firmware. Again we will use the eeprom to save that setting. Here it even makes sense, because every time you remove that sensor, i.e. after you have printed the fan duct and mounted it, you will need to play around and adjust this setting. 
  
-In order to adjust the Z axis, i first sent G28 to auto home all axis, then G29 to autolevel the bed, i then used ''G1 Z0'' to move the Z axis to the 0 position. I put a sheet of paper under the Nozzle and gently lowered it in 0.1mm steps in order to touch the paper. once you feel some resistance on the paper, pull it out from underneath the nozzle and make sure the bed does not hit the nozzle when the  paper is removed, otherwise you where too low already. once you get the offset rightuse again M206 to set it:  +In order to adjust the Z axis, i first sent G28 to auto home all axis, then G29 to autolevel the bed, i then used ''G1 Z0'' to move the Z axis to the 0 position. I put a sheet of paper under the Nozzle and set my first guess what the offset could be. it's better if you set your offset too little so that your extruder won't crash into the printbed  
-  M206 Z0.2+  M851 Z-0.
 +Now run ''G28'' agin and go again to ''G0 Z0''. Repeat this process until the nozzle makes contact with the paper so that the paper can still slide in and out from underneath the nozzle, then increase the offset by another -0.1mm  
 + 
 +once donesave your settings
   M500   M500
-will set the z offset to 0.2mm LOWER than the sensor's indication was.  
  
 Now make sure that your Slicer adds these Gcodes to the begining of every job, to make sure your bed leveling has been done:  Now make sure that your Slicer adds these Gcodes to the begining of every job, to make sure your bed leveling has been done: 
Line 105: Line 114:
 Now print something and see if you are happy with your first layers Now print something and see if you are happy with your first layers
  
 +by the way, you can also set this offset in the marlin menu under ''Control-->Motion-->Z Offset''
 +==== Bed Leveling VS G28 ====
 +in older versons of the Marlin Firmware it was not possibel to enable ''RESTORE_LEVELING_AFTER_G28'' in ''Configuration.h'' which means, that as soon as you run ''G28'' to auto-home all axes your auto-bed-leveling mesh is lost and you need to re-run ''G29''. So if your Slicer puts ''G28'' at the begining of a print-job it will kill your bed-leveling efforts! So either configure your slicer to do the auto bed leveling after the homing or set that constant in Configuration.h
  
 +===== Slicer Software and Settings =====
 +Whatever software you are using, make sure that the Start GCode contains G28 and G29 for auto height and auto bed leveling. 
  
 +for more detailed settings see [[How I 3d Print - Slicer settings]]
  
 +===== Dead Stepper driver - workaround =====
 +i recently printed a quite tall structure over night. it tunred out, that the screws of the z-axis wheels did not clear the mounting bracket for the extruder. as a result of the z-axis missed most of its steps during several hours and was jammend. 
 +sadly it turned out that after this the Z-axis stepper driver was broken. when i moved the z-axis the stepper would randomly move forward or backward or just humm. i've tried to adjust the potentiometer but with no luck. 
 +
 +as a workaround i changed the marlin config, so that it's now using the E1 (second extruder, which i don't have) stepper driver in place of the z-axis. i could simply move the molex connector over from Z to E1 and continue to print. 
 +
 +to implement the workaround, i had to start my Arduino IDE, open the Marlin project and edit the ''pins_RAMPS.h'' file. i searched for the Z- and E1 axis and swapped the values for the pins, they now look like this: 
 +<code>
 +#define Z_STEP_PIN         36
 +#define Z_DIR_PIN          34
 +#define Z_ENABLE_PIN       30
 +#ifndef Z_CS_PIN
 +  #define Z_CS_PIN         44
 +#endif
 +
 +#define E1_STEP_PIN        46
 +#define E1_DIR_PIN         48
 +#define E1_ENABLE_PIN      62
 +#ifndef E1_CS_PIN
 +  #define E1_CS_PIN        40
 +#endif
 +</code>
 +i then re-compiled and uploaded the firmware and could print right away. 
 +
 +of course i've also trimmed the bracket :) 
 +
 +===== e1 heating failed =====
 +This message is shown when Marlin gets unexpected temperature readings during the heating of the extruder. It expects a certain increase in temperature when it adds a certain amount of power to the heating element. if expected and measured values differ too much, Marlin aborts. 
 +
 +If you see this message it is most likely due to one of the following two: 
 +
 +1.) the heating element has come loose. Try if it still sits tightly in the holder. otherwise re-tighten it and try again
 +
 +2.) a PID re-tune is necessary. See all the details about it on the [[https://reprap.org/wiki/PID_Tuning|PID Tuning Page in the Reprap wiki]]. To keep it short, here are the GCODE commands to execute on your Marlin powered printer: 
 +  M303 E0 S200 C8
 +this will run **8 heat cycles** on extruder **E0** at **200°C** and measure how the heating element reacts to the power inputs given
 +
 +it will then sohow a final result giving you a **Kp, Ki and Kd** value which you should put in your configuration.h file. If you have EEPROM enabled, you can simply set the parameters via GCODE and save them. Here is an example for the following values: 
 +<code>
 +Kp: 19.56
 +Ki: 0.71
 +Kd: 134.26
 +</code>
 +and this is the GCODE to save it to the printer: 
 +  M301 P19.56 I0.71 D134.26 
 +and now save it 
 +  M500 
  
  
  • tevo_tarantula_i3_3d_printer.1521375409.txt.gz
  • Last modified: 18.03.2018 13:16
  • by Pascal Suter