Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
tevo_tarantula_i3_3d_printer [18.03.2018 13:06] – [Bed Leveling Sensor] Pascal Suter | tevo_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:// | ||
+ | [[https:// | ||
===== 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 working, so you can simply compare | + | To get started, you can download |
==== 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 | + | #define X_PROBE_OFFSET_FROM_EXTRUDER |
- | #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 | #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above | ||
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 77: | Line 84: | ||
< | < | ||
#define X_MIN_POS 0 | #define X_MIN_POS 0 | ||
- | #define Y_MIN_POS | + | #define Y_MIN_POS |
#define Z_MIN_POS -1 | #define Z_MIN_POS -1 | ||
#define X_MAX_POS X_BED_SIZE | #define X_MAX_POS X_BED_SIZE | ||
Line 86: | Line 93: | ||
so fare i don't know where in the Configuration.h file i could fix that, the only possibilty i have found is by programming the Offest into the EEPROM by running this G-code: | so fare i don't know where in the Configuration.h file i could fix that, the only possibilty i have found is by programming the Offest into the EEPROM by running this G-code: | ||
- | M206 X0 Y-40 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, | + | 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 '' | + | 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 '' |
- | M206 Z0.2 | + | M851 Z-0.8 |
+ | Now run '' | ||
+ | |||
+ | once done, save your settings | ||
M500 | M500 | ||
- | will set the z offset to 0.2mm LOWER than the sensor' | ||
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 '' | ||
+ | ==== Bed Leveling VS G28 ==== | ||
+ | in older versons of the Marlin Firmware it was not possibel to enable '' | ||
+ | ===== 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 '' | ||
+ | < | ||
+ | #define Z_STEP_PIN | ||
+ | #define Z_DIR_PIN | ||
+ | #define Z_ENABLE_PIN | ||
+ | #ifndef Z_CS_PIN | ||
+ | #define Z_CS_PIN | ||
+ | #endif | ||
+ | |||
+ | #define E1_STEP_PIN | ||
+ | #define E1_DIR_PIN | ||
+ | #define E1_ENABLE_PIN | ||
+ | #ifndef E1_CS_PIN | ||
+ | #define E1_CS_PIN | ||
+ | #endif | ||
+ | </ | ||
+ | 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:// | ||
+ | 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: | ||
+ | < | ||
+ | Kp: 19.56 | ||
+ | Ki: 0.71 | ||
+ | Kd: 134.26 | ||
+ | </ | ||
+ | and this is the GCODE to save it to the printer: | ||
+ | M301 P19.56 I0.71 D134.26 | ||
+ | and now save it | ||
+ | M500 | ||