G29 Auto Grid Leveling Doesn't Do Anything
I have an Ender 3 Pro, recently added a BLTouch v3, flashed a bootloader, and I'm now attempting to configure TH3D U1.R2.15 firmware.
I have only modified configuration.h, haven't touched any other file, and configured it using the inline comments as a guide.
Everything seems to work ok, apart from it doesn't do a grid/mesh level before the print. G29 has been added just after G28 in Cura in the Start gcode box.
When I print something, this happens:
- Bed + hotend heats up.
- X/Y get homed.
- Nozzle moves to the center.
- BLTouch slowly comes down to probe the bed twice to set the level based on that one single center point.
- Primes the filament and begins the print...
I'm not sure what the correct sequence is but I would have thought it should probe 9 points in a grid as I have set
#define EZABL_POINTS 3.
Have I missed something in the config?
configuration.h (have omitted all other printer sections to allow stackexchange to accept the rest of the file)
* ************** How to use this firmware - READ THIS, yes actually read this. *********************************
* Uncomment means removing the 2 // in front of #define.
* FLASHING NOTES:
* ALL slicers (Simplify3D, Cura, Slic3r, etc) or anything else that connects to the COM port must be CLOSED for the firmware to be flash.
* If anything is connected to the COM port when flashing it will fail, typically "access denied" is listed in the error section of the Arduino IDE.
* You MUST use the Included Arduino IDE to flash the firmware if on Windows and if you are on a Mac or Linux follow the guide in our knowledgebase to setup your IDE to work with the firmware.
* EZABL SETUP NOTES:
* If you have EZABL uncomment the mount you are using with the printer.
* If you have a custom/unsupported mount uncomment #define CUSTOM_MOUNT and enter your offsets
* below in the CUSTOM MOUNT section. Refer to the EZABL guide to get your offsets.
* STEP 1:
* Select the correct board from the tools menu for the printer you are flashing.
* Read the printer title for the model you are flashing, it will show what board to select.
* STEP 2:
* Uncomment the printer you want to flash. The printers are sorted A-Z by brand name.
* If you are using the Creality Dual board with the Ender 3/Ender 5/CR-20 then read the specific section below in that printer section on how to do this.
* STEP 3:
* Select the COM port your printer is on from the Tools menu. If you do not see the COM port try
* downloading the latest drivers from the manufacturer or TH3D site on our knowledgebase.
* STEP 4:
* Verify you have the correct board selected, printer model uncommented, and if you are using EZOUT and/or EZABL
* the lines you need to use them are also uncommented.
* STEP 5:
* Once you have your settings verified click the arrow in the upper left to upload to the board.
* STEP 6:
* Reset your eeprom. You can send M502 then M500 to reset the EEPROM OR on the printer LCD go to
* Control > Reset EEPROM to clear out the EEPROM to defaults.
* BOOTLOADER FLASHING NOTES:
* For flashing your bootloader with an Uno make sure to select Arduino as ISP for the programmer
* There are other features in the TH3D Extras section so look there for V6 Hotend,
* Bootscreen settings, Titan Extruder and more. You only need to edit this file.
* ERROR NOTES:
* If you get errors flashing READ the message it gives you and double check that you selected
* the correct board from the Tools menu in Arduino. Turn off any AV systems and reboot the computer.
* COMMUNITY REQUESTED FEATURES NOTE:
* All features in the community requested features section are provided as-is with no support from TH3D.
#define CONFIGURATION_H_VERSION 010109
//============================ TH3D Configuration ===========================
// ONLY UNCOMMENT THINGS IN ONE PRINTER SECTION!!! IF YOU HAVE MULTIPLE MACHINES FLASH THEM ONE AT A TIME.
// Creality Ender 3 Options - Select 'Sanguino 1284p' from Tools > Board
// If you are using our EZOut V1/V2 (connected to LCD header) filament sensor kit please follow the install guide
// and then uncomment the #define EZOUT_ENABLE line below.
// Do NOT ever connect our filament sensor without the supplied adapter board.
// EZABL Probe Mounts (Ender 3 uses the same mounts as CR-10)
//#define PETSFANG //This is the RIGHT mounted version - if using the left mount please use the CUSTOM_PROBE option.
// TMC2208 Creality Board Setting - uncomment this to set the driver type if you are using the TMC Creality board
// README - THE BELOW SETTINGS ARE ONLY FOR USING THE CR-10S DUAL BOARD WITH THE ENDER 3
// DO NOT UNCOMMENT THE ABOVE #define ENDER3 LINE IF USING THE DUAL BOARD
// Select 'Arduino Mega 2560' from Tools > Board - NOT Sanguino
// To use the Ender 3 LCD with the CR-10S dual board board connect the LCD cable to EXP1 on the
// CR-10S board but rotate it 180 degrees. The LCD end of the cable goes to EXP3 on the Ender 3 LCD.
// You will have to force it into the EXP1 but it will fit and work.
// EZABL and EZOut support are still supported just use the lines above this comment section.
// Dual Extruder Board Options - The below options are for use with the TH3D CR-10S Board with dual extruder support.
// If you are using a single hotend with the 2 into 1 adapter OR mixing nozzle uncomment the below line
// If you are using a dual hotend with dual nozzles uncomment the below line
// If you are using a 2nd EZOut V2 (connects to Y+ connector) filament sensor kit please follow the install guide
// and then uncomment the #define EZOUTV2_DUAL_ENABLE line below. Do NOT ever connect our filament sensor without the supplied adapter board.
// Use Ender Bootscreeen instead of TH3D
// ************************* END PRINTER SECTION *************************
// EZABL Advanced Settings
// If you want more or less EZABL probe points change the number below (only used if EZABL enabled)
// Default is 3 which gives you 3x3 grid for a total of 9 points. STICK WITH ODD NUMBERS
#define EZABL_POINTS 3
// If you want to probe in on the bed more than 15mm change this below.
// Do not use 30mm for the Standard CR-10/s or the S4 as you will be on the bed screws.
// Try 50mm to avoid the binder clips if you use them. Do NOT go under 15mm here.
// You can do down to 10mm on the Wanhao i3 since it cannot print on the entire bed.
// You can do down to 5mm on the Wanhao i3 Mini since it cannot print on the entire bed.
// (only used if EZABL enabled)
#define EZABL_PROBE_EDGE 15
// If you have issues with your machine running the faster probe setting disable the #define EZABL_FASTPROBE below.
// DO NOTE: Most machines will work with the fast probe enabled. Use M48 to verify accuracy.
// This will disable the XYE motors during probing. Can be useful if you have stepper motors causing interference issues with the EZABL sensor.
// Heaters will stay on during probing - only use if directed to by support. Do not use on AC beds.
// Letting the bed heat recover between probes can increase accuracy due to the bed warping during cooling/heating
// Enabling the below option will let the bed get back to temperature during probing but will increase probing times.
// If you want a more granular control over the babystepping uncomment the below line.
// This will make the adjustment finer than the standard setting.
// This will extrapolate the implied tilt of the bed outside of the probe area. Do not comment out unless directed by support.
// Does your machine make weird noises/vibrations when it is probing the mesh? Enable this to slow down the speed between probe points.
// IF YOU HAVE A CUSTOM PROBE MOUNT OR ONE THAT IS NOT PRE-SUPPORTED UNCOMMENT THE
// CUSTOM_PROBE OPTION IN YOUR PRINTER SECTION AND ENTER YOUR PROBE LOCATION BELOW
* Z Probe to nozzle (X,Y) offset, relative to (0, 0).
* X and Y offsets must be whole numbers.
* In the following example the X and Y offsets are both positive:
* #define X_PROBE_OFFSET_FROM_EXTRUDER 10
* #define Y_PROBE_OFFSET_FROM_EXTRUDER 10
* +-- BACK ---+
* | |
* L | (+) P | R <-- probe (10,10)
* E | | I
* F | (-) N (+) | G <-- nozzle (0,0)
* T | | H
* | (-) | T
* | |
* O-- FRONT --+
#define X_PROBE_OFFSET_FROM_EXTRUDER -44 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER -7 // Y offset: -front +behind [the nozzle]
//******************** EXTRA FEATURES AND TWEAKS ****************************
// TH3D RGB LED STRIP ------------------------------
// If you are using the TH3D RGB strip connect to the Z+ endstop connection, power supply connection, and uncomment the below line
// If you cut the strip shorter please count the LEDs that are left, uncomment the line below, and change the number below to how many LEDs you have.
#define TH3D_RGB_STRIP_LED_COUNT 20
// EXTRUDER SETTINGS -------------------------------
// If you want to change the Esteps for your printer you can uncomment the below line and set CUSTOM_ESTEPS_VALUE to what you want - USE WHOLE NUMBERS ONLY
#define CUSTOM_ESTEPS_VALUE 138
// If you are using an TH3D Tough Extruder, Bondtech BMG (set steps below to 415), or E3D Titan Extruder
// uncomment the below line to setup the firmware to the correct steps and direction. Also applicable to Titan/Tough Aero setups.
#define TITAN_EXTRUDER_STEPS 463
// DUAL HOTEND SETTINGS ----------------------------
// This is the distance between each nozzle tip when using a dual hotend like the TH3D Tough Dual Hotend or the E3D Chimera or Dual hotends.
// This setting only applies to printers using a dual extruder board.
#define DUAL_HOTEND_X_DISTANCE 18.0
// THERMISTOR SETTINGS -----------------------------
// If you are using an E3D V6 Hotend with their cartridge thermistor (not glass version) uncomment the below line.
// If you are using a Tough Hotend from TH3D or any thermistors TH3D sells for your hotend uncomment the below line.
// If you are using a thermistor TH3D sells for your bed uncomment the below line.
// If you are using a Keenovo with SSR and the Keenovo temperature sensor uncomment the below line.
// If you are using a known hotend thermistor value uncomment the below 2 lines and enter the thermistor number replacing the X after the #define KNOWN_HOTEND_THERMISTOR_VALUE
//#define KNOWN_HOTEND_THERMISTOR_VALUE X
// If you are using a known bed thermistor value uncomment the below 2 lines and enter the thermistor number replacing the X after the #define KNOWN_BED_THERMISTOR_VALUE
//#define KNOWN_BED_THERMISTOR_VALUE X
// If you want to make thermal protection periods less or more adjust below. The number is in seconds.
// If you are getting false thermal runaway then increase the protection time. Do not make it over 300 for either setting.
#define HOTEND_THERMAL_PROTECTION_TIME 60
#define BED_THERMAL_PROTECTION_TIME 180
// BED SETTINGS ------------------------------------
// If you want PID tuning on your bed you can enable the below line. But PID on a bed is not typically needed. By default BED PID is disabled.
// This will be disabled when using automatic or manual mesh leveling with a 1284p board due to memory limitations.
// If you are using an AC bed with a standalone controller (Keenovo) uncomment the below line to disable the heated bed in the firmware
// Stock bed max is 120C for this firmware. Enable this to allow temps up to 150C. Your bed must support this temp for it to achieve the higher temperatures.
// MISC --------------------------------------------
// If you have a 5015 fan that whines when under 100% speed uncomment the below line.
// Use your own printer name
//#define USER_PRINTER_NAME "Ender 3"
// If your printer is homing to the endstops hard uncomment this to change the homing speed/divisor to make it less aggressive.
// BOOT SCREEN OPTIONS -----------------------------
// Use TinyMachines Bootscreen instead of TH3D
// Disable Bootscreen completely
//****************** COMMUNITY REQUESTED FEATURES ***************************
// HOME OFFSET ADJUSTMENT --------------------------
// If you need to adjust your XY home offsets from defaults then you can uncomment the HOME_ADJUST_LOCATION line below and enter your
// custom XY offsets. This is provided for convenience and is unsupported with included product support.
// How to use - measure (home XY then jog using the LCD 1mm at a time) the X and Y distance the nozzle is off
// the build plate and then put those as NEGATIVE values below, positive values will NOT work (move your endstops to fix a positve offset).
#define X_HOME_ADJUST_LOCATION -10
#define Y_HOME_ADJUST_LOCATION -10
// LINEAR ADVANCE ----------------------------------
// See here on how to use Linear Advance: http://marlinfw.org/docs/features/lin_advance.html
// Change the K Value here or use M900 KX.XX in your starting code (recommended).
#define LINEAR_ADVANCE_K 0
// NOTE: If using linear advance along with EZABL on a printer with 1284p some Control > Motion menus will not be displayed due to space restrictions.
// You can still change these via GCode commands.
// BL TOUCH ----------------------------------------
// If you want to use the BL-Touch install your EZOut Board, uncomment the 2 lines below, uncomment the CUSTOM_PROBE option in your printer section,
// and then enter your probe offsets in the CUSTOM_PROBE section above. The Pin 27 boards on eBay are clones of our original EZOut. If you want to
// support the people that originally came up with the board you can get our EZOut breakout board here: http://EZOut.TH3DStudio.com
// Sales from our shop allow us to allocate time for community firmware development at no charge to you. <3
// If you have a V3 BL Touch also uncomment the BLTOUCH_V3 line to fix issues with the new V3 probe.
// Here is where you set your servo pin. EZOut Servo Pin Numbers: Ender3/5/CR-10 - 27, Ender 2 - 29. For 2560 boards look for the pin you connected the servo wire to and enter below.
#define SERVO0_PIN 27
// NOTE: On 1284p boards due to space limitations and the large amount of code the BLTouch requires for the LCD Menus
// the Bootscreen and some Control > Motion menus will not be displayed due to space restrictions
// MANUAL MESH LEVELING ----------------------------
// If you want to use manual mesh leveling you can enable the below option. This is for generating a MANUAL mesh WITHOUT a probe.
// Mesh Bed Leveling Documentation: http://marlinfw.org/docs/gcode/G029-mbl.html If used with a 1284P board the bootscreen will be disabled to save space.
// NOTE: If you want to automate the leveling process our EZABL kits do this for you. Check them out here: http://EZABL.TH3DStudio.com
// POWER LOSS RECOVERY -----------------------------
// Continue after Power-Loss feature will store the current state to the SD Card at the start of each layer
// during SD printing. If this is found at bootup it will ask you if you want to resume the print.
// NOTE: This feature causes excessive wear on your SD card. This will disable junction jerk, SCurve Acceleration, and Linear Advance due to RAM limitations.
// MOTION SETTINGS ---------------------------------
// There are 2 new acceleration/jerk controls available in this firmware that can result is better print quality and
// smoother movement. To try each out just enable them below.
// Due to Anet board restrictions this is always disabled on those machines.
// Language - This is provided for convenience and is unsupported with included product support.
// We only test compile with English language. If you run into space issues disable some features.
* LCD LANGUAGE
* Select the language to display on the LCD. These languages are available:
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, fr_utf8, gl,
* hr, it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, sk_utf8,
* tr, uk, zh_CN, zh_TW, test
#define LCD_LANGUAGE en
#define UNIFIED_VERSION "TH3D U1.R2.15"
#endif // CONFIGURATION_H
Cura Start GCode
M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration
M203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate
M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration
M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk
M220 S100 ;Reset Feedrate
M221 S100 ;Reset Flowrate
G28 G29 ;Home
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position
G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little
G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
G-code is read line-by-line, see e.g. Is G-code read line by line?. If the posted start G-code is the actual used G-code,
G29is not executed because it is on the same line as
G28. This means that in:
G28 G29 ;Home
G29simply is ignored (it is not recognised by the interpreter as parameters for
G28). This should be changed into:
G29 ;Perform bed leveling
Ahh!! yes of course! I even knew that so I should have spotted that myself. I think I just blindly copied the G28 G29 on one line from somewhere... I think it was the creality BL Touch instruction sheet that came in the box with the BL Touch! I'll give this a try later today... thank you!