Z probe too high one side

I use a Pibot board with Repetier firmware.
I have in my start Gcdoe a G32 S0 command for probe.
It works on 3 points but when I print on the right side the nozzle is too high.
Z motors works for compensation but on the right side the nozzle goes too high.
I'm using a reflecting probe produced by Pibot.
Can you help me.
I tried to realize a mesh of point but it doesn't work. It only works with 3 points probe G32.
Can you help me?

Comments

  • First use 1.0.4dev - there was a bug that could cause z going up during measurements a bit. If that does not help you can "misuse" bending correction and set a correction for the right side if the sensor gives other values there due to different reflections. So all points get correction 0 and the one on the right is set with the error distance.
  • I'm working with an old version of the firmware of 2016. Tried to configure again with repeater for Pibot configurator but nothing moves. Is there a possibility to configure a new firmware with mesh bed autolevel. I intend the bilinear one. Thanks a lot.
    I'm using this kit https://www.pibot.com/set-of-pibot-electronics-kits-for-3d-printer-2-0-d.html but the producer doesn't answer to questions. Bad situation:-(
  • Since old version works, the answer is yes. You just need to use same settings as in old firmware. If it was created with config tool it would update automatically, otherwise use the values from configuration.h to fill in the values. The settings show the name of the config parameter below the name.
  • I used the configurator to set the new firmware. I solved some problems with Arduino Ide and now i flashed the firmware. When I start Repetier it operates only on extruder temp and fan. Motors don't work. End stop are H and probe is L. Tried to home but nothing. Tried to move one each one but nothing. Only extruder temp and extruder fan works.

    At this link the configuration h and all of the firmware.
    Can you help me to solve?
    Thanks a lot.

    https://drive.google.com/drive/folders/1zYWo3zz3kjyMgr0gdSABN-2nKQ-ZDY3_?usp=sharing

  • Any help?
  • End stops must be L when untriggered. SO assuming pins were correct you need the inverted method in config tool. That may also prevent moves/homing.
    Extruder will only run if hot or if you allow cold extrusion using
    M302 S1

    It might also be that you need to invert enable signal for motor driver to get them work. Some need high some low. Just test if you can move them when you start firmware. At start motors are off so they should not block. If they block enable must be inverted.
  • edited May 2020
    First of all thanks a lot!
    I inverted the motor on configurator and now is ok.
    Now I can move motor and I think I'll be able to test the printer.
    Let's start again with autolevel.
    I want to use a mesh of 9 points on the bed and I configured it in the configurator online.
    When It starts with the first point the probe goes down but doesn't stop when triggers.
    I have a blue led on the reflective z-probe that goes on but z axis continue to go down.
    I tried to tes with M119 the status and i saw that it remains the same.
    Always High with blue light on or off.
    With other version of firmware it works.
    Any idea?

    Other question: Wich is the commend for autoleveling and 9 point probe? G29 or G32?

    Thank you
  • Solved the problem of the status of the probe.
    It was a wrong assignation of the pin.
    The problem is: how to have a 9 points grid on the bed before to print?
    For example:
    3 points on X with Y20 
    3 on X with  Y 40
    3on X with Y 60
    I configured the bilinear one but it takes points always on the same Y value.

  • Solved this too :-)
    Probably is better if I wait before asking :-)
    I did it from configurator and works.
    Tonight I'll have some test on the correction bed level function.

  • edited May 2020
    As in the title...
    after G32 S0 the nozzle goes down and scratch a little the plane and then goes to start printing on the left side.
    At this point, the extruder is 2mm higher than the plane but when it goes on the right side is very attached to the plane.
    So after configuring the new firmware I have the same problem but with an inverted side :-)

    P.S.
    The Z axis moves while X and Y moves. So I think printer reads some dates but no the correct one...
    Any idea?
    Thanks a lot guys. I hope I'll be able to use Repetier :-)

    This is the start GCODE:

    M104 S200 ; set temperature
    G1 Z10 F50 ; lift nozzle
    G28; home all axes
    G1 Z10 F50 ; lift nozzle
    G32 S0;
    ; Filament gcode
    G21 ; set units to millimeters
    G90 ; use absolute coordinates
    M82 ; use absolute distances for extrusion
    G92 E0 ; reset extrusion distance
    G92 E0 ; reset extrusion distance
    G1 E-1.00000 F1800.00000 ; retract extruder 0
    G92 E0 ; reset extrusion distance
    G1 Z-1.680 F2100.000 ; move to next layer (0)

    This is the Eprom configuration

    12:50:43.841 : FIRMWARE_NAME:Repetier_0.92.9 FIRMWARE_URL:https://github.com/repetier/Repetier-Firmware/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Mendel EXTRUDER_COUNT:1 REPETIER_PROTOCOL:3
    12:50:43.841 : Printed filament:0.30m Printing time:0 days 0 hours 16 min
    12:50:43.841 : PrinterMode:FFF
    12:50:43.844 : X:0.00 Y:0.00 Z:15.000 E:0.0000
    12:50:43.844 : DebugLevel:6
    12:50:49.153 : SelectExtruder:0
    12:50:49.153 : Unknown command:N7 M20
    12:50:49.154 : DebugLevel:6
    12:50:49.154 : SelectExtruder:0
    12:54:09.248 : EPR:0 1028 0 Language
    12:54:09.255 : EPR:2 75 115200 Baudrate
    12:54:09.263 : EPR:3 129 0.297 Filament printed [m]
    12:54:09.271 : EPR:2 125 1003 Printer active [s]
    12:54:09.278 : EPR:2 79 0 Max. inactive time [ms,0=off]
    12:54:09.294 : EPR:2 83 0 Stop stepper after inactivity [ms,0=off]
    12:54:09.303 : EPR:3 3 80.0000 X-axis steps per mm
    12:54:09.311 : EPR:3 7 64.0000 Y-axis steps per mm
    12:54:09.319 : EPR:3 11 1600.0000 Z-axis steps per mm
    12:54:09.329 : EPR:3 15 200.000 X-axis max. feedrate [mm/s]
    12:54:09.337 : EPR:3 19 200.000 Y-axis max. feedrate [mm/s]
    12:54:09.345 : EPR:3 23 8.000 Z-axis max. feedrate [mm/s]
    12:54:09.354 : EPR:3 27 150.000 X-axis homing feedrate [mm/s]
    12:54:09.362 : EPR:3 31 150.000 Y-axis homing feedrate [mm/s]
    12:54:09.370 : EPR:3 35 2.000 Z-axis homing feedrate [mm/s]
    12:54:09.379 : EPR:3 39 20.000 Max. jerk [mm/s]
    12:54:09.393 : EPR:3 47 0.300 Max. Z-jerk [mm/s]
    12:54:09.402 : EPR:3 133 0.000 X min pos [mm]
    12:54:09.410 : EPR:3 137 0.000 Y min pos [mm]
    12:54:09.421 : EPR:3 141 0.000 Z min pos [mm]
    12:54:09.430 : EPR:3 145 900.000 X max length [mm]
    12:54:09.439 : EPR:3 149 1600.000 Y max length [mm]
    12:54:09.450 : EPR:3 153 800.000 Z max length [mm]
    12:54:09.458 : EPR:3 51 250.000 X-axis acceleration [mm/s^2]
    12:54:09.468 : EPR:3 55 250.000 Y-axis acceleration [mm/s^2]
    12:54:09.478 : EPR:3 59 68.000 Z-axis acceleration [mm/s^2]
    12:54:09.488 : EPR:3 63 300.000 X-axis travel acceleration [mm/s^2]
    12:54:09.499 : EPR:3 67 300.000 Y-axis travel acceleration [mm/s^2]
    12:54:09.509 : EPR:3 71 68.000 Z-axis travel acceleration [mm/s^2]
    12:54:09.519 : EPR:3 1032 80.000 Acceleration factor at top [%,100=like bottom]
    12:54:09.529 : EPR:3 1024 0.000 Coating thickness [mm]
    12:54:09.540 : EPR:3 808 -2.000 Z-probe height [mm]
    12:54:09.550 : EPR:3 929 10.000 Max. z-probe - bed dist. [mm]
    12:54:09.558 : EPR:3 812 4.000 Z-probe speed [mm/s]
    12:54:09.568 : EPR:3 840 80.000 Z-probe x-y-speed [mm/s]
    12:54:09.577 : EPR:3 800 -45.000 Z-probe offset x [mm]
    12:54:09.586 : EPR:3 804 -25.000 Z-probe offset y [mm]
    12:54:09.596 : EPR:3 816 20.000 Z-probe X1 [mm]
    12:54:09.605 : EPR:3 820 20.000 Z-probe Y1 [mm]
    12:54:09.615 : EPR:3 824 300.000 Z-probe X2 [mm]
    12:54:09.625 : EPR:3 828 20.000 Z-probe Y2 [mm]
    12:54:09.635 : EPR:3 832 20.000 Z-probe X3 [mm]
    12:54:09.643 : EPR:3 836 300.000 Z-probe Y3 [mm]
    12:54:09.656 : EPR:3 1036 0.000 Z-probe bending correction A [mm]
    12:54:09.667 : EPR:3 1040 0.000 Z-probe bending correction B [mm]
    12:54:09.676 : EPR:3 1044 0.000 Z-probe bending correction C [mm]
    12:54:09.686 : EPR:0 880 1 Autolevel active (1/0)
    12:54:09.693 : EPR:3 976 0.000 tanXY Axis Compensation
    12:54:09.701 : EPR:3 980 0.000 tanYZ Axis Compensation
    12:54:09.707 : EPR:3 984 0.000 tanXZ Axis Compensation
    12:54:09.715 : EPR:0 1020 0 Enable retraction conversion [0/1]
    12:54:09.722 : EPR:3 992 3.000 Retraction length [mm]
    12:54:09.729 : EPR:3 1000 40.000 Retraction speed [mm/s]
    12:54:09.736 : EPR:3 1004 0.000 Retraction z-lift [mm]
    12:54:09.743 : EPR:3 1008 0.000 Extra extrusion on undo retract [mm]
    12:54:09.750 : EPR:3 1016 20.000 Retraction undo speed
    12:54:09.757 : EPR:3 200 120.000 Extr.1 steps per mm
    12:54:09.765 : EPR:3 204 30.000 Extr.1 max. feedrate [mm/s]
    12:54:09.772 : EPR:3 208 10.000 Extr.1 start feedrate [mm/s]
    12:54:09.780 : EPR:3 212 4000.000 Extr.1 acceleration [mm/s^2]
    12:54:09.788 : EPR:0 216 1 Extr.1 heat manager [0-3]
    12:54:09.795 : EPR:0 217 230 Extr.1 PID drive max
    12:54:09.804 : EPR:0 245 40 Extr.1 PID drive min
    12:54:09.811 : EPR:3 218 16.0000 Extr.1 PID P-gain/dead-time
    12:54:09.819 : EPR:3 222 0.9200 Extr.1 PID I-gain
    12:54:09.826 : EPR:3 226 60.0000 Extr.1 PID D-gain
    12:54:09.834 : EPR:0 230 255 Extr.1 PID max value [0-255]
    12:54:09.841 : EPR:2 231 0 Extr.1 X-offset [steps]
    12:54:09.849 : EPR:2 235 0 Extr.1 Y-offset [steps]
    12:54:09.858 : EPR:2 290 0 Extr.1 Z-offset [steps]
    12:54:09.867 : EPR:1 239 1 Extr.1 temp. stabilize time [s]
    12:54:09.875 : EPR:1 250 186 Extr.1 temp. for retraction when heating [C]
    12:54:09.884 : EPR:1 252 2 Extr.1 distance to retract when heating [mm]
    12:54:09.891 : EPR:0 254 255 Extr.1 extruder cooler speed [0-255]


  • See you are still on 0.92.9. Not sure about which problems existed there. Know it worked at least.

    What is the log from
    G28; home all axes
    G1 Z10 F50 ; lift nozzle
    G32 S0;

    Depending on setup this can cause illegal position and abort of G32. If you home x and y min I guess it should work with correct points.

    What I wonder is when your printer is 900x1600 mm big, why do you not test rotation for full bed? You only measure a square 20-300x20-300 so rounding errors of that measurement count up. Also such big beds tend to deform when getting hot and move. 
  • Thanks a lot Repetier.
    I configured the last version by online configurator but while I upload to the board, a the end of the process I have this message:

    avrdude: verification error, first mismatch at byte 0x0000
             0xb8 != 0x0c
    avrdude: verification error; content mismatch

    Tried to reinstall the old configuration and everything works again.
    Any solution?

  • It just says that uploading did not work. Already the first send byte was wrong. So normally you just retry in that case uploading and hope it was just a communication error. That is why you run verify after uploading.
  • Everything works with old firmware bit I still have this error when I try to install last version.
  • Can't say more. Error message is from uploader so has nothing to do with content. It just says the compilation has one value as first byte and the uploaded code another value. 
    Does old firmware upload if you change any parameter making it differ? Question is if flash is write protected so uploading does not work and old just works because it is identical to already existing or if it writes and jus has a write failure.

    Do mor euploads cause exactly the same error?
  • Probably there is some bug in configurator online.
    I eliminated some code that I added in pause command on start on the online configurator and now the upload is ok.

    QUESTION 1
    I sent G32 S0 and now I generated a mesh for the plane.
    At this point, I execute the slicing but when printer starts goes to Z0 and not to Z-2.
    So Zmotors compensate probably in the right way but extruder stays to Z0 position so +2 and prints in the air.
    I saw also the GCODE of the slicing and it indicates the first layer to Z-2.
    So the command is ok but is ignored.

    QUESTION 2 - Z OFFSET 
    Where to set the parameter? In the slicer or in Eprom.
    I hoped Repetier host and set the value in EPROM but nothing append. If I do the same in Slic3R from RHost,  it works. Can you explain how to operate?

    QUESTION 3 SD CARD
    I saw there is no possibility to read SD card from the physical reader on the board.


    This is the start GCODE
    ; generated by Slic3r 1.3.1-dev on 2020-06-04 at 12:10:30

    ; external perimeters extrusion width = 130.00mm (2077.80mm^3/s)
    ; perimeters extrusion width = 0.50mm (9.28mm^3/s)
    ; infill extrusion width = 0.45mm (7.00mm^3/s)
    ; solid infill extrusion width = 0.42mm (6.33mm^3/s)
    ; top infill extrusion width = 0.52mm (7.35mm^3/s)

    M104 S210
    G28 ; home all axes
    ; Filament gcode

    G21 ; set units to millimeters
    G90 ; use absolute coordinates
    M82 ; use absolute distances for extrusion
    G92 E0 ; reset extrusion distance
    G92 E0 ; reset extrusion distance

    -----------------------------------------------------------------------------------------------------------------------------------------------

    This the configuration files stored at this link
    https://drive.google.com/drive/folders/1zYWo3zz3kjyMgr0gdSABN-2nKQ-ZDY3_?usp=sharing

    /*
        This file is part of Repetier-Firmware.

        Repetier-Firmware is free software: you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation, either version 3 of the License, or
        (at your option) any later version.

        Repetier-Firmware is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.

        You should have received a copy of the GNU General Public License
        along with Repetier-Firmware.  If not, see <http://www.gnu.org/licenses/>.

    */

    #ifndef CONFIGURATION_H
    #define CONFIGURATION_H

    /**************** READ FIRST ************************

       This configuration file was created with the configuration tool. For that
       reason, it does not contain the same informations as the original Configuration.h file.
       It misses the comments and unused parts. Open this file file in the config tool
       to see and change the data. You can also upload it to newer/older versions. The system
       will silently add new options, so compilation continues to work.

       This file is optimized for version 1.0.3

       If you are in doubt which named functions use which pins on your board, please check the
       pins.h for the used name->pin assignments and your board documentation to verify it is
       as you expect.

    */

    #define NUM_EXTRUDER 1
    #define MOTHERBOARD 316
    #include "pins.h"

    // ################## EDIT THESE SETTINGS MANUALLY ################

    // ################ END MANUAL SETTINGS ##########################

    #undef FAN_BOARD_PIN
    #define FAN_BOARD_PIN -1
    #define BOARD_FAN_SPEED 255
    #define BOARD_FAN_MIN_SPEED 0
    #define FAN_THERMO_PIN -1
    #define FAN_THERMO_MIN_PWM 128
    #define FAN_THERMO_MAX_PWM 255
    #define FAN_THERMO_MIN_TEMP 45
    #define FAN_THERMO_MAX_TEMP 60
    #define FAN_THERMO_THERMISTOR_PIN -1
    #define FAN_THERMO_THERMISTOR_TYPE 1

    //#define EXTERNALSERIAL  use Arduino serial library instead of build in. Requires more ram, has only 63 byte input buffer.
    // Uncomment the following line if you are using Arduino compatible firmware made for Arduino version earlier then 1.0
    // If it is incompatible you will get compiler errors about write functions not being compatible!
    //#define COMPAT_PRE1
    #define BLUETOOTH_SERIAL  -1
    #define BLUETOOTH_BAUD  115200
    #define MIXING_EXTRUDER 0

    #define DRIVE_SYSTEM 0
    #define XAXIS_STEPS_PER_MM 80
    #define YAXIS_STEPS_PER_MM 64
    #define ZAXIS_STEPS_PER_MM 1600
    #define EXTRUDER_FAN_COOL_TEMP 50
    #define PDM_FOR_EXTRUDER 0
    #define PDM_FOR_COOLER 0
    #define DECOUPLING_TEST_MAX_HOLD_VARIANCE 20
    #define DECOUPLING_TEST_MIN_TEMP_RISE 1
    #define KILL_IF_SENSOR_DEFECT 0
    #define RETRACT_ON_PAUSE 2
    #define PAUSE_START_COMMANDS ""
    #define PAUSE_END_COMMANDS ""
    #define SHARED_EXTRUDER_HEATER 0
    #define EXT0_X_OFFSET 0
    #define EXT0_Y_OFFSET 0
    #define EXT0_Z_OFFSET 0
    #define EXT0_STEPS_PER_MM 120
    #define EXT0_TEMPSENSOR_TYPE 1
    #define EXT0_TEMPSENSOR_PIN TEMP_0_PIN
    #define EXT0_HEATER_PIN HEATER_0_PIN
    #define EXT0_STEP_PIN ORIG_E0_STEP_PIN
    #define EXT0_DIR_PIN ORIG_E0_DIR_PIN
    #define EXT0_INVERSE 0
    #define EXT0_ENABLE_PIN ORIG_E0_ENABLE_PIN
    #define EXT0_ENABLE_ON 1
    #define EXT0_MIRROR_STEPPER 0
    #define EXT0_STEP2_PIN ORIG_E0_STEP_PIN
    #define EXT0_DIR2_PIN ORIG_E0_DIR_PIN
    #define EXT0_INVERSE2 0
    #define EXT0_ENABLE2_PIN ORIG_E0_ENABLE_PIN
    #define EXT0_MAX_FEEDRATE 50
    #define EXT0_MAX_START_FEEDRATE 20
    #define EXT0_MAX_ACCELERATION 1000
    #define EXT0_HEAT_MANAGER 1
    #define EXT0_PREHEAT_TEMP 190
    #define EXT0_WATCHPERIOD 1
    #define EXT0_PID_INTEGRAL_DRIVE_MAX 230
    #define EXT0_PID_INTEGRAL_DRIVE_MIN 40
    #define EXT0_PID_PGAIN_OR_DEAD_TIME 7
    #define EXT0_PID_I 2
    #define EXT0_PID_D 40
    #define EXT0_PID_MAX 255
    #define EXT0_ADVANCE_K 0
    #define EXT0_ADVANCE_L 0
    #define EXT0_ADVANCE_BACKLASH_STEPS 0
    #define EXT0_WAIT_RETRACT_TEMP 150
    #define EXT0_WAIT_RETRACT_UNITS 0
    #define EXT0_SELECT_COMMANDS ""
    #define EXT0_DESELECT_COMMANDS ""
    #define EXT0_EXTRUDER_COOLER_PIN ORIG_FAN_PIN
    #define EXT0_EXTRUDER_COOLER_SPEED 255
    #define EXT0_DECOUPLE_TEST_PERIOD 12000
    #define EXT0_JAM_PIN -1
    #define EXT0_JAM_PULLUP 0

    #define FEATURE_RETRACTION 1
    #define AUTORETRACT_ENABLED 0
    #define RETRACTION_LENGTH 3
    #define RETRACTION_LONG_LENGTH 13
    #define RETRACTION_SPEED 40
    #define RETRACTION_Z_LIFT 0
    #define RETRACTION_UNDO_EXTRA_LENGTH 0
    #define RETRACTION_UNDO_EXTRA_LONG_LENGTH 0
    #define RETRACTION_UNDO_SPEED 20
    #define FILAMENTCHANGE_X_POS 0
    #define FILAMENTCHANGE_Y_POS 0
    #define FILAMENTCHANGE_Z_ADD  2
    #define FILAMENTCHANGE_REHOME 1
    #define FILAMENTCHANGE_SHORTRETRACT 5
    #define FILAMENTCHANGE_LONGRETRACT 50
    #define JAM_METHOD 1
    #define JAM_STEPS 220
    #define JAM_SLOWDOWN_STEPS 320
    #define JAM_SLOWDOWN_TO 70
    #define JAM_ERROR_STEPS 500
    #define JAM_MIN_STEPS 10
    #define JAM_ACTION 1

    #define RETRACT_DURING_HEATUP true
    #define PID_CONTROL_RANGE 20
    #define SKIP_M109_IF_WITHIN 2
    #define SCALE_PID_TO_MAX 0
    #define TEMP_HYSTERESIS 0
    #define EXTRUDE_MAXLENGTH 160
    #define NUM_TEMPS_USERTHERMISTOR0 0
    #define USER_THERMISTORTABLE0 {}
    #define NUM_TEMPS_USERTHERMISTOR1 0
    #define USER_THERMISTORTABLE1 {}
    #define NUM_TEMPS_USERTHERMISTOR2 0
    #define USER_THERMISTORTABLE2 {}
    #define GENERIC_THERM_VREF 5
    #define GENERIC_THERM_NUM_ENTRIES 33
    #define HEATER_PWM_SPEED 0
    #define COOLER_PWM_SPEED 0

    // ############# Heated bed configuration ########################

    #define HAVE_HEATED_BED 0
    #define HEATED_BED_PREHEAT_TEMP 55
    #define HEATED_BED_MAX_TEMP 120
    #define SKIP_M190_IF_WITHIN 3
    #define HEATED_BED_SENSOR_TYPE 1
    #define HEATED_BED_SENSOR_PIN TEMP_1_PIN
    #define HEATED_BED_HEATER_PIN HEATER_1_PIN
    #define HEATED_BED_SET_INTERVAL 5000
    #define HEATED_BED_HEAT_MANAGER 0
    #define HEATED_BED_PID_INTEGRAL_DRIVE_MAX 255
    #define HEATED_BED_PID_INTEGRAL_DRIVE_MIN 80
    #define HEATED_BED_PID_PGAIN_OR_DEAD_TIME   196
    #define HEATED_BED_PID_IGAIN   33
    #define HEATED_BED_PID_DGAIN 290
    #define HEATED_BED_PID_MAX 255
    #define HEATED_BED_DECOUPLE_TEST_PERIOD 300000
    #define MIN_EXTRUDER_TEMP 190
    #define MAXTEMP 275
    #define MIN_DEFECT_TEMPERATURE -10
    #define MAX_DEFECT_TEMPERATURE 290
    #define MILLISECONDS_PREHEAT_TIME 30000

    // ##########################################################################################
    // ##                             Laser configuration                                      ##
    // ##########################################################################################

    /*
    If the firmware is in laser mode, it can control a laser output to cut or engrave materials.
    Please use this feature only if you know about safety and required protection. Lasers are
    dangerous and can hurt or make you blind!!!

    The default laser driver only supports laser on and off. Here you control the intensity with
    your feedrate. For exchangeable diode lasers this is normally enough. If you need more control
    you can set the intensity in a range 0-255 with a custom extension to the driver. See driver.h
    and comments on how to extend the functions non invasive with our event system.

    If you have a laser - powder system you will like your E override. If moves contain a
    increasing extruder position it will laser that move. With this trick you can
    use existing fdm slicers to laser the output. Laser width is extrusion width.

    Other tools may use M3 and M5 to enable/disable laser. Here G1/G2/G3 moves have laser enabled
    and G0 moves have it disables.

    In any case, laser only enables while moving. At the end of a move it gets
    automatically disabled.
    */

    #define SUPPORT_LASER 0
    #define LASER_PIN -1
    #define LASER_ON_HIGH 1
    #define LASER_WARMUP_TIME 0
    #define LASER_PWM_MAX 255
    #define LASER_WATT 2

    // ##                              CNC configuration                                       ##

    /*
    If the firmware is in CNC mode, it can control a mill with M3/M4/M5. It works
    similar to laser mode, but mill keeps enabled during G0 moves and it allows
    setting rpm (only with event extension that supports this) and milling direction.
    It also can add a delay to wait for spindle to run on full speed.
    */

    #define SUPPORT_CNC 0
    #define CNC_WAIT_ON_ENABLE 300
    #define CNC_WAIT_ON_DISABLE 0
    #define CNC_ENABLE_PIN -1
    #define CNC_ENABLE_WITH 1
    #define CNC_DIRECTION_PIN -1
    #define CNC_DIRECTION_CW 1
    #define CNC_PWM_MAX 255
    #define CNC_RPM_MAX 8000
    #define CNC_SAFE_Z 150

    #define DEFAULT_PRINTER_MODE 0

    // ################ Endstop configuration #####################

    #define MULTI_ZENDSTOP_HOMING 0
    #define ENDSTOP_PULLUP_X_MIN false
    #define ENDSTOP_X_MIN_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_X true
    #define ENDSTOP_PULLUP_Y_MIN false
    #define ENDSTOP_Y_MIN_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_Y true
    #define ENDSTOP_PULLUP_Z_MIN false
    #define ENDSTOP_Z_MIN_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_Z true
    #define ENDSTOP_PULLUP_Z2_MINMAX true
    #define ENDSTOP_Z2_MINMAX_INVERTING false
    #define MINMAX_HARDWARE_ENDSTOP_Z2 false
    #define ENDSTOP_PULLUP_X_MAX true
    #define ENDSTOP_X_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_X false
    #define ENDSTOP_PULLUP_Y_MAX true
    #define ENDSTOP_Y_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_Y false
    #define ENDSTOP_PULLUP_Z_MAX true
    #define ENDSTOP_Z_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_Z false
    #define ENDSTOP_PULLUP_X2_MIN true
    #define ENDSTOP_PULLUP_Y2_MIN true
    #define ENDSTOP_PULLUP_Z2_MINMAX true
    #define ENDSTOP_PULLUP_X2_MAX true
    #define ENDSTOP_PULLUP_Y2_MAX true
    #define ENDSTOP_X2_MIN_INVERTING false
    #define ENDSTOP_Y2_MIN_INVERTING false
    #define ENDSTOP_X2_MAX_INVERTING false
    #define ENDSTOP_Y2_MAX_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_X2 false
    #define MIN_HARDWARE_ENDSTOP_Y2 false
    #define MAX_HARDWARE_ENDSTOP_X2 false
    #define MAX_HARDWARE_ENDSTOP_Y2 false
    #define X2_MIN_PIN -1
    #define X2_MAX_PIN -1
    #define Y2_MIN_PIN -1
    #define Y2_MAX_PIN -1
    #define Z2_MINMAX_PIN -1



    #define max_software_endstop_r true

    #define min_software_endstop_x false
    #define min_software_endstop_y false
    #define min_software_endstop_z false
    #define max_software_endstop_x true
    #define max_software_endstop_y true
    #define max_software_endstop_z true
    #define DOOR_PIN -1
    #define DOOR_PULLUP 1
    #define DOOR_INVERTING 0
    #define ENDSTOP_X_BACK_MOVE 5
    #define ENDSTOP_Y_BACK_MOVE 5
    #define ENDSTOP_Z_BACK_MOVE 2
    #define ENDSTOP_X_RETEST_REDUCTION_FACTOR 3
    #define ENDSTOP_Y_RETEST_REDUCTION_FACTOR 3
    #define ENDSTOP_Z_RETEST_REDUCTION_FACTOR 3
    #define ENDSTOP_X_BACK_ON_HOME 1
    #define ENDSTOP_Y_BACK_ON_HOME 1
    #define ENDSTOP_Z_BACK_ON_HOME 1
    #define ALWAYS_CHECK_ENDSTOPS 0
    #define MOVE_X_WHEN_HOMED 0
    #define MOVE_Y_WHEN_HOMED 0
    #define MOVE_Z_WHEN_HOMED 0

    // ################# XYZ movements ###################

    #define X_ENABLE_ON 1
    #define Y_ENABLE_ON 1
    #define Z_ENABLE_ON 1
    #define DISABLE_X 0
    #define DISABLE_Y 0
    #define DISABLE_Z 0
    #define DISABLE_E 0
    #define INVERT_X_DIR 0
    #define INVERT_X2_DIR 0
    #define INVERT_Y_DIR 1
    #define INVERT_Y2_DIR 0
    #define INVERT_Z_DIR 0
    #define INVERT_Z2_DIR 0
    #define INVERT_Z3_DIR 0
    #define INVERT_Z4_DIR 0
    #define X_HOME_DIR -1
    #define Y_HOME_DIR -1
    #define Z_HOME_DIR -1
    #define X_MAX_LENGTH 1000
    #define Y_MAX_LENGTH 1500
    #define Z_MAX_LENGTH 900
    #define X_MIN_POS 0
    #define Y_MIN_POS 0
    #define Z_MIN_POS 0
    #define PARK_POSITION_X 0
    #define PARK_POSITION_Y 0
    #define PARK_POSITION_Z_RAISE 10


    #define DISTORTION_CORRECTION 1
    #define DISTORTION_CORRECTION_POINTS 3
    #define DISTORTION_LIMIT_TO 2
    #define DISTORTION_CORRECTION_R 100
    #define DISTORTION_PERMANENT 1
    #define DISTORTION_UPDATE_FREQUENCY 15
    #define DISTORTION_START_DEGRADE 0.5
    #define DISTORTION_END_HEIGHT 1
    #define DISTORTION_EXTRAPOLATE_CORNERS 0
    #define DISTORTION_XMIN 10
    #define DISTORTION_YMIN 10
    #define DISTORTION_XMAX 990
    #define DISTORTION_YMAX 1490

    // ##########################################################################################
    // ##                           Movement settings                                          ##
    // ##########################################################################################

    #define FEATURE_BABYSTEPPING 1
    #define BABYSTEP_MULTIPLICATOR 1

    #define DELTA_SEGMENTS_PER_SECOND_PRINT 180 // Move accurate setting for print moves
    #define DELTA_SEGMENTS_PER_SECOND_MOVE 70 // Less accurate setting for other moves
    #define EXACT_DELTA_MOVES 1

    // Delta settings
    #define DELTA_HOME_ON_POWER 0

    #define DELTASEGMENTS_PER_PRINTLINE 24
    #define STEPPER_INACTIVE_TIME 360L
    #define MAX_INACTIVE_TIME 0L
    #define MAX_FEEDRATE_X 300
    #define MAX_FEEDRATE_Y 300
    #define MAX_FEEDRATE_Z 2
    #define HOMING_FEEDRATE_X 40
    #define HOMING_FEEDRATE_Y 40
    #define HOMING_FEEDRATE_Z 2
    #define HOMING_ORDER HOME_ORDER_XYZ
    #define ZHOME_PRE_RAISE 0
    #define ZHOME_PRE_RAISE_DISTANCE 10
    #define RAISE_Z_ON_TOOLCHANGE 0
    #define ZHOME_MIN_TEMPERATURE 0
    #define ZHOME_HEAT_ALL 1
    #define ZHOME_HEAT_HEIGHT 20
    #define ZHOME_X_POS 999999
    #define ZHOME_Y_POS 999999
    #define ENABLE_BACKLASH_COMPENSATION 0
    #define X_BACKLASH 0
    #define Y_BACKLASH 0
    #define Z_BACKLASH 0
    #define RAMP_ACCELERATION 1
    #define STEPPER_HIGH_DELAY 0
    #define DIRECTION_DELAY 0
    #define STEP_DOUBLER_FREQUENCY 12000
    #define ALLOW_QUADSTEPPING 1
    #define DOUBLE_STEP_DELAY 0 // time in microseconds
    #define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 300
    #define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 300
    #define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 50
    #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 300
    #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 300
    #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 150
    #define INTERPOLATE_ACCELERATION_WITH_Z 3
    #define ACCELERATION_FACTOR_TOP 80
    #define MAX_JERK 20
    #define MAX_ZJERK 0.3
    #define PRINTLINE_CACHE_SIZE 16
    #define MOVE_CACHE_LOW 10
    #define LOW_TICKS_PER_MOVE 250000
    #define EXTRUDER_SWITCH_XY_SPEED 100
    #define DUAL_X_AXIS 0
    #define DUAL_X_RESOLUTION 0
    #define X2AXIS_STEPS_PER_MM 100
    #define FEATURE_TWO_XSTEPPER 0
    #define X2_STEP_PIN   ORIG_E1_STEP_PIN
    #define X2_DIR_PIN    ORIG_E1_DIR_PIN
    #define X2_ENABLE_PIN ORIG_E1_ENABLE_PIN
    #define FEATURE_TWO_YSTEPPER 0
    #define Y2_STEP_PIN   ORIG_E1_STEP_PIN
    #define Y2_DIR_PIN    ORIG_E1_DIR_PIN
    #define Y2_ENABLE_PIN ORIG_E1_ENABLE_PIN
    #define FEATURE_TWO_ZSTEPPER 0
    #define Z2_STEP_PIN   ORIG_E1_STEP_PIN
    #define Z2_DIR_PIN    ORIG_E1_DIR_PIN
    #define Z2_ENABLE_PIN ORIG_E1_ENABLE_PIN
    #define FEATURE_THREE_ZSTEPPER 0
    #define Z3_STEP_PIN   ORIG_E2_STEP_PIN
    #define Z3_DIR_PIN    ORIG_E2_DIR_PIN
    #define Z3_ENABLE_PIN ORIG_E2_ENABLE_PIN
    #define FEATURE_FOUR_ZSTEPPER 0
    #define Z4_STEP_PIN   ORIG_E3_STEP_PIN
    #define Z4_DIR_PIN    ORIG_E3_DIR_PIN
    #define Z4_ENABLE_PIN ORIG_E3_ENABLE_PIN
    #define FEATURE_DITTO_PRINTING 0
    #define USE_ADVANCE 0
    #define ENABLE_QUADRATIC_ADVANCE 0


    // ################# Misc. settings ##################

    #define BAUDRATE 115200
    #define ENABLE_POWER_ON_STARTUP 1
    #define POWER_INVERTING 0
    #define AUTOMATIC_POWERUP 0
    #define KILL_METHOD 0
    #define ACK_WITH_LINENUMBER 1
    #define KEEP_ALIVE_INTERVAL 2000
    #define WAITING_IDENTIFIER "wait"
    #define ECHO_ON_EXECUTE 1
    #define EEPROM_MODE 1
    #undef PS_ON_PIN
    #define PS_ON_PIN ORIG_PS_ON_PIN
    #define STARTUP_GCODE "G1 Z15 F50 ; G28 ; G1 Z15 F50 ;"
    #define JSON_OUTPUT 0

    /* ======== Servos =======
    Control the servos with
    M340 P<servoId> S<pulseInUS>   / ServoID = 0..3  pulseInUs = 500..2500
    Servos are controlled by a pulse width normally between 500 and 2500 with 1500ms in center position. 0 turns servo off.
    WARNING: Servos can draw a considerable amount of current. Make sure your system can handle this or you may risk your hardware!
    */
    #define FEATURE_SERVO 0
    #define SERVO0_PIN 11
    #define SERVO1_PIN -1
    #define SERVO2_PIN -1
    #define SERVO3_PIN -1
    #define SERVO0_NEUTRAL_POS  -1
    #define SERVO1_NEUTRAL_POS  -1
    #define SERVO2_NEUTRAL_POS  -1
    #define SERVO3_NEUTRAL_POS  -1
    #define UI_SERVO_CONTROL 0
    #define FAN_KICKSTART_TIME  200
    #define MAX_FAN_PWM 255

            #define FEATURE_WATCHDOG 1

    // #################### Z-Probing #####################

    #define Z_PROBE_Z_OFFSET 0
    #define Z_PROBE_Z_OFFSET_MODE 1
    #define UI_BED_COATING 0
    #define FEATURE_Z_PROBE 1
    #define EXTRUDER_IS_Z_PROBE 0
    #define Z_PROBE_DISABLE_HEATERS 0
    #define Z_PROBE_BED_DISTANCE 10
    #define Z_PROBE_PIN 68
    #define Z_PROBE_PULLUP 0
    #define Z_PROBE_ON_HIGH 0
    #define Z_PROBE_X_OFFSET -25
    #define Z_PROBE_Y_OFFSET -40
    #define Z_PROBE_WAIT_BEFORE_TEST 0
    #define Z_PROBE_SPEED 5
    #define Z_PROBE_XY_SPEED 100
    #define Z_PROBE_SWITCHING_DISTANCE 5
    #define Z_PROBE_REPETITIONS 3
    #define Z_PROBE_USE_MEDIAN 0
    #define Z_PROBE_HEIGHT -1.92
    #define Z_PROBE_DELAY 0
    #define Z_PROBE_START_SCRIPT ""
    #define Z_PROBE_FINISHED_SCRIPT ""
    #define Z_PROBE_RUN_AFTER_EVERY_PROBE ""
    #define Z_PROBE_REQUIRES_HEATING 0
    #define Z_PROBE_MIN_TEMPERATURE 150
    #define FEATURE_AUTOLEVEL 1
    #define FEATURE_SOFTWARE_LEVELING 0
    #define Z_PROBE_X1 20
    #define Z_PROBE_Y1 20
    #define Z_PROBE_X2 600
    #define Z_PROBE_Y2 20
    #define Z_PROBE_X3 20
    #define Z_PROBE_Y3 600
    #define BED_LEVELING_METHOD 1
    #define BED_CORRECTION_METHOD 0
    #define BED_LEVELING_GRID_SIZE 3
    #define BED_LEVELING_REPETITIONS 2
    #define BED_MOTOR_1_X 0
    #define BED_MOTOR_1_Y 0
    #define BED_MOTOR_2_X 200
    #define BED_MOTOR_2_Y 0
    #define BED_MOTOR_3_X 100
    #define BED_MOTOR_3_Y 200
    #define BENDING_CORRECTION_A 0
    #define BENDING_CORRECTION_B 0
    #define BENDING_CORRECTION_C 0
    #define FEATURE_AXISCOMP 1
    #define AXISCOMP_TANXY 0
    #define AXISCOMP_TANYZ 0
    #define AXISCOMP_TANXZ 0

    #ifndef SDSUPPORT  // Some boards have sd support on board. These define the values already in pins.h
    #define SDSUPPORT 0
    #undef SDCARDDETECT
    #define SDCARDDETECT -1
    #undef SDCARDDETECTINVERTED
    #define SDCARDDETECTINVERTED 0
    #define SD_EXTENDED_DIR 1 /** Show extended directory including file length. Don't use this with Pronterface! */
    #define SD_RUN_ON_STOP ""
    #define SD_STOP_HEATER_AND_MOTORS_ON_STOP 1
    #define ARC_SUPPORT 1
    #define FEATURE_MEMORY_POSITION 1
    #define FEATURE_CHECKSUM_FORCED 0
    #define FEATURE_FAN_CONTROL 1
    #define FEATURE_FAN2_CONTROL 0
    #define FEATURE_CONTROLLER 8
    #define ADC_KEYPAD_PIN -1
    #define LANGUAGE_EN_ACTIVE 1
    #define LANGUAGE_DE_ACTIVE 0
    #define LANGUAGE_NL_ACTIVE 0
    #define LANGUAGE_PT_ACTIVE 0
    #define LANGUAGE_IT_ACTIVE 0
    #define LANGUAGE_ES_ACTIVE 0
    #define LANGUAGE_FI_ACTIVE 0
    #define LANGUAGE_SE_ACTIVE 0
    #define LANGUAGE_FR_ACTIVE 0
    #define LANGUAGE_CZ_ACTIVE 0
    #define LANGUAGE_PL_ACTIVE 0
    #define LANGUAGE_TR_ACTIVE 0
    #define UI_PRINTER_NAME "Ciccio"
    #define UI_PRINTER_COMPANY "Pasticcio"
    #define UI_PAGES_DURATION 4000
    #define UI_SPEEDDEPENDENT_POSITIONING 0
    #define UI_DISABLE_AUTO_PAGESWITCH 1
    #define UI_AUTORETURN_TO_MENU_AFTER 30000
    #define FEATURE_UI_KEYS 0
    #define UI_ENCODER_SPEED 1
    #define UI_REVERSE_ENCODER 0
    #define UI_KEY_BOUNCETIME 10
    #define UI_KEY_FIRST_REPEAT 500
    #define UI_KEY_REDUCE_REPEAT 50
    #define UI_KEY_MIN_REPEAT 50
    #define FEATURE_BEEPER 0
    #define CASE_LIGHTS_PIN -1
    #define CASE_LIGHT_DEFAULT_ON 1
    #define UI_START_SCREEN_DELAY 1000
    #define UI_DYNAMIC_ENCODER_SPEED 1
            /**
    Beeper sound definitions for short beeps during key actions
    and longer beeps for important actions.
    Parameter is delay in microseconds and the secons is the number of repetitions.
    Values must be in range 1..255
    */
    #define BEEPER_SHORT_SEQUENCE 2,2
    #define BEEPER_LONG_SEQUENCE 8,8
    #define UI_SET_MIN_HEATED_BED_TEMP  30
    #define UI_SET_MAX_HEATED_BED_TEMP 120
    #define UI_SET_MIN_EXTRUDER_TEMP   170
    #define UI_SET_MAX_EXTRUDER_TEMP   260
    #define UI_SET_EXTRUDER_FEEDRATE 2
    #define UI_SET_EXTRUDER_RETRACT_DISTANCE 3


    #define NUM_MOTOR_DRIVERS 0




    /* Below you will find the configuration string, that created this Configuration.h

    ========== Start configuration string ==========
    {
        "editMode": 2,
        "processor": 0,
        "baudrate": 115200,
        "bluetoothSerial": -1,
        "bluetoothBaudrate": 115200,
        "xStepsPerMM": 80,
        "yStepsPerMM": 64,
        "zStepsPerMM": 1600,
        "xInvert": "0",
        "x2Invert": 0,
        "xInvertEnable": "1",
        "eepromMode": 1,
        "yInvert": "1",
        "y2Invert": 0,
        "yInvertEnable": "1",
        "zInvert": "0",
        "z2Invert": 0,
        "z3Invert": 0,
        "z4Invert": 0,
        "zInvertEnable": "1",
        "extruder": [
            {
                "id": 0,
                "heatManager": 1,
                "pidDriveMin": 40,
                "pidDriveMax": 230,
                "pidMax": 255,
                "sensorType": 1,
                "sensorPin": "TEMP_0_PIN",
                "heaterPin": "HEATER_0_PIN",
                "maxFeedrate": 50,
                "startFeedrate": 20,
                "invert": "0",
                "invertEnable": "1",
                "acceleration": 1000,
                "watchPeriod": 1,
                "pidP": 7,
                "pidI": 2,
                "pidD": 40,
                "advanceK": 0,
                "advanceL": 0,
                "waitRetractTemp": 150,
                "waitRetractUnits": 0,
                "waitRetract": 0,
                "stepsPerMM": 120,
                "coolerPin": "ORIG_FAN_PIN",
                "coolerSpeed": 255,
                "selectCommands": "",
                "deselectCommands": "",
                "xOffset": 0,
                "yOffset": 0,
                "zOffset": 0,
                "xOffsetSteps": 0,
                "yOffsetSteps": 0,
                "zOffsetSteps": 0,
                "stepper": {
                    "name": "Extruder 0",
                    "step": "ORIG_E0_STEP_PIN",
                    "dir": "ORIG_E0_DIR_PIN",
                    "enable": "ORIG_E0_ENABLE_PIN"
                },
                "advanceBacklashSteps": 0,
                "decoupleTestPeriod": 12,
                "jamPin": -1,
                "jamPullup": "0",
                "mirror": "0",
                "invert2": "0",
                "stepper2": {
                    "name": "Extruder 0",
                    "step": "ORIG_E0_STEP_PIN",
                    "dir": "ORIG_E0_DIR_PIN",
                    "enable": "ORIG_E0_ENABLE_PIN"
                },
                "preheat": 190
            }
        ],
        "uiLanguage": 0,
        "uiController": 0,
        "xMinEndstop": 4,
        "yMinEndstop": 4,
        "zMinEndstop": 4,
        "xMaxEndstop": 0,
        "yMaxEndstop": 0,
        "zMaxEndstop": 0,
        "x2MinEndstop": 0,
        "y2MinEndstop": 0,
        "x2MaxEndstop": 0,
        "y2MaxEndstop": 0,
        "motherboard": 316,
        "driveSystem": 0,
        "xMaxSpeed": 300,
        "xHomingSpeed": 40,
        "xTravelAcceleration": 300,
        "xPrintAcceleration": 300,
        "yMaxSpeed": 300,
        "yHomingSpeed": 40,
        "yTravelAcceleration": 300,
        "yPrintAcceleration": 300,
        "zMaxSpeed": 2,
        "zHomingSpeed": 2,
        "zTravelAcceleration": 150,
        "zPrintAcceleration": 50,
        "xMotor": {
            "name": "X motor",
            "step": "ORIG_X_STEP_PIN",
            "dir": "ORIG_X_DIR_PIN",
            "enable": "ORIG_X_ENABLE_PIN"
        },
        "yMotor": {
            "name": "Y motor",
            "step": "ORIG_Y_STEP_PIN",
            "dir": "ORIG_Y_DIR_PIN",
            "enable": "ORIG_Y_ENABLE_PIN"
        },
        "zMotor": {
            "name": "Z motor",
            "step": "ORIG_Z_STEP_PIN",
            "dir": "ORIG_Z_DIR_PIN",
            "enable": "ORIG_Z_ENABLE_PIN"
        },
        "enableBacklash": "0",
        "backlashX": 0,
        "backlashY": 0,
        "backlashZ": 0,
        "stepperInactiveTime": 360,
        "maxInactiveTime": 0,
        "xMinPos": 0,
        "yMinPos": 0,
        "zMinPos": 0,
        "xLength": 1000,
        "yLength": 1500,
        "zLength": 900,
        "alwaysCheckEndstops": "0",
        "disableX": "0",
        "disableY": "0",
        "disableZ": "0",
        "disableE": "0",
        "xHomeDir": "-1",
        "yHomeDir": "-1",
        "zHomeDir": "-1",
        "xEndstopBack": 1,
        "yEndstopBack": 1,
        "zEndstopBack": 1,
        "deltaSegmentsPerSecondPrint": 180,
        "deltaSegmentsPerSecondTravel": 70,
        "deltaDiagonalRod": 445,
        "deltaHorizontalRadius": 209.25,
        "deltaAlphaA": 210,
        "deltaAlphaB": 330,
        "deltaAlphaC": 90,
        "deltaDiagonalCorrA": 0,
        "deltaDiagonalCorrB": 0,
        "deltaDiagonalCorrC": 0,
        "deltaMaxRadius": 150,
        "deltaFloorSafetyMarginMM": 15,
        "deltaRadiusCorrA": 0,
        "deltaRadiusCorrB": 0,
        "deltaRadiusCorrC": 0,
        "deltaXOffsetSteps": 0,
        "deltaYOffsetSteps": 0,
        "deltaZOffsetSteps": 0,
        "deltaSegmentsPerLine": 24,
        "stepperHighDelay": 0,
        "directionDelay": 0,
        "stepDoublerFrequency": 12000,
        "allowQuadstepping": "1",
        "doubleStepDelay": 0,
        "maxJerk": 20,
        "maxZJerk": 0.3,
        "moveCacheSize": 16,
        "moveCacheLow": 10,
        "lowTicksPerMove": 250000,
        "enablePowerOnStartup": "1",
        "echoOnExecute": "1",
        "sendWaits": "1",
        "ackWithLineNumber": "1",
        "killMethod": 0,
        "useAdvance": "0",
        "useQuadraticAdvance": "0",
        "powerInverting": 0,
        "mirrorX": 0,
        "mirrorXMotor": {
            "name": "Extruder 1",
            "step": "ORIG_E1_STEP_PIN",
            "dir": "ORIG_E1_DIR_PIN",
            "enable": "ORIG_E1_ENABLE_PIN"
        },
        "mirrorY": 0,
        "mirrorYMotor": {
            "name": "Extruder 1",
            "step": "ORIG_E1_STEP_PIN",
            "dir": "ORIG_E1_DIR_PIN",
            "enable": "ORIG_E1_ENABLE_PIN"
        },
        "mirrorZ": "0",
        "mirrorZMotor": {
            "name": "Extruder 1",
            "step": "ORIG_E1_STEP_PIN",
            "dir": "ORIG_E1_DIR_PIN",
            "enable": "ORIG_E1_ENABLE_PIN"
        },
        "mirrorZ3": "0",
        "mirrorZ3Motor": {
            "name": "Extruder 2",
            "step": "ORIG_E2_STEP_PIN",
            "dir": "ORIG_E2_DIR_PIN",
            "enable": "ORIG_E2_ENABLE_PIN"
        },
        "mirrorZ4": "0",
        "mirrorZ4Motor": {
            "name": "Extruder 3",
            "step": "ORIG_E3_STEP_PIN",
            "dir": "ORIG_E3_DIR_PIN",
            "enable": "ORIG_E3_ENABLE_PIN"
        },
        "dittoPrinting": "0",
        "featureServos": "0",
        "servo0Pin": 11,
        "servo1Pin": -1,
        "servo2Pin": -1,
        "servo3Pin": -1,
        "featureWatchdog": "1",
        "hasHeatedBed": "0",
        "enableZProbing": "1",
        "extrudeMaxLength": 160,
        "homeOrder": "HOME_ORDER_XYZ",
        "featureController": 8,
        "uiPrinterName": "Ciccio",
        "uiPrinterCompany": "Pasticcio",
        "uiPagesDuration": 4000,
        "uiHeadline": "",
        "uiDisablePageswitch": "1",
        "uiAutoReturnAfter": 30000,
        "featureKeys": "0",
        "uiEncoderSpeed": 1,
        "uiReverseEncoder": "0",
        "uiKeyBouncetime": 10,
        "uiKeyFirstRepeat": 500,
        "uiKeyReduceRepeat": 50,
        "uiKeyMinRepeat": 50,
        "featureBeeper": "0",
        "uiMinHeatedBed": 30,
        "uiMaxHeatedBed": 120,
        "uiMinEtxruderTemp": 170,
        "uiMaxExtruderTemp": 260,
        "uiExtruderFeedrate": 2,
        "uiExtruderRetractDistance": 3,
        "uiSpeeddependentPositioning": "0",
        "maxBedTemperature": 120,
        "bedSensorType": 1,
        "bedSensorPin": "TEMP_1_PIN",
        "bedHeaterPin": "HEATER_1_PIN",
        "bedHeatManager": 0,
        "bedPreheat": 55,
        "bedUpdateInterval": 5000,
        "bedPidDriveMin": 80,
        "bedPidDriveMax": 255,
        "bedPidP": 196,
        "bedPidI": 33,
        "bedPidD": 290,
        "bedPidMax": 255,
        "bedDecoupleTestPeriod": 300,
        "caseLightPin": -1,
        "caseLightDefaultOn": "1",
        "bedSkipIfWithin": 3,
        "gen1T0": 25,
        "gen1R0": 100000,
        "gen1Beta": 4036,
        "gen1MinTemp": -20,
        "gen1MaxTemp": 300,
        "gen1R1": 0,
        "gen1R2": 4700,
        "gen2T0": 25,
        "gen2R0": 100000,
        "gen2Beta": 4036,
        "gen2MinTemp": -20,
        "gen2MaxTemp": 300,
        "gen2R1": 0,
        "gen2R2": 4700,
        "gen3T0": 25,
        "gen3R0": 100000,
        "gen3Beta": 4036,
        "gen3MinTemp": -20,
        "gen3MaxTemp": 300,
        "gen3R1": 0,
        "gen3R2": 4700,
        "userTable0": {
            "r1": 0,
            "r2": 4700,
            "temps": [],
            "numEntries": 0
        },
        "userTable1": {
            "r1": 0,
            "r2": 4700,
            "temps": [],
            "numEntries": 0
        },
        "userTable2": {
            "r1": 0,
            "r2": 4700,
            "temps": [],
            "numEntries": 0
        },
        "tempHysteresis": 0,
        "pidControlRange": 20,
        "skipM109Within": 2,
        "extruderFanCoolTemp": 50,
        "minTemp": 190,
        "maxTemp": 275,
        "minDefectTemp": -10,
        "maxDefectTemp": 290,
        "arcSupport": "1",
        "featureMemoryPositionWatchdog": "1",
        "forceChecksum": "0",
        "sdExtendedDir": "1",
        "featureFanControl": "1",
        "fanPin": "ORIG_FAN_PIN",
        "featureFan2Control": "0",
        "fan2Pin": "ORIG_FAN2_PIN",
        "fanThermoPin": -1,
        "fanThermoMinPWM": 128,
        "fanThermoMaxPWM": 255,
        "fanThermoMinTemp": 45,
        "fanThermoMaxTemp": 60,
        "fanThermoThermistorPin": -1,
        "fanThermoThermistorType": 1,
        "scalePidToMax": "0",
        "zProbePin": 68,
        "zProbeBedDistance": 10,
        "zProbeDisableHeaters": "0",
        "zProbePullup": "0",
        "zProbeOnHigh": "0",
        "zProbeXOffset": -25,
        "zProbeYOffset": -40,
        "zProbeWaitBeforeTest": "0",
        "zProbeSpeed": 5,
        "zProbeXYSpeed": 100,
        "zProbeHeight": -1.92,
        "zProbeStartScript": "",
        "zProbeFinishedScript": "",
        "featureAutolevel": "1",
        "zProbeX1": 20,
        "zProbeY1": 20,
        "zProbeX2": 600,
        "zProbeY2": 20,
        "zProbeX3": 20,
        "zProbeY3": 600,
        "zProbeSwitchingDistance": 5,
        "zProbeRepetitions": 3,
        "zProbeMedian": "0",
        "zProbeEveryPoint": "",
        "sdSupport": "0",
        "sdCardDetectPin": -1,
        "sdCardDetectInverted": "0",
        "uiStartScreenDelay": 1000,
        "xEndstopBackMove": 5,
        "yEndstopBackMove": 5,
        "zEndstopBackMove": 2,
        "xEndstopRetestFactor": 3,
        "yEndstopRetestFactor": 3,
        "zEndstopRetestFactor": 3,
        "xMinPin": "ORIG_X_MIN_PIN",
        "yMinPin": "ORIG_Y_MIN_PIN",
        "zMinPin": "ORIG_Z_MIN_PIN",
        "xMaxPin": "ORIG_X_MAX_PIN",
        "yMaxPin": "ORIG_Y_MAX_PIN",
        "zMaxPin": "ORIG_Z_MAX_PIN",
        "x2MinPin": -1,
        "y2MinPin": -1,
        "x2MaxPin": -1,
        "y2MaxPin": -1,
        "deltaHomeOnPower": "0",
        "fanBoardPin": -1,
        "heaterPWMSpeed": 0,
        "featureBabystepping": "1",
        "babystepMultiplicator": 1,
        "pdmForHeater": "0",
        "pdmForCooler": "0",
        "psOn": "ORIG_PS_ON_PIN",
        "mixingExtruder": "0",
        "decouplingTestMaxHoldVariance": 20,
        "decouplingTestMinTempRise": 1,
        "featureAxisComp": "1",
        "axisCompTanXY": 0,
        "axisCompTanXZ": 0,
        "axisCompTanYZ": 0,
        "retractOnPause": 2,
        "pauseStartCommands": "",
        "pauseEndCommands": "",
        "distortionCorrection": "1",
        "distortionCorrectionPoints": 3,
        "distortionCorrectionR": 100,
        "distortionPermanent": "1",
        "distortionUpdateFrequency": 15,
        "distortionStartDegrade": 0.5,
        "distortionEndDegrade": 1,
        "distortionExtrapolateCorners": "0",
        "distortionXMin": 10,
        "distortionXMax": 990,
        "distortionYMin": 10,
        "distortionYMax": 1490,
        "sdRunOnStop": "",
        "sdStopHeaterMotorsOnStop": "1",
        "featureRetraction": "1",
        "autoretractEnabled": "0",
        "retractionLength": 3,
        "retractionLongLength": 13,
        "retractionSpeed": 40,
        "retractionZLift": 0,
        "retractionUndoExtraLength": 0,
        "retractionUndoExtraLongLength": 0,
        "retractionUndoSpeed": 20,
        "filamentChangeXPos": 0,
        "filamentChangeYPos": 0,
        "filamentChangeZAdd": 2,
        "filamentChangeRehome": 1,
        "filamentChangeShortRetract": 5,
        "filamentChangeLongRetract": 50,
        "fanKickstart": 200,
        "servo0StartPos": -1,
        "servo1StartPos": -1,
        "servo2StartPos": -1,
        "servo3StartPos": -1,
        "uiDynamicEncoderSpeed": "1",
        "uiServoControl": 0,
        "killIfSensorDefect": "0",
        "jamSteps": 220,
        "jamSlowdownSteps": 320,
        "jamSlowdownTo": 70,
        "jamErrorSteps": 500,
        "jamMinSteps": 10,
        "jamAction": 1,
        "jamMethod": 1,
        "primaryPort": 0,
        "numMotorDrivers": 0,
        "motorDrivers": [
            {
                "t": "None",
                "s": "",
                "invertEnable": "0",
                "invertDirection": "0",
                "stepsPerMM": 100,
                "speed": 10,
                "dirPin": -1,
                "stepPin": -1,
                "enablePin": -1,
                "endstopPin": -1,
                "invertEndstop": "0",
                "minEndstop": "1",
                "endstopPullup": "1",
                "maxDistance": 20
            },
            {
                "t": "None",
                "s": "",
                "invertEnable": "0",
                "invertDirection": "0",
                "stepsPerMM": 100,
                "speed": 10,
                "dirPin": -1,
                "stepPin": -1,
                "enablePin": -1,
                "endstopPin": -1,
                "invertEndstop": "0",
                "minEndstop": "1",
                "endstopPullup": "1",
                "maxDistance": 20
            },
            {
                "t": "None",
                "s": "",
                "invertEnable": "0",
                "invertDirection": "0",
                "stepsPerMM": 100,
                "speed": 10,
                "dirPin": -1,
                "stepPin": -1,
                "enablePin": -1,
                "endstopPin": -1,
                "invertEndstop": "0",
                "minEndstop": "1",
                "endstopPullup": "1",
                "maxDistance": 20
            },
            {
                "t": "None",
                "s": "",
                "invertEnable": "0",
                "invertDirection": "0",
                "stepsPerMM": 100,
                "speed": 10,
                "dirPin": -1,
                "stepPin": -1,
                "enablePin": -1,
                "endstopPin": -1,
                "invertEndstop": "0",
                "minEndstop": "1",
                "endstopPullup": "1",
                "maxDistance": 20
            },
            {
                "t": "None",
                "s": "",
                "invertEnable": "0",
                "invertDirection": "0",
                "stepsPerMM": 100,
                "speed": 10,
                "dirPin": -1,
                "stepPin": -1,
                "enablePin": -1,
                "endstopPin": -1,
                "invertEndstop": "0",
                "minEndstop": "1",
                "endstopPullup": "1",
                "maxDistance": 20
            },
            {
                "t": "None",
                "s": "",
                "invertEnable": "0",
                "invertDirection": "0",
                "stepsPerMM": 100,
                "speed": 10,
                "dirPin": -1,
                "stepPin": -1,
                "enablePin": -1,
                "endstopPin": -1,
                "invertEndstop": "0",
                "minEndstop": "1",
                "endstopPullup": "1",
                "maxDistance": 20
            }
        ],
        "manualConfig": "",
        "zHomeMinTemperature": 0,
        "zHomeXPos": 999999,
        "zHomeYPos": 999999,
        "zHomeHeatHeight": 20,
        "zHomeHeatAll": "1",
        "zProbeZOffsetMode": 1,
        "zProbeZOffset": 0,
        "zProbeDelay": 0,
        "uiBedCoating": "0",
        "langEN": "1",
        "langDE": "0",
        "langNL": "0",
        "langPT": "0",
        "langIT": "0",
        "langES": "0",
        "langFI": "0",
        "langSE": "0",
        "langFR": "0",
        "langCZ": "0",
        "langPL": "0",
        "langTR": "0",
        "interpolateAccelerationWithZ": 3,
        "accelerationFactorTop": 80,
        "bendingCorrectionA": 0,
        "bendingCorrectionB": 0,
        "bendingCorrectionC": 0,
        "preventZDisableOnStepperTimeout": "0",
        "supportLaser": "0",
        "laserPin": -1,
        "laserOnHigh": "1",
        "laserWarmupTime": 0,
        "defaultPrinterMode": 0,
        "laserPwmMax": 255,
        "laserWatt": 2,
        "supportCNC": "0",
        "cncWaitOnEnable": 300,
        "cncWaitOnDisable": 0,
        "cncEnablePin": -1,
        "cncEnableWith": "1",
        "cncDirectionPin": -1,
        "cncDirectionCW": "1",
        "cncPwmMax": 255,
        "cncRpmMax": 8000,
        "cncSafeZ": 150,
        "startupGCode": "G1 Z15 F50 ; G28 ; G1 Z15 F50 ;",
        "jsonOutput": "0",
        "bedLevelingMethod": 1,
        "bedCorrectionMethod": 0,
        "bedLevelingGridSize": 3,
        "bedLevelingRepetitions": 2,
        "bedMotor1X": 0,
        "bedMotor1Y": 0,
        "bedMotor2X": 200,
        "bedMotor2Y": 0,
        "bedMotor3X": 100,
        "bedMotor3Y": 200,
        "zProbeRequiresHeating": "0",
        "zProbeMinTemperature": 150,
        "adcKeypadPin": -1,
        "sharedExtruderHeater": "0",
        "extruderSwitchXYSpeed": 100,
        "dualXAxis": "0",
        "boardFanSpeed": 255,
        "keepAliveInterval": 2000,
        "moveXWhenHomed": "0",
        "moveYWhenHomed": "0",
        "moveZWhenHomed": "0",
        "preheatTime": 30000,
        "multiZEndstopHoming": "0",
        "z2MinMaxPin": -1,
        "z2MinMaxEndstop": 0,
        "extruderIsZProbe": "0",
        "boardFanMinSpeed": 0,
        "doorPin": -1,
        "doorEndstop": 0,
        "zhomePreRaise": 0,
        "zhomePreRaiseDistance": 10,
        "dualXResolution": "0",
        "x2axisStepsPerMM": 100,
        "coolerPWMSpeed": 0,
        "maxFanPWM": 255,
        "raiseZOnToolchange": 0,
        "distortionLimitTo": 2,
        "automaticPowerup": 0,
        "hasTMC2130": "0",
        "TMC2130Sensorless": "0",
        "TMC2130Steathchop": "1",
        "TMC2130Interpolate256": "1",
        "TMC2130StallguardSensitivity": 0,
        "TMC2130PWMAmpl": 255,
        "TMC2130PWMGrad": 1,
        "TMC2130PWMAutoscale": "1",
        "TMC2130PWMFreq": 2,
        "TMC2130CSX": -1,
        "TMC2130CSY": -1,
        "TMC2130CSZ": -1,
        "TMC2130CSE0": -1,
        "TMC2130CSE1": -1,
        "TMC2130CSE2": -1,
        "TMC2130CurrentX": 1000,
        "TMC2130CurrentY": 1000,
        "TMC2130CurrentZ": 1000,
        "TMC2130CurrentE0": 1000,
        "TMC2130CurrentE1": 1000,
        "TMC2130CurrentE2": 1000,
        "TMC2130CoolstepTresholdX": 300,
        "TMC2130CoolstepTresholdY": 300,
        "TMC2130CoolstepTresholdZ": 300,
        "microstepX": 16,
        "microstepY": 16,
        "microstepZ": 16,
        "microstepE0": 16,
        "microstepE1": 16,
        "microstepE2": 16,
        "parkPosX": 0,
        "parkPosY": 0,
        "parkPosZ": 10,
        "uiAnimation": "0",
        "uiPresetBedTempPLA": 60,
        "uiPresetBedABS": 110,
        "uiPresetExtruderPLA": 190,
        "uiPresetExtruderABS": 240,
        "hasMAX6675": false,
        "hasMAX31855": false,
        "hasGeneric1": false,
        "hasGeneric2": false,
        "hasGeneric3": false,
        "hasUser0": false,
        "hasUser1": false,
        "hasUser2": false,
        "numExtruder": 1,
        "version": 100.2,
        "primaryPortName": ""
    }
    ========== End configuration string ==========

    */

  • Any help?
    Id like to use repetier :-)
  • >QUESTION 1
    >I sent G32 S0 and now I generated a mesh for the plane.
    >At this point, I execute the slicing but when printer starts goes to Z0 and not to Z-2.
    >So Zmotors compensate probably in the right way but extruder stays to Z0 position so +2 and prints in the air.
    >I saw also the GCODE of the slicing and it indicates the first layer to Z-2.
    >So the command is ok but is ignored.
    z min is 0. You are not supposed to go below z min so moves to z-2 are forbidden. No one does that normally - only to compensate other errors.
    Your slice code stopped before the first moves so can not see anything related to this. But all should have z 0 as start. So slicer starts with first layer height. If homing is too high so you need to go down 2mm that just means your z probe height is off by 2mm. With correct z probe height you end where you need to be.

    >QUESTION 2 - Z OFFSET 
    >Where to set the parameter? In the slicer or in Eprom.
    >I hoped Repetier host and set the value in EPROM but nothing append. If I do the same in Slic3R from RHost,  it works. Can you explain how to operate?

    z offsets are 0 in slicers and in firmware for first extruder as well. First extruder is reference for Z and extruder 2 and z probe are all relative to this.

    >QUESTION 3 SD CARD
    >I saw there is no possibility to read SD card from the physical reader on the board.

    You have 
     "sdSupport": "0", resulting in 
    #define SDSUPPORT 0
    must be 1 for sd card. Normally it gets activated by a controller. But it can also get deactivated by controller. In any case you need to activate it. As a test if sd support is gets compile din add in SDCard.cpp after

    #include "Repetier.h"

    #if SDSUPPORT

    a error message

    #error sd support active


    If compilation breaks with that message you know it is activated now and you can remove the message. If SDSS was correct it should then work.


  • The biggest problem is that I'm not able to upload the new firmware because of Pibot board!! Impossible to flash the  firmware with the latest version of the IDE. Doesn't recognize the board.
    With the only one working version of the IDE (1.6.5) I can only upload the 0.92 version of Repetier.
    Probably the only way to solve the problem is to set one by one the points of the mesh of the probing because after I execute the G32 S0 it always continues to print with wrong correction of the plane.
    Any help to delete completely stored mesh or to set manually one by one the probing points?
  • G32 does not store meshes. It creates a rotation matrix and uses it. Every new run deletes the old one. You can disable its usage so you just level bed physically which is the best solution anyway as it does not need to change Z for all xy moves. It is just not as comfortable but on the other side this is only needed once.

    >The biggest problem is that I'm not able to upload the new firmware because of Pibot board!! Impossible to flash the  firmware with the latest version of the IDE. Doesn't recognize the board.
    What board type do you need for pibot? Isn't it a regular Mega2560 based board - that should work on all IDE versions. If it is a 1280/1284 based sanguino clone you might need to install the sanguino board.
  • Trying again without SD and it works...
    I'll solve this problem later... I hope.
    I did a G32 S0 to have a new matrix with more points and them M500 to save in Eprom
    This is the result:

    14:59:22.523 : N15 M322*20
    14:59:22.541 : Info:Autolevel matrix reset
    14:59:25.553 : N16 G28*36
    14:59:35.676 : N17 G32*46
    14:59:37.623 : X:0.00 Y:0.00 Z:0.000 E:0.0000
    14:59:42.644 : Z correction disabled
    14:59:42.644 : Info:Autoleveling disabled
    14:59:54.352 : Z-probe:13.957 X:20.00 Y:20.00
    15:00:06.460 : Z-probe:15.691 X:20.00 Y:286.00
    15:00:18.183 : Z-probe:15.215 X:20.00 Y:552.00
    15:00:31.058 : Z-probe:16.757 X:20.00 Y:818.00
    15:00:43.469 : Z-probe:16.107 X:20.00 Y:1084.00
    15:00:56.056 : Z-probe:16.356 X:20.00 Y:1350.00
    15:01:11.505 : Z-probe:15.695 X:166.00 Y:20.00
    15:01:21.741 : Z-probe:13.231 X:166.00 Y:286.00
    15:01:33.480 : Z-probe:15.221 X:166.00 Y:552.00
    15:01:44.851 : Z-probe:14.740 X:166.00 Y:818.00
    15:01:56.623 : Z-probe:15.257 X:166.00 Y:1084.00
    15:02:08.283 : Z-probe:15.117 X:166.00 Y:1350.00
    15:02:22.133 : Z-probe:13.271 X:312.00 Y:20.00
    15:02:31.665 : Z-probe:12.269 X:312.00 Y:286.00
    15:02:43.100 : Z-probe:14.817 X:312.00 Y:552.00
    15:02:54.776 : Z-probe:15.159 X:312.00 Y:818.00
    15:03:06.612 : Z-probe:15.334 X:312.00 Y:1084.00
    15:03:18.478 : Z-probe:15.417 X:312.00 Y:1350.00
    15:03:33.192 : Z-probe:14.418 X:458.00 Y:20.00
    15:03:44.676 : Z-probe:14.891 X:458.00 Y:286.00
    15:03:56.575 : Z-probe:15.434 X:458.00 Y:552.00
    15:04:08.891 : Z-probe:16.008 X:458.00 Y:818.00
    15:04:21.317 : Z-probe:16.137 X:458.00 Y:1084.00
    15:04:33.537 : Z-probe:15.857 X:458.00 Y:1350.00
    15:04:48.363 : Z-probe:14.580 X:604.00 Y:20.00
    15:05:00.086 : Z-probe:15.206 X:604.00 Y:286.00
    15:05:12.322 : Z-probe:15.879 X:604.00 Y:552.00
    15:05:25.083 : Z-probe:16.581 X:604.00 Y:818.00
    15:05:37.799 : Z-probe:16.535 X:604.00 Y:1084.00
    15:05:50.849 : Z-probe:16.974 X:604.00 Y:1350.00
    15:06:05.564 : Z-probe:14.418 X:750.00 Y:20.00
    15:06:17.208 : Z-probe:15.107 X:750.00 Y:286.00
    15:06:29.554 : Z-probe:16.026 X:750.00 Y:552.00
    15:06:42.016 : Z-probe:16.199 X:750.00 Y:818.00
    15:06:55.032 : Z-probe:16.938 X:750.00 Y:1084.00
    15:07:08.390 : Z-probe:17.343 X:750.00 Y:1350.00
    15:07:08.390 : plane: a = 0.0012 b = 0.0015 c = 13.8873
    15:07:08.390 : Transformation matrix: 0.999999 0.000000 -0.001164 -0.000002 0.999999 -0.001544 0.001164 0.001544 0.999998
    15:07:08.390 : Printer height:899.29
    15:07:08.390 : CurrentZ:13.89 atZ:14.60
    15:07:08.391 : Info:Autoleveling enabled
    15:07:08.391 : X:749.98 Y:1349.98 Z:16.845 E:0.0000




    Then I try to start printing but it seems that it applies a different compensation for the Z axis and when it moves to the center it starts to scratch to the plane.
    Is there a way to have a look at the matrix in the Eprom.
    It seems it applies different coordinates.








    This is my configuration h
    /*
        This file is part of Repetier-Firmware.

        Repetier-Firmware is free software: you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation, either version 3 of the License, or
        (at your option) any later version.

        Repetier-Firmware is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.

        You should have received a copy of the GNU General Public License
        along with Repetier-Firmware.  If not, see <http://www.gnu.org/licenses/>.

    */

    #ifndef CONFIGURATION_H
    #define CONFIGURATION_H

    /**************** READ FIRST ************************

       This configuration file was created with the configuration tool. For that
       reason, it does not contain the same informations as the original Configuration.h file.
       It misses the comments and unused parts. Open this file file in the config tool
       to see and change the data. You can also upload it to newer/older versions. The system
       will silently add new options, so compilation continues to work.

       This file is optimized for version 1.0.3

       If you are in doubt which named functions use which pins on your board, please check the
       pins.h for the used name->pin assignments and your board documentation to verify it is
       as you expect.

    */

    #define NUM_EXTRUDER 1
    #define MOTHERBOARD 316
    #include "pins.h"

    // ################## EDIT THESE SETTINGS MANUALLY ################

    // ################ END MANUAL SETTINGS ##########################

    #undef FAN_BOARD_PIN
    #define FAN_BOARD_PIN -1
    #define BOARD_FAN_SPEED 255
    #define BOARD_FAN_MIN_SPEED 0
    #define FAN_THERMO_PIN -1
    #define FAN_THERMO_MIN_PWM 128
    #define FAN_THERMO_MAX_PWM 255
    #define FAN_THERMO_MIN_TEMP 45
    #define FAN_THERMO_MAX_TEMP 60
    #define FAN_THERMO_THERMISTOR_PIN -1
    #define FAN_THERMO_THERMISTOR_TYPE 1
    #undef X_MAX_PIN
    #define X_MAX_PIN -1

    //#define EXTERNALSERIAL  use Arduino serial library instead of build in. Requires more ram, has only 63 byte input buffer.
    // Uncomment the following line if you are using Arduino compatible firmware made for Arduino version earlier then 1.0
    // If it is incompatible you will get compiler errors about write functions not being compatible!
    //#define COMPAT_PRE1
    #define BLUETOOTH_SERIAL  -1
    #define BLUETOOTH_BAUD  115200
    #define MIXING_EXTRUDER 0

    #define DRIVE_SYSTEM 0
    #define XAXIS_STEPS_PER_MM 80
    #define YAXIS_STEPS_PER_MM 32
    #define ZAXIS_STEPS_PER_MM 1600
    #define EXTRUDER_FAN_COOL_TEMP 50
    #define PDM_FOR_EXTRUDER 0
    #define PDM_FOR_COOLER 0
    #define DECOUPLING_TEST_MAX_HOLD_VARIANCE 20
    #define DECOUPLING_TEST_MIN_TEMP_RISE 1
    #define KILL_IF_SENSOR_DEFECT 0
    #define RETRACT_ON_PAUSE 2
    #define PAUSE_START_COMMANDS ""
    #define PAUSE_END_COMMANDS ""
    #define SHARED_EXTRUDER_HEATER 0
    #define EXT0_X_OFFSET 0
    #define EXT0_Y_OFFSET 0
    #define EXT0_Z_OFFSET 0
    #define EXT0_STEPS_PER_MM 120
    #define EXT0_TEMPSENSOR_TYPE 1
    #define EXT0_TEMPSENSOR_PIN TEMP_0_PIN
    #define EXT0_HEATER_PIN HEATER_0_PIN
    #define EXT0_STEP_PIN ORIG_E0_STEP_PIN
    #define EXT0_DIR_PIN ORIG_E0_DIR_PIN
    #define EXT0_INVERSE 0
    #define EXT0_ENABLE_PIN ORIG_E0_ENABLE_PIN
    #define EXT0_ENABLE_ON 1
    #define EXT0_MIRROR_STEPPER 0
    #define EXT0_STEP2_PIN ORIG_E0_STEP_PIN
    #define EXT0_DIR2_PIN ORIG_E0_DIR_PIN
    #define EXT0_INVERSE2 0
    #define EXT0_ENABLE2_PIN ORIG_E0_ENABLE_PIN
    #define EXT0_MAX_FEEDRATE 50
    #define EXT0_MAX_START_FEEDRATE 20
    #define EXT0_MAX_ACCELERATION 1000
    #define EXT0_HEAT_MANAGER 1
    #define EXT0_PREHEAT_TEMP 190
    #define EXT0_WATCHPERIOD 1
    #define EXT0_PID_INTEGRAL_DRIVE_MAX 230
    #define EXT0_PID_INTEGRAL_DRIVE_MIN 40
    #define EXT0_PID_PGAIN_OR_DEAD_TIME 7
    #define EXT0_PID_I 2
    #define EXT0_PID_D 40
    #define EXT0_PID_MAX 255
    #define EXT0_ADVANCE_K 0
    #define EXT0_ADVANCE_L 0
    #define EXT0_ADVANCE_BACKLASH_STEPS 0
    #define EXT0_WAIT_RETRACT_TEMP 150
    #define EXT0_WAIT_RETRACT_UNITS 0
    #define EXT0_SELECT_COMMANDS ""
    #define EXT0_DESELECT_COMMANDS ""
    #define EXT0_EXTRUDER_COOLER_PIN ORIG_FAN_PIN
    #define EXT0_EXTRUDER_COOLER_SPEED 255
    #define EXT0_DECOUPLE_TEST_PERIOD 12000
    #define EXT0_JAM_PIN -1
    #define EXT0_JAM_PULLUP 0

    #define FEATURE_RETRACTION 1
    #define AUTORETRACT_ENABLED 0
    #define RETRACTION_LENGTH 3
    #define RETRACTION_LONG_LENGTH 13
    #define RETRACTION_SPEED 40
    #define RETRACTION_Z_LIFT 0
    #define RETRACTION_UNDO_EXTRA_LENGTH 0
    #define RETRACTION_UNDO_EXTRA_LONG_LENGTH 0
    #define RETRACTION_UNDO_SPEED 20
    #define FILAMENTCHANGE_X_POS 0
    #define FILAMENTCHANGE_Y_POS 0
    #define FILAMENTCHANGE_Z_ADD  2
    #define FILAMENTCHANGE_REHOME 1
    #define FILAMENTCHANGE_SHORTRETRACT 5
    #define FILAMENTCHANGE_LONGRETRACT 50
    #define JAM_METHOD 1
    #define JAM_STEPS 220
    #define JAM_SLOWDOWN_STEPS 320
    #define JAM_SLOWDOWN_TO 70
    #define JAM_ERROR_STEPS 500
    #define JAM_MIN_STEPS 10
    #define JAM_ACTION 1

    #define RETRACT_DURING_HEATUP true
    #define PID_CONTROL_RANGE 20
    #define SKIP_M109_IF_WITHIN 2
    #define SCALE_PID_TO_MAX 0
    #define TEMP_HYSTERESIS 0
    #define EXTRUDE_MAXLENGTH 160
    #define NUM_TEMPS_USERTHERMISTOR0 0
    #define USER_THERMISTORTABLE0 {}
    #define NUM_TEMPS_USERTHERMISTOR1 0
    #define USER_THERMISTORTABLE1 {}
    #define NUM_TEMPS_USERTHERMISTOR2 0
    #define USER_THERMISTORTABLE2 {}
    #define GENERIC_THERM_VREF 5
    #define GENERIC_THERM_NUM_ENTRIES 33
    #define HEATER_PWM_SPEED 0
    #define COOLER_PWM_SPEED 0

    // ############# Heated bed configuration ########################

    #define HAVE_HEATED_BED 0
    #define HEATED_BED_PREHEAT_TEMP 55
    #define HEATED_BED_MAX_TEMP 120
    #define SKIP_M190_IF_WITHIN 3
    #define HEATED_BED_SENSOR_TYPE 1
    #define HEATED_BED_SENSOR_PIN TEMP_1_PIN
    #define HEATED_BED_HEATER_PIN HEATER_1_PIN
    #define HEATED_BED_SET_INTERVAL 5000
    #define HEATED_BED_HEAT_MANAGER 0
    #define HEATED_BED_PID_INTEGRAL_DRIVE_MAX 255
    #define HEATED_BED_PID_INTEGRAL_DRIVE_MIN 80
    #define HEATED_BED_PID_PGAIN_OR_DEAD_TIME   196
    #define HEATED_BED_PID_IGAIN   33
    #define HEATED_BED_PID_DGAIN 290
    #define HEATED_BED_PID_MAX 255
    #define HEATED_BED_DECOUPLE_TEST_PERIOD 300000
    #define MIN_EXTRUDER_TEMP 190
    #define MAXTEMP 275
    #define MIN_DEFECT_TEMPERATURE -10
    #define MAX_DEFECT_TEMPERATURE 290
    #define MILLISECONDS_PREHEAT_TIME 30000

    // ##########################################################################################
    // ##                             Laser configuration                                      ##
    // ##########################################################################################

    /*
    If the firmware is in laser mode, it can control a laser output to cut or engrave materials.
    Please use this feature only if you know about safety and required protection. Lasers are
    dangerous and can hurt or make you blind!!!

    The default laser driver only supports laser on and off. Here you control the intensity with
    your feedrate. For exchangeable diode lasers this is normally enough. If you need more control
    you can set the intensity in a range 0-255 with a custom extension to the driver. See driver.h
    and comments on how to extend the functions non invasive with our event system.

    If you have a laser - powder system you will like your E override. If moves contain a
    increasing extruder position it will laser that move. With this trick you can
    use existing fdm slicers to laser the output. Laser width is extrusion width.

    Other tools may use M3 and M5 to enable/disable laser. Here G1/G2/G3 moves have laser enabled
    and G0 moves have it disables.

    In any case, laser only enables while moving. At the end of a move it gets
    automatically disabled.
    */

    #define SUPPORT_LASER 0
    #define LASER_PIN -1
    #define LASER_ON_HIGH 1
    #define LASER_WARMUP_TIME 0
    #define LASER_PWM_MAX 255
    #define LASER_WATT 2

    // ##                              CNC configuration                                       ##

    /*
    If the firmware is in CNC mode, it can control a mill with M3/M4/M5. It works
    similar to laser mode, but mill keeps enabled during G0 moves and it allows
    setting rpm (only with event extension that supports this) and milling direction.
    It also can add a delay to wait for spindle to run on full speed.
    */

    #define SUPPORT_CNC 0
    #define CNC_WAIT_ON_ENABLE 300
    #define CNC_WAIT_ON_DISABLE 0
    #define CNC_ENABLE_PIN -1
    #define CNC_ENABLE_WITH 1
    #define CNC_DIRECTION_PIN -1
    #define CNC_DIRECTION_CW 1
    #define CNC_PWM_MAX 255
    #define CNC_RPM_MAX 8000
    #define CNC_SAFE_Z 150

    #define DEFAULT_PRINTER_MODE 0

    // ################ Endstop configuration #####################

    #define MULTI_ZENDSTOP_HOMING 0
    #define ENDSTOP_PULLUP_X_MIN false
    #define ENDSTOP_X_MIN_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_X true
    #define ENDSTOP_PULLUP_Y_MIN false
    #define ENDSTOP_Y_MIN_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_Y true
    #define ENDSTOP_PULLUP_Z_MIN false
    #define ENDSTOP_Z_MIN_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_Z true
    #define ENDSTOP_PULLUP_Z2_MINMAX true
    #define ENDSTOP_Z2_MINMAX_INVERTING false
    #define MINMAX_HARDWARE_ENDSTOP_Z2 false
    #define ENDSTOP_PULLUP_X_MAX true
    #define ENDSTOP_X_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_X false
    #define ENDSTOP_PULLUP_Y_MAX false
    #define ENDSTOP_Y_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_Y true
    #define ENDSTOP_PULLUP_Z_MAX false
    #define ENDSTOP_Z_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_Z true
    #define ENDSTOP_PULLUP_X2_MIN true
    #define ENDSTOP_PULLUP_Y2_MIN true
    #define ENDSTOP_PULLUP_Z2_MINMAX true
    #define ENDSTOP_PULLUP_X2_MAX true
    #define ENDSTOP_PULLUP_Y2_MAX true
    #define ENDSTOP_X2_MIN_INVERTING false
    #define ENDSTOP_Y2_MIN_INVERTING false
    #define ENDSTOP_X2_MAX_INVERTING false
    #define ENDSTOP_Y2_MAX_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_X2 false
    #define MIN_HARDWARE_ENDSTOP_Y2 false
    #define MAX_HARDWARE_ENDSTOP_X2 false
    #define MAX_HARDWARE_ENDSTOP_Y2 false
    #define X2_MIN_PIN -1
    #define X2_MAX_PIN -1
    #define Y2_MIN_PIN -1
    #define Y2_MAX_PIN -1
    #define Z2_MINMAX_PIN -1



    #define max_software_endstop_r true

    #define min_software_endstop_x false
    #define min_software_endstop_y false
    #define min_software_endstop_z false
    #define max_software_endstop_x true
    #define max_software_endstop_y false
    #define max_software_endstop_z false
    #define DOOR_PIN -1
    #define DOOR_PULLUP 1
    #define DOOR_INVERTING 0
    #define ENDSTOP_X_BACK_MOVE 5
    #define ENDSTOP_Y_BACK_MOVE 5
    #define ENDSTOP_Z_BACK_MOVE 2
    #define ENDSTOP_X_RETEST_REDUCTION_FACTOR 3
    #define ENDSTOP_Y_RETEST_REDUCTION_FACTOR 3
    #define ENDSTOP_Z_RETEST_REDUCTION_FACTOR 3
    #define ENDSTOP_X_BACK_ON_HOME 1
    #define ENDSTOP_Y_BACK_ON_HOME 1
    #define ENDSTOP_Z_BACK_ON_HOME 0
    #define ALWAYS_CHECK_ENDSTOPS 0
    #define MOVE_X_WHEN_HOMED 0
    #define MOVE_Y_WHEN_HOMED 0
    #define MOVE_Z_WHEN_HOMED 0

    // ################# XYZ movements ###################

    #define X_ENABLE_ON 1
    #define Y_ENABLE_ON 1
    #define Z_ENABLE_ON 1
    #define DISABLE_X 0
    #define DISABLE_Y 0
    #define DISABLE_Z 0
    #define DISABLE_E 0
    #define INVERT_X_DIR 0
    #define INVERT_X2_DIR 0
    #define INVERT_Y_DIR 1
    #define INVERT_Y2_DIR 0
    #define INVERT_Z_DIR 0
    #define INVERT_Z2_DIR 0
    #define INVERT_Z3_DIR 0
    #define INVERT_Z4_DIR 0
    #define X_HOME_DIR -1
    #define Y_HOME_DIR -1
    #define Z_HOME_DIR -1
    #define X_MAX_LENGTH 1000
    #define Y_MAX_LENGTH 1500
    #define Z_MAX_LENGTH 900
    #define X_MIN_POS 0
    #define Y_MIN_POS 0
    #define Z_MIN_POS 0
    #define PARK_POSITION_X 0
    #define PARK_POSITION_Y 0
    #define PARK_POSITION_Z_RAISE 10


    #define DISTORTION_CORRECTION 1
    #define DISTORTION_CORRECTION_POINTS 3
    #define DISTORTION_LIMIT_TO 2
    #define DISTORTION_CORRECTION_R 100
    #define DISTORTION_PERMANENT 1
    #define DISTORTION_UPDATE_FREQUENCY 15
    #define DISTORTION_START_DEGRADE 0.5
    #define DISTORTION_END_HEIGHT 1
    #define DISTORTION_EXTRAPOLATE_CORNERS 0
    #define DISTORTION_XMIN 10
    #define DISTORTION_YMIN 10
    #define DISTORTION_XMAX 990
    #define DISTORTION_YMAX 1490

    // ##########################################################################################
    // ##                           Movement settings                                          ##
    // ##########################################################################################

    #define FEATURE_BABYSTEPPING 1
    #define BABYSTEP_MULTIPLICATOR 1

    #define DELTA_SEGMENTS_PER_SECOND_PRINT 180 // Move accurate setting for print moves
    #define DELTA_SEGMENTS_PER_SECOND_MOVE 70 // Less accurate setting for other moves
    #define EXACT_DELTA_MOVES 1

    // Delta settings
    #define DELTA_HOME_ON_POWER 0

    #define DELTASEGMENTS_PER_PRINTLINE 24
    #define STEPPER_INACTIVE_TIME 360L
    #define MAX_INACTIVE_TIME 0L
    #define MAX_FEEDRATE_X 300
    #define MAX_FEEDRATE_Y 300
    #define MAX_FEEDRATE_Z 2
    #define HOMING_FEEDRATE_X 40
    #define HOMING_FEEDRATE_Y 40
    #define HOMING_FEEDRATE_Z 2
    #define HOMING_ORDER HOME_ORDER_XYZ
    #define ZHOME_PRE_RAISE 1
    #define ZHOME_PRE_RAISE_DISTANCE 5
    #define RAISE_Z_ON_TOOLCHANGE 0
    #define ZHOME_MIN_TEMPERATURE 0
    #define ZHOME_HEAT_ALL 1
    #define ZHOME_HEAT_HEIGHT 20
    #define ZHOME_X_POS 999999
    #define ZHOME_Y_POS 999999
    #define ENABLE_BACKLASH_COMPENSATION 0
    #define X_BACKLASH 0
    #define Y_BACKLASH 0
    #define Z_BACKLASH 0
    #define RAMP_ACCELERATION 1
    #define STEPPER_HIGH_DELAY 0
    #define DIRECTION_DELAY 0
    #define STEP_DOUBLER_FREQUENCY 12000
    #define ALLOW_QUADSTEPPING 1
    #define DOUBLE_STEP_DELAY 0 // time in microseconds
    #define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 300
    #define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 300
    #define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 50
    #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 300
    #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 300
    #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 150
    #define INTERPOLATE_ACCELERATION_WITH_Z 3
    #define ACCELERATION_FACTOR_TOP 80
    #define MAX_JERK 20
    #define MAX_ZJERK 0.3
    #define PRINTLINE_CACHE_SIZE 16
    #define MOVE_CACHE_LOW 10
    #define LOW_TICKS_PER_MOVE 250000
    #define EXTRUDER_SWITCH_XY_SPEED 100
    #define DUAL_X_AXIS 0
    #define DUAL_X_RESOLUTION 0
    #define X2AXIS_STEPS_PER_MM 100
    #define FEATURE_TWO_XSTEPPER 0
    #define X2_STEP_PIN   ORIG_E1_STEP_PIN
    #define X2_DIR_PIN    ORIG_E1_DIR_PIN
    #define X2_ENABLE_PIN ORIG_E1_ENABLE_PIN
    #define FEATURE_TWO_YSTEPPER 0
    #define Y2_STEP_PIN   ORIG_E1_STEP_PIN
    #define Y2_DIR_PIN    ORIG_E1_DIR_PIN
    #define Y2_ENABLE_PIN ORIG_E1_ENABLE_PIN
    #define FEATURE_TWO_ZSTEPPER 0
    #define Z2_STEP_PIN   ORIG_E1_STEP_PIN
    #define Z2_DIR_PIN    ORIG_E1_DIR_PIN
    #define Z2_ENABLE_PIN ORIG_E1_ENABLE_PIN
    #define FEATURE_THREE_ZSTEPPER 0
    #define Z3_STEP_PIN   ORIG_E2_STEP_PIN
    #define Z3_DIR_PIN    ORIG_E2_DIR_PIN
    #define Z3_ENABLE_PIN ORIG_E2_ENABLE_PIN
    #define FEATURE_FOUR_ZSTEPPER 0
    #define Z4_STEP_PIN   ORIG_E3_STEP_PIN
    #define Z4_DIR_PIN    ORIG_E3_DIR_PIN
    #define Z4_ENABLE_PIN ORIG_E3_ENABLE_PIN
    #define FEATURE_DITTO_PRINTING 0
    #define USE_ADVANCE 0
    #define ENABLE_QUADRATIC_ADVANCE 0


    // ################# Misc. settings ##################

    #define BAUDRATE 115200
    #define ENABLE_POWER_ON_STARTUP 1
    #define POWER_INVERTING 0
    #define AUTOMATIC_POWERUP 0
    #define KILL_METHOD 0
    #define ACK_WITH_LINENUMBER 1
    #define KEEP_ALIVE_INTERVAL 2000
    #define WAITING_IDENTIFIER "wait"
    #define ECHO_ON_EXECUTE 1
    #define EEPROM_MODE 1
    #undef PS_ON_PIN
    #define PS_ON_PIN ORIG_PS_ON_PIN
    #define JSON_OUTPUT 0

    /* ======== Servos =======
    Control the servos with
    M340 P<servoId> S<pulseInUS>   / ServoID = 0..3  pulseInUs = 500..2500
    Servos are controlled by a pulse width normally between 500 and 2500 with 1500ms in center position. 0 turns servo off.
    WARNING: Servos can draw a considerable amount of current. Make sure your system can handle this or you may risk your hardware!
    */
    #define FEATURE_SERVO 0
    #define SERVO0_PIN 11
    #define SERVO1_PIN -1
    #define SERVO2_PIN -1
    #define SERVO3_PIN -1
    #define SERVO0_NEUTRAL_POS  -1
    #define SERVO1_NEUTRAL_POS  -1
    #define SERVO2_NEUTRAL_POS  -1
    #define SERVO3_NEUTRAL_POS  -1
    #define UI_SERVO_CONTROL 0
    #define FAN_KICKSTART_TIME  200
    #define MAX_FAN_PWM 255

            #define FEATURE_WATCHDOG 1

    // #################### Z-Probing #####################

    #define Z_PROBE_Z_OFFSET 0
    #define Z_PROBE_Z_OFFSET_MODE 1
    #define UI_BED_COATING 0
    #define FEATURE_Z_PROBE 1
    #define EXTRUDER_IS_Z_PROBE 0
    #define Z_PROBE_DISABLE_HEATERS 0
    #define Z_PROBE_BED_DISTANCE 10
    #define Z_PROBE_PIN 68
    #define Z_PROBE_PULLUP 0
    #define Z_PROBE_ON_HIGH 0
    #define Z_PROBE_X_OFFSET -25
    #define Z_PROBE_Y_OFFSET -40
    #define Z_PROBE_WAIT_BEFORE_TEST 0
    #define Z_PROBE_SPEED 5
    #define Z_PROBE_XY_SPEED 100
    #define Z_PROBE_SWITCHING_DISTANCE 3
    #define Z_PROBE_REPETITIONS 2
    #define Z_PROBE_USE_MEDIAN 1
    #define Z_PROBE_HEIGHT 4.5
    #define Z_PROBE_DELAY 0
    #define Z_PROBE_START_SCRIPT ""
    #define Z_PROBE_FINISHED_SCRIPT ""
    #define Z_PROBE_RUN_AFTER_EVERY_PROBE ""
    #define Z_PROBE_REQUIRES_HEATING 0
    #define Z_PROBE_MIN_TEMPERATURE 150
    #define FEATURE_AUTOLEVEL 1
    #define FEATURE_SOFTWARE_LEVELING 0
    #define Z_PROBE_X1 20
    #define Z_PROBE_Y1 20
    #define Z_PROBE_X2 750
    #define Z_PROBE_Y2 20
    #define Z_PROBE_X3 20
    #define Z_PROBE_Y3 1350
    #define BED_LEVELING_METHOD 1
    #define BED_CORRECTION_METHOD 0
    #define BED_LEVELING_GRID_SIZE 6
    #define BED_LEVELING_REPETITIONS 2
    #define BED_MOTOR_1_X 0
    #define BED_MOTOR_1_Y 0
    #define BED_MOTOR_2_X 200
    #define BED_MOTOR_2_Y 0
    #define BED_MOTOR_3_X 100
    #define BED_MOTOR_3_Y 200
    #define BENDING_CORRECTION_A 0
    #define BENDING_CORRECTION_B 0
    #define BENDING_CORRECTION_C 0
    #define FEATURE_AXISCOMP 1
    #define AXISCOMP_TANXY 0
    #define AXISCOMP_TANYZ 0
    #define AXISCOMP_TANXZ 0

    #ifndef SDSUPPORT  // Some boards have sd support on board. These define the values already in pins.h
    #define SDSUPPORT 0
    #undef SDCARDDETECT
    #define SDCARDDETECT -1
    #undef SDCARDDETECTINVERTED
    #define SDCARDDETECTINVERTED 0
    #define SD_EXTENDED_DIR 1 /** Show extended directory including file length. Don't use this with Pronterface! */
    #define SD_RUN_ON_STOP ""
    #define SD_STOP_HEATER_AND_MOTORS_ON_STOP 1
    #define ARC_SUPPORT 1
    #define FEATURE_MEMORY_POSITION 1
    #define FEATURE_CHECKSUM_FORCED 0
    #define FEATURE_FAN_CONTROL 1
    #define FEATURE_FAN2_CONTROL 0
    #define FEATURE_CONTROLLER 8
    #define ADC_KEYPAD_PIN -1
    #define LANGUAGE_EN_ACTIVE 1
    #define LANGUAGE_DE_ACTIVE 0
    #define LANGUAGE_NL_ACTIVE 0
    #define LANGUAGE_PT_ACTIVE 0
    #define LANGUAGE_IT_ACTIVE 0
    #define LANGUAGE_ES_ACTIVE 0
    #define LANGUAGE_FI_ACTIVE 0
    #define LANGUAGE_SE_ACTIVE 0
    #define LANGUAGE_FR_ACTIVE 0
    #define LANGUAGE_CZ_ACTIVE 0
    #define LANGUAGE_PL_ACTIVE 0
    #define LANGUAGE_TR_ACTIVE 0
    #define UI_PRINTER_NAME "Ciccio"
    #define UI_PRINTER_COMPANY "Pasticcio"
    #define UI_PAGES_DURATION 4000
    #define UI_SPEEDDEPENDENT_POSITIONING 0
    #define UI_DISABLE_AUTO_PAGESWITCH 1
    #define UI_AUTORETURN_TO_MENU_AFTER 30000
    #define FEATURE_UI_KEYS 0
    #define UI_ENCODER_SPEED 1
    #define UI_REVERSE_ENCODER 0
    #define UI_KEY_BOUNCETIME 10
    #define UI_KEY_FIRST_REPEAT 500
    #define UI_KEY_REDUCE_REPEAT 50
    #define UI_KEY_MIN_REPEAT 50
    #define FEATURE_BEEPER 1
    #define CASE_LIGHTS_PIN -1
    #define CASE_LIGHT_DEFAULT_ON 1
    #define UI_START_SCREEN_DELAY 1000
    #define UI_DYNAMIC_ENCODER_SPEED 1
            /**
    Beeper sound definitions for short beeps during key actions
    and longer beeps for important actions.
    Parameter is delay in microseconds and the secons is the number of repetitions.
    Values must be in range 1..255
    */
    #define BEEPER_SHORT_SEQUENCE 2,2
    #define BEEPER_LONG_SEQUENCE 8,8
    #define UI_SET_MIN_HEATED_BED_TEMP  30
    #define UI_SET_MAX_HEATED_BED_TEMP 120
    #define UI_SET_MIN_EXTRUDER_TEMP   170
    #define UI_SET_MAX_EXTRUDER_TEMP   260
    #define UI_SET_EXTRUDER_FEEDRATE 2
    #define UI_SET_EXTRUDER_RETRACT_DISTANCE 3


    #define NUM_MOTOR_DRIVERS 0




    /* Below you will find the configuration string, that created this Configuration.h

    ========== Start configuration string ==========
    {
        "editMode": 2,
        "processor": 0,
        "baudrate": 115200,
        "bluetoothSerial": -1,
        "bluetoothBaudrate": 115200,
        "xStepsPerMM": 80,
        "yStepsPerMM": 32,
        "zStepsPerMM": 1600,
        "xInvert": "0",
        "x2Invert": 0,
        "xInvertEnable": "1",
        "eepromMode": 1,
        "yInvert": "1",
        "y2Invert": 0,
        "yInvertEnable": "1",
        "zInvert": "0",
        "z2Invert": 0,
        "z3Invert": 0,
        "z4Invert": 0,
        "zInvertEnable": "1",
        "extruder": [
            {
                "id": 0,
                "heatManager": 1,
                "pidDriveMin": 40,
                "pidDriveMax": 230,
                "pidMax": 255,
                "sensorType": 1,
                "sensorPin": "TEMP_0_PIN",
                "heaterPin": "HEATER_0_PIN",
                "maxFeedrate": 50,
                "startFeedrate": 20,
                "invert": "0",
                "invertEnable": "1",
                "acceleration": 1000,
                "watchPeriod": 1,
                "pidP": 7,
                "pidI": 2,
                "pidD": 40,
                "advanceK": 0,
                "advanceL": 0,
                "waitRetractTemp": 150,
                "waitRetractUnits": 0,
                "waitRetract": 0,
                "stepsPerMM": 120,
                "coolerPin": "ORIG_FAN_PIN",
                "coolerSpeed": 255,
                "selectCommands": "",
                "deselectCommands": "",
                "xOffset": 0,
                "yOffset": 0,
                "zOffset": 0,
                "xOffsetSteps": 0,
                "yOffsetSteps": 0,
                "zOffsetSteps": 0,
                "stepper": {
                    "name": "Extruder 0",
                    "step": "ORIG_E0_STEP_PIN",
                    "dir": "ORIG_E0_DIR_PIN",
                    "enable": "ORIG_E0_ENABLE_PIN"
                },
                "advanceBacklashSteps": 0,
                "decoupleTestPeriod": 12,
                "jamPin": -1,
                "jamPullup": "0",
                "mirror": "0",
                "invert2": "0",
                "stepper2": {
                    "name": "Extruder 0",
                    "step": "ORIG_E0_STEP_PIN",
                    "dir": "ORIG_E0_DIR_PIN",
                    "enable": "ORIG_E0_ENABLE_PIN"
                },
                "preheat": 190
            }
        ],
        "uiLanguage": 0,
        "uiController": 0,
        "xMinEndstop": 4,
        "yMinEndstop": 4,
        "zMinEndstop": 4,
        "xMaxEndstop": 0,
        "yMaxEndstop": 4,
        "zMaxEndstop": 4,
        "x2MinEndstop": 0,
        "y2MinEndstop": 0,
        "x2MaxEndstop": 0,
        "y2MaxEndstop": 0,
        "motherboard": 316,
        "driveSystem": 0,
        "xMaxSpeed": 300,
        "xHomingSpeed": 40,
        "xTravelAcceleration": 300,
        "xPrintAcceleration": 300,
        "yMaxSpeed": 300,
        "yHomingSpeed": 40,
        "yTravelAcceleration": 300,
        "yPrintAcceleration": 300,
        "zMaxSpeed": 2,
        "zHomingSpeed": 2,
        "zTravelAcceleration": 150,
        "zPrintAcceleration": 50,
        "xMotor": {
            "name": "X motor",
            "step": "ORIG_X_STEP_PIN",
            "dir": "ORIG_X_DIR_PIN",
            "enable": "ORIG_X_ENABLE_PIN"
        },
        "yMotor": {
            "name": "Y motor",
            "step": "ORIG_Y_STEP_PIN",
            "dir": "ORIG_Y_DIR_PIN",
            "enable": "ORIG_Y_ENABLE_PIN"
        },
        "zMotor": {
            "name": "Z motor",
            "step": "ORIG_Z_STEP_PIN",
            "dir": "ORIG_Z_DIR_PIN",
            "enable": "ORIG_Z_ENABLE_PIN"
        },
        "enableBacklash": "0",
        "backlashX": 0,
        "backlashY": 0,
        "backlashZ": 0,
        "stepperInactiveTime": 360,
        "maxInactiveTime": 0,
        "xMinPos": 0,
        "yMinPos": 0,
        "zMinPos": 0,
        "xLength": 1000,
        "yLength": 1500,
        "zLength": 900,
        "alwaysCheckEndstops": "0",
        "disableX": "0",
        "disableY": "0",
        "disableZ": "0",
        "disableE": "0",
        "xHomeDir": "-1",
        "yHomeDir": "-1",
        "zHomeDir": "-1",
        "xEndstopBack": 1,
        "yEndstopBack": 1,
        "zEndstopBack": 0,
        "deltaSegmentsPerSecondPrint": 180,
        "deltaSegmentsPerSecondTravel": 70,
        "deltaDiagonalRod": 445,
        "deltaHorizontalRadius": 209.25,
        "deltaAlphaA": 210,
        "deltaAlphaB": 330,
        "deltaAlphaC": 90,
        "deltaDiagonalCorrA": 0,
        "deltaDiagonalCorrB": 0,
        "deltaDiagonalCorrC": 0,
        "deltaMaxRadius": 150,
        "deltaFloorSafetyMarginMM": 15,
        "deltaRadiusCorrA": 0,
        "deltaRadiusCorrB": 0,
        "deltaRadiusCorrC": 0,
        "deltaXOffsetSteps": 0,
        "deltaYOffsetSteps": 0,
        "deltaZOffsetSteps": 0,
        "deltaSegmentsPerLine": 24,
        "stepperHighDelay": 0,
        "directionDelay": 0,
        "stepDoublerFrequency": 12000,
        "allowQuadstepping": "1",
        "doubleStepDelay": 0,
        "maxJerk": 20,
        "maxZJerk": 0.3,
        "moveCacheSize": 16,
        "moveCacheLow": 10,
        "lowTicksPerMove": 250000,
        "enablePowerOnStartup": "1",
        "echoOnExecute": "1",
        "sendWaits": "1",
        "ackWithLineNumber": "1",
        "killMethod": 0,
        "useAdvance": "0",
        "useQuadraticAdvance": "0",
        "powerInverting": 0,
        "mirrorX": 0,
        "mirrorXMotor": {
            "name": "Extruder 1",
            "step": "ORIG_E1_STEP_PIN",
            "dir": "ORIG_E1_DIR_PIN",
            "enable": "ORIG_E1_ENABLE_PIN"
        },
        "mirrorY": 0,
        "mirrorYMotor": {
            "name": "Extruder 1",
            "step": "ORIG_E1_STEP_PIN",
            "dir": "ORIG_E1_DIR_PIN",
            "enable": "ORIG_E1_ENABLE_PIN"
        },
        "mirrorZ": "0",
        "mirrorZMotor": {
            "name": "Extruder 1",
            "step": "ORIG_E1_STEP_PIN",
            "dir": "ORIG_E1_DIR_PIN",
            "enable": "ORIG_E1_ENABLE_PIN"
        },
        "mirrorZ3": "0",
        "mirrorZ3Motor": {
            "name": "Extruder 2",
            "step": "ORIG_E2_STEP_PIN",
            "dir": "ORIG_E2_DIR_PIN",
            "enable": "ORIG_E2_ENABLE_PIN"
        },
        "mirrorZ4": "0",
        "mirrorZ4Motor": {
            "name": "Extruder 3",
            "step": "ORIG_E3_STEP_PIN",
            "dir": "ORIG_E3_DIR_PIN",
            "enable": "ORIG_E3_ENABLE_PIN"
        },
        "dittoPrinting": "0",
        "featureServos": "0",
        "servo0Pin": 11,
        "servo1Pin": -1,
        "servo2Pin": -1,
        "servo3Pin": -1,
        "featureWatchdog": "1",
        "hasHeatedBed": "0",
        "enableZProbing": "1",
        "extrudeMaxLength": 160,
        "homeOrder": "HOME_ORDER_XYZ",
        "featureController": 8,
        "uiPrinterName": "Ciccio",
        "uiPrinterCompany": "Pasticcio",
        "uiPagesDuration": 4000,
        "uiHeadline": "",
        "uiDisablePageswitch": "1",
        "uiAutoReturnAfter": 30000,
        "featureKeys": "0",
        "uiEncoderSpeed": 1,
        "uiReverseEncoder": "0",
        "uiKeyBouncetime": 10,
        "uiKeyFirstRepeat": 500,
        "uiKeyReduceRepeat": 50,
        "uiKeyMinRepeat": 50,
        "featureBeeper": "1",
        "uiMinHeatedBed": 30,
        "uiMaxHeatedBed": 120,
        "uiMinEtxruderTemp": 170,
        "uiMaxExtruderTemp": 260,
        "uiExtruderFeedrate": 2,
        "uiExtruderRetractDistance": 3,
        "uiSpeeddependentPositioning": "0",
        "maxBedTemperature": 120,
        "bedSensorType": 1,
        "bedSensorPin": "TEMP_1_PIN",
        "bedHeaterPin": "HEATER_1_PIN",
        "bedHeatManager": 0,
        "bedPreheat": 55,
        "bedUpdateInterval": 5000,
        "bedPidDriveMin": 80,
        "bedPidDriveMax": 255,
        "bedPidP": 196,
        "bedPidI": 33,
        "bedPidD": 290,
        "bedPidMax": 255,
        "bedDecoupleTestPeriod": 300,
        "caseLightPin": -1,
        "caseLightDefaultOn": "1",
        "bedSkipIfWithin": 3,
        "gen1T0": 25,
        "gen1R0": 100000,
        "gen1Beta": 4036,
        "gen1MinTemp": -20,
        "gen1MaxTemp": 300,
        "gen1R1": 0,
        "gen1R2": 4700,
        "gen2T0": 25,
        "gen2R0": 100000,
        "gen2Beta": 4036,
        "gen2MinTemp": -20,
        "gen2MaxTemp": 300,
        "gen2R1": 0,
        "gen2R2": 4700,
        "gen3T0": 25,
        "gen3R0": 100000,
        "gen3Beta": 4036,
        "gen3MinTemp": -20,
        "gen3MaxTemp": 300,
        "gen3R1": 0,
        "gen3R2": 4700,
        "userTable0": {
            "r1": 0,
            "r2": 4700,
            "temps": [],
            "numEntries": 0
        },
        "userTable1": {
            "r1": 0,
            "r2": 4700,
            "temps": [],
            "numEntries": 0
        },
        "userTable2": {
            "r1": 0,
            "r2": 4700,
            "temps": [],
            "numEntries": 0
        },
        "tempHysteresis": 0,
        "pidControlRange": 20,
        "skipM109Within": 2,
        "extruderFanCoolTemp": 50,
        "minTemp": 190,
        "maxTemp": 275,
        "minDefectTemp": -10,
        "maxDefectTemp": 290,
        "arcSupport": "1",
        "featureMemoryPositionWatchdog": "1",
        "forceChecksum": "0",
        "sdExtendedDir": "1",
        "featureFanControl": "1",
        "fanPin": "ORIG_FAN_PIN",
        "featureFan2Control": "0",
        "fan2Pin": "ORIG_FAN2_PIN",
        "fanThermoPin": -1,
        "fanThermoMinPWM": 128,
        "fanThermoMaxPWM": 255,
        "fanThermoMinTemp": 45,
        "fanThermoMaxTemp": 60,
        "fanThermoThermistorPin": -1,
        "fanThermoThermistorType": 1,
        "scalePidToMax": "0",
        "zProbePin": 68,
        "zProbeBedDistance": 10,
        "zProbeDisableHeaters": "0",
        "zProbePullup": "0",
        "zProbeOnHigh": "0",
        "zProbeXOffset": -25,
        "zProbeYOffset": -40,
        "zProbeWaitBeforeTest": "0",
        "zProbeSpeed": 5,
        "zProbeXYSpeed": 100,
        "zProbeHeight": -1.92,
        "zProbeStartScript": "",
        "zProbeFinishedScript": "",
        "featureAutolevel": "1",
        "zProbeX1": 20,
        "zProbeY1": 20,
        "zProbeX2": 600,
        "zProbeY2": 20,
        "zProbeX3": 20,
        "zProbeY3": 600,
        "zProbeSwitchingDistance": 5,
        "zProbeRepetitions": 3,
        "zProbeMedian": "0",
        "zProbeEveryPoint": "",
        "sdSupport": "0",
        "sdCardDetectPin": -1,
        "sdCardDetectInverted": "0",
        "uiStartScreenDelay": 1000,
        "xEndstopBackMove": 5,
        "yEndstopBackMove": 5,
        "zEndstopBackMove": 2,
        "xEndstopRetestFactor": 3,
        "yEndstopRetestFactor": 3,
        "zEndstopRetestFactor": 3,
        "xMinPin": "ORIG_X_MIN_PIN",
        "yMinPin": "ORIG_Y_MIN_PIN",
        "zMinPin": "ORIG_Z_MIN_PIN",
        "xMaxPin": -1,
        "yMaxPin": "ORIG_Y_MAX_PIN",
        "zMaxPin": "ORIG_Z_MAX_PIN",
        "x2MinPin": -1,
        "y2MinPin": -1,
        "x2MaxPin": -1,
        "y2MaxPin": -1,
        "deltaHomeOnPower": "0",
        "fanBoardPin": -1,
        "heaterPWMSpeed": 0,
        "featureBabystepping": "1",
        "babystepMultiplicator": 1,
        "pdmForHeater": "0",
        "pdmForCooler": "0",
        "psOn": "ORIG_PS_ON_PIN",
        "mixingExtruder": "0",
        "decouplingTestMaxHoldVariance": 20,
        "decouplingTestMinTempRise": 1,
        "featureAxisComp": "1",
        "axisCompTanXY": 0,
        "axisCompTanXZ": 0,
        "axisCompTanYZ": 0,
        "retractOnPause": 2,
        "pauseStartCommands": "",
        "pauseEndCommands": "",
        "distortionCorrection": "1",
        "distortionCorrectionPoints": 3,
        "distortionCorrectionR": 100,
        "distortionPermanent": "1",
        "distortionUpdateFrequency": 15,
        "distortionStartDegrade": 0.5,
        "distortionEndDegrade": 1,
        "distortionExtrapolateCorners": "0",
        "distortionXMin": 10,
        "distortionXMax": 990,
        "distortionYMin": 10,
        "distortionYMax": 1490,
        "sdRunOnStop": "",
        "sdStopHeaterMotorsOnStop": "1",
        "featureRetraction": "1",
        "autoretractEnabled": "0",
        "retractionLength": 3,
        "retractionLongLength": 13,
        "retractionSpeed": 40,
        "retractionZLift": 0,
        "retractionUndoExtraLength": 0,
        "retractionUndoExtraLongLength": 0,
        "retractionUndoSpeed": 20,
        "filamentChangeXPos": 0,
        "filamentChangeYPos": 0,
        "filamentChangeZAdd": 2,
        "filamentChangeRehome": 1,
        "filamentChangeShortRetract": 5,
        "filamentChangeLongRetract": 50,
        "fanKickstart": 200,
        "servo0StartPos": -1,
        "servo1StartPos": -1,
        "servo2StartPos": -1,
        "servo3StartPos": -1,
        "uiDynamicEncoderSpeed": "1",
        "uiServoControl": 0,
        "killIfSensorDefect": "0",
        "jamSteps": 220,
        "jamSlowdownSteps": 320,
        "jamSlowdownTo": 70,
        "jamErrorSteps": 500,
        "jamMinSteps": 10,
        "jamAction": 1,
        "jamMethod": 1,
        "primaryPort": 0,
        "numMotorDrivers": 0,
        "motorDrivers": [
            {
                "t": "None",
                "s": "",
                "invertEnable": "0",
                "invertDirection": "0",
                "stepsPerMM": 100,
                "speed": 10,
                "dirPin": -1,
                "stepPin": -1,
                "enablePin": -1,
                "endstopPin": -1,
                "invertEndstop": "0",
                "minEndstop": "1",
                "endstopPullup": "1",
                "maxDistance": 20
            },
            {
                "t": "None",
                "s": "",
                "invertEnable": "0",
                "invertDirection": "0",
                "stepsPerMM": 100,
                "speed": 10,
                "dirPin": -1,
                "stepPin": -1,
                "enablePin": -1,
                "endstopPin": -1,
                "invertEndstop": "0",
                "minEndstop": "1",
                "endstopPullup": "1",
                "maxDistance": 20
            },
            {
                "t": "None",
                "s": "",
                "invertEnable": "0",
                "invertDirection": "0",
                "stepsPerMM": 100,
                "speed": 10,
                "dirPin": -1,
                "stepPin": -1,
                "enablePin": -1,
                "endstopPin": -1,
                "invertEndstop": "0",
                "minEndstop": "1",
                "endstopPullup": "1",
                "maxDistance": 20
            },
            {
                "t": "None",
                "s": "",
                "invertEnable": "0",
                "invertDirection": "0",
                "stepsPerMM": 100,
                "speed": 10,
                "dirPin": -1,
                "stepPin": -1,
                "enablePin": -1,
                "endstopPin": -1,
                "invertEndstop": "0",
                "minEndstop": "1",
                "endstopPullup": "1",
                "maxDistance": 20
            },
            {
                "t": "None",
                "s": "",
                "invertEnable": "0",
                "invertDirection": "0",
                "stepsPerMM": 100,
                "speed": 10,
                "dirPin": -1,
                "stepPin": -1,
                "enablePin": -1,
                "endstopPin": -1,
                "invertEndstop": "0",
                "minEndstop": "1",
                "endstopPullup": "1",
                "maxDistance": 20
            },
            {
                "t": "None",
                "s": "",
                "invertEnable": "0",
                "invertDirection": "0",
                "stepsPerMM": 100,
                "speed": 10,
                "dirPin": -1,
                "stepPin": -1,
                "enablePin": -1,
                "endstopPin": -1,
                "invertEndstop": "0",
                "minEndstop": "1",
                "endstopPullup": "1",
                "maxDistance": 20
            }
        ],
        "manualConfig": "",
        "zHomeMinTemperature": 0,
        "zHomeXPos": 999999,
        "zHomeYPos": 999999,
        "zHomeHeatHeight": 20,
        "zHomeHeatAll": "1",
        "zProbeZOffsetMode": 1,
        "zProbeZOffset": 0,
        "zProbeDelay": 0,
        "uiBedCoating": "0",
        "langEN": "1",
        "langDE": "0",
        "langNL": "0",
        "langPT": "0",
        "langIT": "0",
        "langES": "0",
        "langFI": "0",
        "langSE": "0",
        "langFR": "0",
        "langCZ": "0",
        "langPL": "0",
        "langTR": "0",
        "interpolateAccelerationWithZ": 3,
        "accelerationFactorTop": 80,
        "bendingCorrectionA": 0,
        "bendingCorrectionB": 0,
        "bendingCorrectionC": 0,
        "preventZDisableOnStepperTimeout": "0",
        "supportLaser": "0",
        "laserPin": -1,
        "laserOnHigh": "1",
        "laserWarmupTime": 0,
        "defaultPrinterMode": 0,
        "laserPwmMax": 255,
        "laserWatt": 2,
        "supportCNC": "0",
        "cncWaitOnEnable": 300,
        "cncWaitOnDisable": 0,
        "cncEnablePin": -1,
        "cncEnableWith": "1",
        "cncDirectionPin": -1,
        "cncDirectionCW": "1",
        "cncPwmMax": 255,
        "cncRpmMax": 8000,
        "cncSafeZ": 150,
        "startupGCode": "",
        "jsonOutput": "0",
        "bedLevelingMethod": 1,
        "bedCorrectionMethod": 0,
        "bedLevelingGridSize": 3,
        "bedLevelingRepetitions": 2,
        "bedMotor1X": 0,
        "bedMotor1Y": 0,
        "bedMotor2X": 200,
        "bedMotor2Y": 0,
        "bedMotor3X": 100,
        "bedMotor3Y": 200,
        "zProbeRequiresHeating": "0",
        "zProbeMinTemperature": 150,
        "adcKeypadPin": -1,
        "sharedExtruderHeater": "0",
        "extruderSwitchXYSpeed": 100,
        "dualXAxis": "0",
        "boardFanSpeed": 255,
        "keepAliveInterval": 2000,
        "moveXWhenHomed": "0",
        "moveYWhenHomed": "0",
        "moveZWhenHomed": "0",
        "preheatTime": 30000,
        "multiZEndstopHoming": "0",
        "z2MinMaxPin": -1,
        "z2MinMaxEndstop": 0,
        "extruderIsZProbe": "0",
        "boardFanMinSpeed": 0,
        "doorPin": -1,
        "doorEndstop": 0,
        "zhomePreRaise": 1,
        "zhomePreRaiseDistance": 5,
        "dualXResolution": "0",
        "x2axisStepsPerMM": 100,
        "coolerPWMSpeed": 0,
        "maxFanPWM": 255,
        "raiseZOnToolchange": 0,
        "distortionLimitTo": 2,
        "automaticPowerup": 0,
        "hasTMC2130": "0",
        "TMC2130Sensorless": "0",
        "TMC2130Steathchop": "1",
        "TMC2130Interpolate256": "1",
        "TMC2130StallguardSensitivity": 0,
        "TMC2130PWMAmpl": 255,
        "TMC2130PWMGrad": 1,
        "TMC2130PWMAutoscale": "1",
        "TMC2130PWMFreq": 2,
        "TMC2130CSX": -1,
        "TMC2130CSY": -1,
        "TMC2130CSZ": -1,
        "TMC2130CSE0": -1,
        "TMC2130CSE1": -1,
        "TMC2130CSE2": -1,
        "TMC2130CurrentX": 1000,
        "TMC2130CurrentY": 1000,
        "TMC2130CurrentZ": 1000,
        "TMC2130CurrentE0": 1000,
        "TMC2130CurrentE1": 1000,
        "TMC2130CurrentE2": 1000,
        "TMC2130CoolstepTresholdX": 300,
        "TMC2130CoolstepTresholdY": 300,
        "TMC2130CoolstepTresholdZ": 300,
        "microstepX": 16,
        "microstepY": 16,
        "microstepZ": 16,
        "microstepE0": 16,
        "microstepE1": 16,
        "microstepE2": 16,
        "parkPosX": 0,
        "parkPosY": 0,
        "parkPosZ": 10,
        "uiAnimation": "0",
        "uiPresetBedTempPLA": 60,
        "uiPresetBedABS": 110,
        "uiPresetExtruderPLA": 190,
        "uiPresetExtruderABS": 240,
        "hasMAX6675": false,
        "hasMAX31855": false,
        "hasGeneric1": false,
        "hasGeneric2": false,
        "hasGeneric3": false,
        "hasUser0": false,
        "hasUser1": false,
        "hasUser2": false,
        "numExtruder": 1,
        "version": 100.2,
        "primaryPortName": ""
    }
    ========== End configuration string ==========

    */
  • As I already said, there is no matrix in eeprom/memory. We only store the rotation here.
    I see the difference is 3.386 mm between highest and lowest position, that is quite bad leveled.

    A even bigger problem is when you look into your measurements:

    Start here for x constant and see how y changes. It should be eithe rincreasing or decreasing but you get
    14:59:54.352 : Z-probe:13.957 X:20.00 Y:20.00
    15:00:06.460 : Z-probe:15.691 X:20.00 Y:286.00  down
    15:00:18.183 : Z-probe:15.215 X:20.00 Y:552.00 up
    15:00:31.058 : Z-probe:16.757 X:20.00 Y:818.00 down
    15:00:43.469 : Z-probe:16.107 X:20.00 Y:1084.00 up
    15:00:56.056 : Z-probe:16.356 X:20.00 Y:1350.00 down

    This does not look like a flat bed. At X166 it continues

    15:01:11.505 : Z-probe:15.695 X:166.00 Y:20.00
    15:01:21.741 : Z-probe:13.231 X:166.00 Y:286.00 up
    15:01:33.480 : Z-probe:15.221 X:166.00 Y:552.00 down
    15:01:44.851 : Z-probe:14.740 X:166.00 Y:818.00 up
    15:01:56.623 : Z-probe:15.257 X:166.00 Y:1084.00 down
    15:02:08.283 : Z-probe:15.117 X:166.00 Y:1350.00 up

    ...
    15:07:08.390 : Z-probe:17.343 X:750.00 Y:1350.00
    15:07:08.390 : plane: a = 0.0012 b = 0.0015 c = 13.8873
    15:07:08.390 : Transformation matrix: 0.999999 0.000000 -0.001164 -0.000002 0.999999 -0.001544 0.001164 0.001544 0.999998

    With such deviations you can not expect good results.
    Not the question is what is causing that. Is the bed really that bumpy, is the z probe unreliable or does it get disturbed? E.g. inductive probe gets disturbed when bed is heating. So in that case bed must be disabled to get proper measurements.

    What you can expect is that the plane swings between +/- 0.4mm too close and too far away. I doubt that even with G33 you will be able to compensate that. Also this is just a guess from some values it shows clearly your problem. Guess it comes from the big bed size. Here you can get many effects and it is hard to find a plane bed that big. You might also get bending effects from the weight of bed and also the x/y axis depending on your system. Have at least seen systems where extruder was mid x lower from own weight.
Sign In or Register to comment.