Rostock Max: HE280 accelerometer z probe & filament runout sensors

2»

Comments

  • edited January 2021
    I managed to adjust the speeds by putting the standard ones, I had a moment of panic but now everything is ok. Regarding the calibration I proceeded to recalibrate mechanically and it has improved, now I will take back the tool you passed me and I will also recalibrate from there. I've always used this:

    https://www.seemecnc.com/pages/delta-calibration-wizard

    I think it's the same thing, I am attaching the photo of the mechanical correction without autolevel G32 & G33 and then with the corrections.

    Only mechanical
    https://i.imgur.com/vqb0MvE.jpg

    With G32 & G33
    https://i.imgur.com/8O9tWBP.jpg

    There is to be improved..
  • I encountered an error, on the firmware EXT0_MIRROR_STEPPER set to 0 but once the machine extrudes it is on ext 0 and 1 both spin together. Why?
  • Do you have configured a mixing extruder? That is if you mix 2 incoming filaments with some ratio. Default is 50% each. That would be wrong in your case as I understood you. You need to selected shared heater and assign both the same thermistor.

    Not sure how the old firmware did handle the problem that only one filament can be loaded. You can have scripts on extruder select and deselect or just keep it in sync on your own and with good slicer scripts.
  • edited January 2021
    Probably so you are right, now I check the firmware and correct and test immediately. Do you know what the #define on configuration.h is?

    Edit

    MIXING_EXTRUDER setting to 0, thanks so much!
  • edited January 2021
    I proceeded to recalibrate the printer again and the best result I got at the moment is this. For the 3d map I put an initial Z of 5mm starting from X0 Y0. Here it is.


    mechanical calibration and Eschel3D:


    Without G32 S2, only mechanical and Eshel3D:



    with G32 S2


    Advice? Not print yet, G33 S2 crashes and dont know why.

    EDIT

    Despite the calibration below 0.1 and the auto level g32 S2 the nozzle touches the bed halfway..



    I tried to print by deleting the G32 with M322 S2 but the result is the same. Is it possible that the self-calibration does not activate?
  • What is your z probe bed distance? If leveling touches bed it is normally to small so the bed rotation causes it to touch. G33 also uses this distance. WHat does crash mean here? Just scratch or totally wrong move deep inside the bed without any messages? Make sure that the area is not too large where you test. It will otherwise cause problems with illegal moves.

    I wonder what the calibration tool changed? Output values are the same as initial values if I see it correctly.

    -3° is a big error for a tower position. Also you see in height map that the neutral height has 3 parts which is typical for angle errors. Each tower ha sit's main zone of influence.
  • The distance of the probe from the bed is 5mm, I noticed that with each different height (5mm, 10mm and 20mm) the probe changes result. The distance from the bed is 5mm and the activation of the probe is 3mm. Unfortunately regarding G33 S2 once it reaches and probes the angle of Y in going back to probe the other end it stops and gives a generic error asking to send M999.

    G32 S2 works great and doesn't crash and that's what I don't understand, it has the same 90x90 measures. Before having calibrated with Esher 3D G33 S2 it was fine without crashing. I will try to improve the result.
  • Please try 1.0.5dev version - you can use same config. There was a bug that every probe did not go back exactly to start position. You never said how big your G33 grid is but if you have many measures and the bug is in 1.0.4 (don't know when I fixed it) that could be part of the problem. 
    Also what is the message you get? M999 means there was a fatal error you need to fix before anything works. This is to protect printer and when you see it firmware detected a problem.
  • edited January 2021
    These are the coordinates he gave me with G33 L0:

    13:31:44.060 : Info:Autoleveling enabled
    13:31:46.231 : G33 X-90.00 Y-90.00 Z0.000
    13:31:46.235 : G33 X-90.00 Y-45.00 Z0.000
    13:31:46.235 : G33 X-90.00 Y0.00 Z0.000
    13:31:46.239 : G33 X-90.00 Y45.00 Z0.000
    13:31:46.239 : G33 X-90.00 Y90.00 Z0.000
    13:31:46.239 : G33 X-45.00 Y-90.00 Z0.000
    13:31:46.243 : G33 X-45.00 Y-45.00 Z0.000
    13:31:46.243 : G33 X-45.00 Y0.00 Z0.000
    13:31:46.247 : G33 X-45.00 Y45.00 Z0.000
    13:31:46.247 : G33 X-45.00 Y90.00 Z0.000
    13:31:46.252 : G33 X0.00 Y-90.00 Z0.000
    13:31:46.252 : G33 X0.00 Y-45.00 Z0.000
    13:31:46.252 : G33 X0.00 Y0.00 Z0.000
    13:31:46.255 : G33 X0.00 Y45.00 Z0.000
    13:31:46.256 : G33 X0.00 Y90.00 Z0.000
    13:31:46.259 : G33 X45.00 Y-90.00 Z0.000
    13:31:46.259 : G33 X45.00 Y-45.00 Z0.000
    13:31:46.259 : G33 X45.00 Y0.00 Z0.000
    13:31:46.263 : G33 X45.00 Y45.00 Z0.000
    13:31:46.264 : G33 X45.00 Y90.00 Z0.000
    13:31:46.268 : G33 X90.00 Y-90.00 Z0.000
    13:31:46.268 : G33 X90.00 Y-45.00 Z0.000
    13:31:46.268 : G33 X90.00 Y0.00 Z0.000
    13:31:46.272 : G33 X90.00 Y45.00 Z0.000
    13:31:46.272 : G33 X90.00 Y90.00 Z0.000

    The problem was the calibrations made with eshel3d, for some reason they gave me problems with G33. Regarding the bug I hope but by reversing the position of the probe the differences in the bed have been reversed. I have an offset of X20 Y15 and therefore I assume that the probe experiences the tilt of the platform at the ends of the bed.

    I will try to build a probe housing in the center under the nozzle to see if the theory is correct.
  • edited January 2021
    At the moment I have printed without autocalibration, only mechanically and it prints regularly. Only with an offset I have to figure out where it comes from.



    About the probe everything is ok, it was my oversight and it gives me relief as a thing. About the bug I do not think because I have a tolerance under +/- 0.04. in the end, even with a calibration point close to 0 with the degrees of the towers the result does not change. There will be a way to understand
  • Good to see it is working again. The G33 L0 shows it is cleared. If you need a correction at some point just send the returned command
     G33 X90.00 Y45.00 Z0.000

    with the z correction you want there. That way you can optimize probelmatic zones a bit.
  • Absolutely yes! Regarding the motors, I don't know if I can ask here, having a 1.3L rambo I have to reduce the noise (which is high) and I must necessarily act on the firmware since it has digital potentiometers, I am identifying the string:

    #define MOTOR_CURRENT_PERCENT { 55,55,55,55,55 }

    Can you confirm that this is it?
  • No. Here from original config

    // Motor Current setting (Only functional when motor driver current ref pins are
    // connected to a digital trimpot on supported boards) Motor Current setting
    // (Only functional when motor driver current ref pins are connected to a
    // digital trimpot on supported boards)
    #if MOTHERBOARD == 301
    //#define MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 =
    //~0.75A, 185 = ~1A)
    #define MOTOR_CURRENT_PERCENT \
    { 53, 53, 53, 53, 53 }
    #elif MOTHERBOARD == 12
    //#define MOTOR_CURRENT {35713,35713,35713,35713,35713} // Values 0-65535 (3D
    //Master 35713 = ~1A)
    #define MOTOR_CURRENT_PERCENT \
    { 55, 55, 55, 55, 55 }
    #endif
    So for rambo you need 
    #define MOTOR_CURRENT {135,135,135,135,135}
    // Values 0-255 (RAMBO 135 =~0.75A, 185 = ~1A)

    Here you just set the digipot values of current.
  • edited January 2021
    I can't find that string by looking in all the tabs, do I have to modify / insert it myself?

    i have only in configuration.h:

    // ################## EDIT THESE SETTINGS MANUALLY ################
    //  Microstepping mode of your RAMBO board
    #define MICROSTEP_MODES { 8,8,8,8,8 } // [1,2,4,8,16]
    // Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
    #define MOTOR_CURRENT_PERCENT { 55,55,55,55,55 }

    Need change
    #define MOTOR_CURRENT_PERCENT { 55,55,55,55,55 }

    to:
    #define MOTOR_CURRENT {135,135,135,135,135}
    // Values 0-255 (RAMBO 135 =~0.75A, 185 = ~1A)

    in this?

    I'm sorry but I'm in confusion :s 
  • You can put it in manual additions in config tool. Good chance that it is not in the options.
  • Perfect! I Will try today and i Hope for the reducing noise, thank you so much!
  • fewfew
    edited February 2021
    This thread got hijacked by an unrelated issue, but I wanted to provide update on my progress.

    I tried using the "Trash80_IIS2DH" library, but ran into issues.

    I went back and ported out the original code from the SeeMeCNC 0.92.2 port of Repetier, and added the accelerometer functionality into Repetier 1.0.4. I have included a configuration.h file for my SeeMeCNC Rostock Max V2 (which is upgraded with the V2->V3 kit and HE280 hot end). I have also rewired the hot end and layer cooling fans to the RAMBO directly (so that the fan can get properly controlled by the firmware). I wired the IIS2DH accelerometer chip trigger line to the Z-MIN endswitch input on the RAMBO (this accelerometer is used to sense when the nozzle hits the bed, and then an output line is toggled high).

    I have checked that G30, G31, and G32 work well on my printer. G29 doesn't seem to work correctly, but I'm not using it anyways.

    I added a new GCode command (sorry!), G35, that forces initialization of the accelerometer and clear the output trigger line. This sets the Z-probe endstop line low, and allows testing that it's working by calling G31. By calling G35, then G31, the Z-probe should report low. Then lightly tapping the nozzle upwards and calling G31 again shows Z-probe is high.

    I added a configuration value for indicating that the z-probe uses this I2C accelerometer: Z_PROBE_IIS2DH. When this value is 1, then the accelerometer specific code is enabled.

    I also included the accelerometer sensitivity threshold value, and used the default value from SeeMeCNC: Z_PROBE_SENSITIVITY
    #define Z_PROBE_SENSITIVITY 20 // 0-126 7 bit value. Value for (Z_PROBE_SPEED 60) with glass bed

    I renamed the constant:
    PRINTER_FLAG0_ZPROBEING to PRINTER_FLAG0_ZPROBING (because that's the correct spelling).

    It's not necessary to disable the probe afterwards.

    I did modify setZProbingActive, but I also needed to add in some configuration code steps, as well as some checks that the I2C chip has been reset correctly in a few locations.

    I forked Repetier 1.0.4, and have uploaded my modified version (see https://github.com/FEsmondeWhite/Repetier-Firmware).
    Repetier said:
    There is actually a very easy solution and place. Before probe move and afterwards the same function is called:
    static INLINE void setZProbingActive(bool on) {
    flag0 = (on ? flag0 | PRINTER_FLAG0_ZPROBEING
    : flag0 & ~PRINTER_FLAG0_ZPROBEING);
    }
    in printer.h

    With on you see if it gets enabled or disabled. So just add your reset code in on case and disable signal for off case you I guess you are done.

    V2 would be in deed easier as it has dedicated z probe classes for different kinds and also has automatic geometry calibration. But at the moment avr boards are not supported. It is planned and I hope the 8 bit boards are fast enough for the new system which is especially for deltas much better. On the other side avr is quite slow so motion resolution will still need to be quite coarse. Even a due which is 10 times faster already allows a much higher frequency of updates and smoother moves. The nice thing with V2 is that quality will automatically increase with slower moves, so slow outer perimeter will run it with higher precision automatically.

    We don't have that printer and hence no sample configs, sorry.

  • Thanks for the contribution. I have added it to 1.0.5dev so all you need to do is add the define
    // Set to 1 for accelerometer z probe like used in SeeMeCNC Rostock
    #define Z_PROBE_IIS2DH 1

    1.0.5 contains a bug fix to G32 - not sure if this is relevant for deltas but z was wrong after G32 and that is now fixed. Running home after it would also prevent the problem.
  • Minor note: Compiling the latest dev (1.0.5) branch in Arduino 1.8.13 was giving me errors because the version of overloaded RMath::max() isn't clear (see below). I fixed this by changing line motion.cpp:2070 to the following:
         "segmentCount = RMath::max(int32_t(1), static_cast<int32_t>(sps * seconds));"

    I'll post to github.

    Error:
    C:\Users\franc\AppData\Local\Temp\arduino_build_903360\sketch\motion.cpp: In static member function 'static uint8_t PrintLine::queueNonlinearMove(uint8_t, uint8_t, uint8_t)':
    motion.cpp:2070:73: error: call of overloaded 'max(int, int32_t)' is ambiguous
             segmentCount = RMath::max(1, static_cast<int32_t>(sps * seconds));
                                                                             ^
    In file included from C:\Users\franc\AppData\Local\Temp\arduino_build_903360\sketch\motion.cpp:24:0:
    C:\Users\franc\AppData\Local\Temp\arduino_build_903360\sketch\Repetier.h:788:25: note: candidate: static float RMath::max(float, float)
         static inline float max(float a, float b) {
                             ^~~
    C:\Users\franc\AppData\Local\Temp\arduino_build_903360\sketch\Repetier.h:808:27: note: candidate: static int32_t RMath::max(int32_t, int32_t)
         static inline int32_t max(int32_t a, int32_t b) {
                               ^~~
    C:\Users\franc\AppData\Local\Temp\arduino_build_903360\sketch\Repetier.h:823:27: note: candidate: static int16_t RMath::max(int16_t, int16_t)
         static inline int16_t max(int16_t a, int16_t b) {
                               ^~~
    C:\Users\franc\AppData\Local\Temp\arduino_build_903360\sketch\Repetier.h:828:28: note: candidate: static uint16_t RMath::max(uint16_t, uint16_t)
         static inline uint16_t max(uint16_t a, uint16_t b) {
                                ^~~
    "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_RAMBO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Users\\franc\\AppData\\Local\\Arduino15\\packages\\rambo\\hardware\\avr\\1.0.1\\variants\\rambo" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\franc\\AppData\\Local\\Temp\\arduino_build_903360\\sketch\\uilang.cpp" -o "C:\\Users\\franc\\AppData\\Local\\Temp\\arduino_build_903360\\sketch\\uilang.cpp.o"
    Using library SPI at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI 
    Using library Wire at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire 
    exit status 1
    call of overloaded 'max(int, int32_t)' is ambiguous
  • Thanks. Fixed it now as well.
  • I also have now added the option to the config tool.
  • Hello,

    I had originally added the HE280 handling in 1.0.4, and when I tried running it in 1.0.5, it wasn't working well. I ended up running into issues related to low memory on the RAMBo 1.3L in 1.0.5. After fixing the memory issues, I had issues with inconsistent probing results.

    I decided to use a Teensy microcontroller to handle the I2C, freeing up Repetier to just treat the HE280 as a normal endstop (Z-min input, with a 10 ms high-level trigger output from the Teensy on probe/bed contact). This is much more stable, and doesn't need any extra code/parameters than the normal Repetier. The HE280/Teensy 4/RAMBo adaptor is documented at https://github.com/FEsmondeWhite/HE280AccelerometerInterface. This approach is forked from https://github.com/trash80/HE280AccelerometerInterface which uses the teensy to adapt the HE280 for a Duet2 controller.

    In my earlier post, I hadn't pointed out two defines that I was using for setting up the accelerometer in configuration.h.
    #define Z_PROBE_SENSITIVITY  20 // 0-126 7 bit value
    #define Z_PROBE_ACCELEROMETER_I2C_ADDR 0x19

    With additional testing, I found that the Z-probe wasn't being updated correctly on the development branch.

    I would suggest reverting my older HE280 code change, and just pointing people to the Teensy adapter code. This setup works well with Repetier 1.0.5 and the HE280 platform. As a 20$ magic-glue, this is an easier and more reliable option.



  • In case anyone else is interested in adding endstops, dual-extruder, and the HE280 support under RAMBo 1.3L to their upgraded SeeMeCNC Rostock max v2->v3, I am uploading 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.4dev
    generator: http://www.repetier.com/firmware/dev/

    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 2
    #define MOTHERBOARD 301
    #include "pins.h"

    // ################## EDIT THESE SETTINGS MANUALLY ################
    // Microstepping mode of your RAMBO board
    #define MICROSTEP_MODES { 8,8,8,8,8 } // [1,2,4,8,16]
    // Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
    #define MOTOR_CURRENT_PERCENT { 55,55,55,55,55 }


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

    #define HOST_RESCUE 1
    #undef FAN_PIN
    #define FAN_PIN ORIG_FAN2_PIN
    #undef FAN_BOARD_PIN
    #define FAN_BOARD_PIN -1
    #define BOARD_FAN_SPEED 255
    #define BOARD_FAN_MIN_SPEED 0
    #define FAN_THERMO_PIN ORIG_FAN2_PIN
    #define FAN_THERMO_MIN_PWM 128
    #define FAN_THERMO_MAX_PWM 255
    #define FAN_THERMO_MIN_TEMP 40
    #define FAN_THERMO_MAX_TEMP 60
    #define FAN_THERMO_THERMISTOR_PIN TEMP_0_PIN
    #define FAN_THERMO_THERMISTOR_TYPE 8
    #undef X_MIN_PIN
    #define X_MIN_PIN -1
    #undef Y_MIN_PIN
    #define Y_MIN_PIN -1
    #undef Z_MIN_PIN
    #define Z_MIN_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 3
    #define XAXIS_STEPS_PER_MM 80
    #define YAXIS_STEPS_PER_MM 80
    #define ZAXIS_STEPS_PER_MM 80
    #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 1
    #define EXT0_X_OFFSET 0
    #define EXT0_Y_OFFSET 0
    #define EXT0_Z_OFFSET 0
    #define EXT0_STEPS_PER_MM 80.00
    #define EXT0_TEMPSENSOR_TYPE 8
    #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 1
    #define EXT0_ENABLE_PIN ORIG_E0_ENABLE_PIN
    #define EXT0_ENABLE_ON 0
    #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 5000
    #define EXT0_HEAT_MANAGER 1
    #define EXT0_PREHEAT_TEMP 215
    #define EXT0_WATCHPERIOD 1
    #define EXT0_PID_INTEGRAL_DRIVE_MAX 230
    #define EXT0_PID_INTEGRAL_DRIVE_MIN 80
    #define EXT0_PID_PGAIN_OR_DEAD_TIME 20.0045
    #define EXT0_PID_I 2.4816
    #define EXT0_PID_D 40.3140
    #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 ORIG_X_MIN_PIN
    #define EXT0_JAM_PULLUP 1
    #define EXT1_X_OFFSET 0
    #define EXT1_Y_OFFSET 0
    #define EXT1_Z_OFFSET 0
    #define EXT1_STEPS_PER_MM 80.000
    #define EXT1_TEMPSENSOR_TYPE 8
    #define EXT1_TEMPSENSOR_PIN TEMP_0_PIN
    #define EXT1_HEATER_PIN HEATER_0_PIN
    #define EXT1_STEP_PIN ORIG_E1_STEP_PIN
    #define EXT1_DIR_PIN ORIG_E1_DIR_PIN
    #define EXT1_INVERSE 1
    #define EXT1_ENABLE_PIN ORIG_E1_ENABLE_PIN
    #define EXT1_ENABLE_ON 0
    #define EXT1_MIRROR_STEPPER 0
    #define EXT1_STEP2_PIN ORIG_E1_STEP_PIN
    #define EXT1_DIR2_PIN ORIG_E1_DIR_PIN
    #define EXT1_INVERSE2 0
    #define EXT1_ENABLE2_PIN ORIG_E1_ENABLE_PIN
    #define EXT1_MAX_FEEDRATE 50
    #define EXT1_MAX_START_FEEDRATE 20
    #define EXT1_MAX_ACCELERATION 5000
    #define EXT1_HEAT_MANAGER 1
    #define EXT1_PREHEAT_TEMP 190
    #define EXT1_WATCHPERIOD 1
    #define EXT1_PID_INTEGRAL_DRIVE_MAX 230
    #define EXT1_PID_INTEGRAL_DRIVE_MIN 40
    #define EXT1_PID_PGAIN_OR_DEAD_TIME 7
    #define EXT1_PID_I 2
    #define EXT1_PID_D 40
    #define EXT1_PID_MAX 255
    #define EXT1_ADVANCE_K 0
    #define EXT1_ADVANCE_L 0
    #define EXT1_ADVANCE_BACKLASH_STEPS 0
    #define EXT1_WAIT_RETRACT_TEMP 150
    #define EXT1_WAIT_RETRACT_UNITS 0
    #define EXT1_SELECT_COMMANDS ""
    #define EXT1_DESELECT_COMMANDS ""
    #define EXT1_EXTRUDER_COOLER_PIN -1
    #define EXT1_EXTRUDER_COOLER_SPEED 255
    #define EXT1_DECOUPLE_TEST_PERIOD 12000
    #define EXT1_JAM_PIN ORIG_Y_MIN_PIN
    #define EXT1_JAM_PULLUP 1

    #define FEATURE_RETRACTION 1
    #define AUTORETRACT_ENABLED 0
    #define RETRACTION_LENGTH 3
    #define RETRACTION_LONG_LENGTH 13
    #define RETRACTION_SPEED 20
    #define RETRACTION_Z_LIFT 0
    #define RETRACTION_UNDO_EXTRA_LENGTH 0
    #define RETRACTION_UNDO_EXTRA_LONG_LENGTH 0
    #define RETRACTION_UNDO_SPEED 10
    #define FILAMENTCHANGE_X_POS 0
    #define FILAMENTCHANGE_Y_POS 0
    #define FILAMENTCHANGE_Z_ADD 20
    #define FILAMENTCHANGE_REHOME 2
    #define FILAMENTCHANGE_SHORTRETRACT 5
    #define FILAMENTCHANGE_LONGRETRACT 100
    #define JAM_METHOD 3
    #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 5
    #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 TEMP_GAIN 0
    #define HEATER_PWM_SPEED 0
    #define COOLER_PWM_SPEED 2

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

    #define HAVE_HEATED_BED 1
    #define HEATED_BED_PREHEAT_TEMP 55
    #define HEATED_BED_MAX_TEMP 120
    #define SKIP_M190_IF_WITHIN 5
    #define HEATED_BED_SENSOR_TYPE 8
    #define HEATED_BED_SENSOR_PIN 2
    #define HEATED_BED_HEATER_PIN 3
    #define HEATED_BED_SET_INTERVAL 5000
    #define HEATED_BED_HEAT_MANAGER 1
    #define HEATED_BED_PID_INTEGRAL_DRIVE_MAX 255
    #define HEATED_BED_PID_INTEGRAL_DRIVE_MIN 80
    #define HEATED_BED_PID_PGAIN_OR_DEAD_TIME 43.837
    #define HEATED_BED_PID_IGAIN 1.027
    #define HEATED_BED_PID_DGAIN 467.926
    #define HEATED_BED_PID_MAX 255
    #define HEATED_BED_DECOUPLE_TEST_PERIOD 300000
    #define MIN_EXTRUDER_TEMP 150
    #define MAXTEMP 270
    #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 true
    #define ENDSTOP_X_MIN_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_X false
    #define ENDSTOP_PULLUP_Y_MIN true
    #define ENDSTOP_Y_MIN_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_Y false
    #define ENDSTOP_PULLUP_Z_MIN false
    #define ENDSTOP_Z_MIN_INVERTING false
    #define MIN_HARDWARE_ENDSTOP_Z false
    #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 true
    #define ENDSTOP_PULLUP_Y_MAX true
    #define ENDSTOP_Y_MAX_INVERTING false
    #define MAX_HARDWARE_ENDSTOP_Y true
    #define ENDSTOP_PULLUP_Z_MAX true
    #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 true
    #define min_software_endstop_y true
    #define min_software_endstop_z true
    #define max_software_endstop_x false
    #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 5
    #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 5
    #define ENDSTOP_Y_BACK_ON_HOME 5
    #define ENDSTOP_Z_BACK_ON_HOME 5
    #define ALWAYS_CHECK_ENDSTOPS 1
    #define MOVE_X_WHEN_HOMED 0
    #define MOVE_Y_WHEN_HOMED 0
    #define MOVE_Z_WHEN_HOMED 0

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

    #define X_ENABLE_ON 0
    #define Y_ENABLE_ON 0
    #define Z_ENABLE_ON 0
    #define DISABLE_X 0
    #define DISABLE_Y 0
    #define DISABLE_Z 0
    #define DISABLE_E 1
    #define INVERT_X_DIR 1
    #define INVERT_X2_DIR 0
    #define INVERT_Y_DIR 0
    #define INVERT_Y2_DIR 0
    #define INVERT_Z_DIR 1
    #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 200
    #define Y_MAX_LENGTH 200
    #define Z_MAX_LENGTH 366.763
    #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 100


    #define DISTORTION_CORRECTION 1
    #define DISTORTION_CORRECTION_POINTS 5
    #define DISTORTION_LIMIT_TO 1
    #define DISTORTION_CORRECTION_R 130
    #define DISTORTION_PERMANENT 1
    #define DISTORTION_UPDATE_FREQUENCY 16
    #define DISTORTION_START_DEGRADE 0.5
    #define DISTORTION_END_HEIGHT 1
    #define DISTORTION_EXTRAPOLATE_CORNERS 1
    #define DISTORTION_XMIN 10
    #define DISTORTION_YMIN 10
    #define DISTORTION_XMAX 190
    #define DISTORTION_YMAX 190

    // ##########################################################################################
    // ## 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_DIAGONAL_ROD 291.06 // mm
    #define DELTA_ALPHA_A 209.74
    #define DELTA_ALPHA_B 329.67
    #define DELTA_ALPHA_C 90
    #define DELTA_RADIUS_CORRECTION_A 0
    #define DELTA_RADIUS_CORRECTION_B 0
    #define DELTA_RADIUS_CORRECTION_C 0
    #define DELTA_DIAGONAL_CORRECTION_A 0
    #define DELTA_DIAGONAL_CORRECTION_B 0
    #define DELTA_DIAGONAL_CORRECTION_C 0
    #define END_EFFECTOR_HORIZONTAL_OFFSET 0
    #define CARRIAGE_HORIZONTAL_OFFSET 0
    #define DELTA_MAX_RADIUS 140
    #define ROD_RADIUS 143.376
    #define PRINTER_RADIUS 143.376
    #define DELTA_HOME_ON_POWER 1
    #define STEP_COUNTER
    #define DELTA_X_ENDSTOP_OFFSET_STEPS 0
    #define DELTA_Y_ENDSTOP_OFFSET_STEPS 0
    #define DELTA_Z_ENDSTOP_OFFSET_STEPS 0
    #define DELTA_FLOOR_SAFETY_MARGIN_MM 15
    //#define SOFTWARE_LEVELING

    #define DELTASEGMENTS_PER_PRINTLINE 16
    #define STEPPER_INACTIVE_TIME 300L
    #define MAX_INACTIVE_TIME 0L
    #define MAX_FEEDRATE_X 300
    #define MAX_FEEDRATE_Y 300
    #define MAX_FEEDRATE_Z 300
    #define HOMING_FEEDRATE_X 80
    #define HOMING_FEEDRATE_Y 80
    #define HOMING_FEEDRATE_Z 80
    #define HOMING_ORDER HOME_ORDER_ZXY
    #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 1750
    #define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 1750
    #define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 1750
    #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 3000
    #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 3000
    #define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 3000
    #define INTERPOLATE_ACCELERATION_WITH_Z 1
    #define ACCELERATION_FACTOR_TOP 100
    #define MAX_JERK 32
    #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 1
    #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 1
    #define EMERGENCY_PARSER 0
    #define ACK_WITH_LINENUMBER 1
    #define KEEP_ALIVE_INTERVAL 2000
    #define WAITING_IDENTIFIER "wait"
    #define ECHO_ON_EXECUTE 1
    #define EEPROM_MODE 2
    #undef PS_ON_PIN
    #define PS_ON_PIN -1
    #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 0
    #define UI_BED_COATING 1
    #define FEATURE_Z_PROBE 1
    // #define Z_PROBE_ACCELPROBE 1
    // #define Z_ACCELPROBE_EN_PIN 13
    #define EXTRUDER_IS_Z_PROBE 1
    #define Z_PROBE_DISABLE_HEATERS 1
    #define Z_PROBE_BED_DISTANCE 20
    #define Z_PROBE_PIN 10
    // Z_PROBE_PIN is Z_MIN pin
    #define Z_PROBE_PULLUP false
    #define Z_PROBE_ON_HIGH true
    #define Z_PROBE_X_OFFSET 0
    #define Z_PROBE_Y_OFFSET 0
    #define Z_PROBE_WAIT_BEFORE_TEST false
    #define Z_PROBE_SPEED 100
    #define Z_PROBE_XY_SPEED 60
    #define Z_PROBE_SWITCHING_DISTANCE 5
    #define Z_PROBE_REPETITIONS 3
    #define Z_PROBE_USE_MEDIAN 1
    #define Z_PROBE_HEIGHT 0.18 // was set to -0.1
    #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 -123.565
    #define Z_PROBE_Y1 -71.34
    #define Z_PROBE_X2 123.565
    #define Z_PROBE_Y2 -71.34
    #define Z_PROBE_X3 0
    #define Z_PROBE_Y3 142.68
    #define BED_LEVELING_METHOD 0
    #define BED_CORRECTION_METHOD 0
    #define BED_LEVELING_GRID_SIZE 5
    #define BED_LEVELING_REPETITIONS 5
    #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 0
    #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 1
    #undef SDCARDDETECT
    #define SDCARDDETECT 81
    #undef SDCARDDETECTINVERTED
    #define SDCARDDETECTINVERTED 0
    #endif
    #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 13
    #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 LANGUAGE_RU_ACTIVE 0
    #define UI_PRINTER_NAME "EWT 01"
    #define UI_PRINTER_COMPANY ""
    #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
    #define UI_HEAD "E:%ec/%Ec\002 B:%eb/%Eb\002"
    /**
    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 150
    #define UI_SET_MAX_EXTRUDER_TEMP 270
    #define UI_SET_EXTRUDER_FEEDRATE 2
    #define UI_SET_EXTRUDER_RETRACT_DISTANCE 3


    #define NUM_MOTOR_DRIVERS 0



    #endif

    /* 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": 80,
    "zStepsPerMM": 80,
    "xInvert": "1",
    "x2Invert": 0,
    "xInvertEnable": 0,
    "eepromMode": 2,
    "yInvert": "0",
    "y2Invert": 0,
    "yInvertEnable": 0,
    "zInvert": "1",
    "z2Invert": 0,
    "z3Invert": 0,
    "z4Invert": 0,
    "zInvertEnable": 0,
    "extruder": [
    {
    "id": 0,
    "heatManager": 1,
    "pidDriveMin": 80,
    "pidDriveMax": 230,
    "pidMax": 255,
    "sensorType": 8,
    "sensorPin": "TEMP_0_PIN",
    "heaterPin": "HEATER_0_PIN",
    "maxFeedrate": 50,
    "startFeedrate": 20,
    "invert": "1",
    "invertEnable": "0",
    "acceleration": 5000,
    "watchPeriod": 1,
    "pidP": 48.3,
    "pidI": 9.7,
    "pidD": 60,
    "advanceK": 0,
    "advanceL": 0,
    "waitRetractTemp": 150,
    "waitRetractUnits": 0,
    "waitRetract": 0,
    "stepsPerMM": 370,
    "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": "ORIG_X_MIN_PIN",
    "jamPullup": "1",
    "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
    },
    {
    "id": 1,
    "heatManager": 1,
    "pidDriveMin": 40,
    "pidDriveMax": 230,
    "pidMax": 255,
    "sensorType": 8,
    "sensorPin": "TEMP_0_PIN",
    "heaterPin": "HEATER_0_PIN",
    "maxFeedrate": 50,
    "startFeedrate": 20,
    "invert": "1",
    "invertEnable": "0",
    "acceleration": 5000,
    "watchPeriod": 1,
    "pidP": 7,
    "pidI": 2,
    "pidD": 40,
    "advanceK": 0,
    "advanceL": 0,
    "waitRetractTemp": 150,
    "waitRetractUnits": 0,
    "waitRetract": 0,
    "stepsPerMM": 370,
    "coolerPin": -1,
    "coolerSpeed": 255,
    "selectCommands": "",
    "deselectCommands": "",
    "xOffset": 0,
    "yOffset": 0,
    "zOffset": 0,
    "xOffsetSteps": 0,
    "yOffsetSteps": 0,
    "zOffsetSteps": 0,
    "stepper": {
    "name": "Extruder 1",
    "step": "ORIG_E1_STEP_PIN",
    "dir": "ORIG_E1_DIR_PIN",
    "enable": "ORIG_E1_ENABLE_PIN"
    },
    "advanceBacklashSteps": 0,
    "decoupleTestPeriod": 12,
    "jamPin": "ORIG_Y_MIN_PIN",
    "jamPullup": "1",
    "mirror": "0",
    "invert2": "0",
    "stepper2": {
    "name": "Extruder 1",
    "step": "ORIG_E1_STEP_PIN",
    "dir": "ORIG_E1_DIR_PIN",
    "enable": "ORIG_E1_ENABLE_PIN"
    },
    "preheat": 190
    }
    ],
    "uiLanguage": 0,
    "uiController": 0,
    "xMinEndstop": 0,
    "yMinEndstop": 0,
    "zMinEndstop": 0,
    "xMaxEndstop": 2,
    "yMaxEndstop": 2,
    "zMaxEndstop": 2,
    "x2MinEndstop": 0,
    "y2MinEndstop": 0,
    "x2MaxEndstop": 0,
    "y2MaxEndstop": 0,
    "motherboard": 301,
    "driveSystem": 3,
    "xMaxSpeed": 250,
    "xHomingSpeed": 80,
    "xTravelAcceleration": 3000,
    "xPrintAcceleration": 1750,
    "yMaxSpeed": 250,
    "yHomingSpeed": 80,
    "yTravelAcceleration": 3000,
    "yPrintAcceleration": 1750,
    "zMaxSpeed": 250,
    "zHomingSpeed": 80,
    "zTravelAcceleration": 3000,
    "zPrintAcceleration": 1750,
    "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": 300,
    "maxInactiveTime": 0,
    "xMinPos": 0,
    "yMinPos": 0,
    "zMinPos": 0,
    "xLength": 200,
    "yLength": 200,
    "zLength": 366.763,
    "alwaysCheckEndstops": "1",
    "disableX": "0",
    "disableY": "0",
    "disableZ": "0",
    "disableE": "1",
    "xHomeDir": "-1",
    "yHomeDir": "-1",
    "zHomeDir": 1,
    "xEndstopBack": 5,
    "yEndstopBack": 5,
    "zEndstopBack": 5,
    "deltaSegmentsPerSecondPrint": 180,
    "deltaSegmentsPerSecondTravel": 70,
    "deltaDiagonalRod": 291.06,
    "deltaHorizontalRadius": 143.376,
    "deltaAlphaA": 209.74,
    "deltaAlphaB": 329.67,
    "deltaAlphaC": 90,
    "deltaDiagonalCorrA": 0,
    "deltaDiagonalCorrB": 0,
    "deltaDiagonalCorrC": 0,
    "deltaMaxRadius": 140,
    "deltaFloorSafetyMarginMM": 15,
    "deltaRadiusCorrA": 0,
    "deltaRadiusCorrB": 0,
    "deltaRadiusCorrC": 0,
    "deltaXOffsetSteps": 0,
    "deltaYOffsetSteps": 0,
    "deltaZOffsetSteps": 0,
    "deltaSegmentsPerLine": 20,
    "stepperHighDelay": 0,
    "directionDelay": 0,
    "stepDoublerFrequency": 12000,
    "allowQuadstepping": "1",
    "doubleStepDelay": 0,
    "maxJerk": 32,
    "maxZJerk": 0.3,
    "moveCacheSize": 16,
    "moveCacheLow": 10,
    "lowTicksPerMove": 250000,
    "enablePowerOnStartup": "1",
    "echoOnExecute": "1",
    "sendWaits": "1",
    "ackWithLineNumber": "1",
    "killMethod": 1,
    "useAdvance": "1",
    "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": "1",
    "enableZProbing": "1",
    "extrudeMaxLength": 160,
    "homeOrder": "HOME_ORDER_ZXY",
    "featureController": 13,
    "uiPrinterName": "EWT 01",
    "uiPrinterCompany": "",
    "uiPagesDuration": 4000,
    "uiHeadline": "E:%ec\/%Ec\\002 B:%eb\/%Eb\\002",
    "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": 150,
    "uiMaxExtruderTemp": 270,
    "uiExtruderFeedrate": 2,
    "uiExtruderRetractDistance": 3,
    "uiSpeeddependentPositioning": "0",
    "maxBedTemperature": 120,
    "bedSensorType": 8,
    "bedSensorPin": "2",
    "bedHeaterPin": 3,
    "bedHeatManager": 1,
    "bedPreheat": 55,
    "bedUpdateInterval": 5000,
    "bedPidDriveMin": 80,
    "bedPidDriveMax": 255,
    "bedPidP": 87.86,
    "bedPidI": 3.01,
    "bedPidD": 641.82,
    "bedPidMax": 255,
    "bedDecoupleTestPeriod": 300,
    "caseLightPin": -1,
    "caseLightDefaultOn": "1",
    "bedSkipIfWithin": 5,
    "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": 5,
    "pidControlRange": 20,
    "skipM109Within": 2,
    "extruderFanCoolTemp": 50,
    "minTemp": 150,
    "maxTemp": 270,
    "minDefectTemp": -10,
    "maxDefectTemp": 290,
    "arcSupport": "1",
    "featureMemoryPositionWatchdog": "1",
    "forceChecksum": "0",
    "sdExtendedDir": "1",
    "featureFanControl": "1",
    "fanPin": "ORIG_FAN2_PIN",
    "featureFan2Control": "0",
    "fan2Pin": "ORIG_FAN2_PIN",
    "fanThermoPin": "ORIG_FAN2_PIN",
    "fanThermoMinPWM": 128,
    "fanThermoMaxPWM": 255,
    "fanThermoMinTemp": 40,
    "fanThermoMaxTemp": 60,
    "fanThermoThermistorPin": "TEMP_0_PIN",
    "fanThermoThermistorType": 8,
    "scalePidToMax": 0,
    "zProbePin": 4,
    "zProbeBedDistance": 20,
    "zProbeDisableHeaters": "0",
    "zProbePullup": "1",
    "zProbeOnHigh": "0",
    "zProbeXOffset": 0,
    "zProbeYOffset": 0,
    "zProbeWaitBeforeTest": "0",
    "zProbeSpeed": 25,
    "zProbeXYSpeed": 50,
    "zProbeHeight": -0.1,
    "zProbeStartScript": "",
    "zProbeFinishedScript": "",
    "featureAutolevel": "1",
    "zProbeX1": -123.565,
    "zProbeY1": -71.34,
    "zProbeX2": 123.565,
    "zProbeY2": -71.34,
    "zProbeX3": 0,
    "zProbeY3": 142.68,
    "zProbeSwitchingDistance": 10,
    "zProbeRepetitions": 3,
    "zProbeMedian": "1",
    "zProbeEveryPoint": "",
    "sdSupport": "1",
    "sdCardDetectPin": 81,
    "sdCardDetectInverted": "0",
    "uiStartScreenDelay": 1000,
    "xEndstopBackMove": 5,
    "yEndstopBackMove": 5,
    "zEndstopBackMove": 5,
    "xEndstopRetestFactor": 3,
    "yEndstopRetestFactor": 3,
    "zEndstopRetestFactor": 3,
    "xMinPin": -1,
    "yMinPin": -1,
    "zMinPin": -1,
    "xMaxPin": "ORIG_X_MAX_PIN",
    "yMaxPin": "ORIG_Y_MAX_PIN",
    "zMaxPin": "ORIG_Z_MAX_PIN",
    "x2MinPin": -1,
    "y2MinPin": -1,
    "x2MaxPin": -1,
    "y2MaxPin": -1,
    "deltaHomeOnPower": "1",
    "fanBoardPin": -1,
    "heaterPWMSpeed": 0,
    "featureBabystepping": "1",
    "babystepMultiplicator": 1,
    "pdmForHeater": "0",
    "pdmForCooler": "0",
    "psOn": -1,
    "mixingExtruder": "0",
    "decouplingTestMaxHoldVariance": 20,
    "decouplingTestMinTempRise": 1,
    "featureAxisComp": "0",
    "axisCompTanXY": 0,
    "axisCompTanXZ": 0,
    "axisCompTanYZ": 0,
    "retractOnPause": 2,
    "pauseStartCommands": "",
    "pauseEndCommands": "",
    "distortionCorrection": "1",
    "distortionCorrectionPoints": 5,
    "distortionCorrectionR": 130,
    "distortionPermanent": "1",
    "distortionUpdateFrequency": 16,
    "distortionStartDegrade": 0.5,
    "distortionEndDegrade": 1,
    "distortionExtrapolateCorners": "1",
    "distortionXMin": 10,
    "distortionXMax": 190,
    "distortionYMin": 10,
    "distortionYMax": 190,
    "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": 20,
    "filamentChangeRehome": 2,
    "filamentChangeShortRetract": 5,
    "filamentChangeLongRetract": 100,
    "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": 3,
    "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": 50,
    "uiBedCoating": "1",
    "langEN": "1",
    "langDE": "0",
    "langNL": "0",
    "langPT": "0",
    "langIT": "0",
    "langES": "0",
    "langFI": "0",
    "langSE": "0",
    "langFR": "0",
    "langCZ": "0",
    "langPL": "0",
    "langTR": "0",
    "langRU": "0",
    "interpolateAccelerationWithZ": 0,
    "accelerationFactorTop": 100,
    "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": 0,
    "bedCorrectionMethod": 0,
    "bedLevelingGridSize": 5,
    "bedLevelingRepetitions": 5,
    "bedMotor1X": 0,
    "bedMotor1Y": 0,
    "bedMotor2X": 200,
    "bedMotor2Y": 0,
    "bedMotor3X": 100,
    "bedMotor3Y": 200,
    "zProbeRequiresHeating": "0",
    "zProbeMinTemperature": 150,
    "adcKeypadPin": -1,
    "sharedExtruderHeater": "1",
    "extruderSwitchXYSpeed": 100,
    "dualXAxis": "0",
    "boardFanSpeed": 255,
    "keepAliveInterval": 2000,
    "moveXWhenHomed": "0",
    "moveYWhenHomed": "0",
    "moveZWhenHomed": "0",
    "preheatTime": 30000,
    "multiZEndstopHoming": "0",
    "z2MinMaxPin": -1,
    "z2MinMaxEndstop": 0,
    "extruderIsZProbe": "1",
    "boardFanMinSpeed": 0,
    "doorPin": -1,
    "doorEndstop": 0,
    "zhomePreRaise": 0,
    "zhomePreRaiseDistance": 10,
    "dualXResolution": "0",
    "x2axisStepsPerMM": 100,
    "coolerPWMSpeed": 2,
    "maxFanPWM": 255,
    "raiseZOnToolchange": 0,
    "distortionLimitTo": 1,
    "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,
    "TMC2130CSE3": -1,
    "TMC2130CSE4": -1,
    "TMC2130CurrentX": 1000,
    "TMC2130CurrentY": 1000,
    "TMC2130CurrentZ": 1000,
    "TMC2130CurrentE0": 1000,
    "TMC2130CurrentE1": 1000,
    "TMC2130CurrentE2": 1000,
    "TMC2130CurrentE3": 1000,
    "TMC2130CurrentE4": 1000,
    "TMC2130CoolstepTresholdX": 300,
    "TMC2130CoolstepTresholdY": 300,
    "TMC2130CoolstepTresholdZ": 300,
    "microstepX": 16,
    "microstepY": 16,
    "microstepZ": 16,
    "microstepE0": 16,
    "microstepE1": 16,
    "microstepE2": 16,
    "microstepE3": 16,
    "microstepE4": 16,
    "parkPosX": 0,
    "parkPosY": 0,
    "parkPosZ": 100,
    "emergencyParser": 0,
    "hostRescue": "1",
    "MAX31855SwCS": -1,
    "MAX31855SwCLK": -1,
    "tempGain": "0",
    "hasMAX6675": false,
    "hasMAX31855": false,
    "hasMAX31855SW": false,
    "hasGeneric1": false,
    "hasGeneric2": false,
    "hasGeneric3": false,
    "hasUser0": false,
    "hasUser1": false,
    "hasUser2": false,
    "numExtruder": 2,
    "version": 100.4,
    "primaryPortName": ""
    }
    ========== End configuration string ==========

    */



Sign In or Register to comment.