Eazao kit firmware tutorial for other printers

Eazao kit is suitable for most open source FDM 3D printers, including but not limited to FDM models of the following brands: Creality, Anycubic, Artillery, Elegoo, etc.

Although we are currently only upgrading for Ender 3, other FDM printers are also possible. For the modification of the firmware part, please refer to the following process, and upload it to the printer after modification. You need to design the fixed mechanical part of the extruder yourself.

Note: After uploading the firmware, if you want to perform the previous FDM printing, you need to upload the original firmware.

The following tutorial uses Marlin as an example to introduce. You can find here: Ceramic 3D Printer Kit

This kit contains the following parts:

1 x Eazao Zero electric putter kit, 1 x Eazao independent control board, 1 x 12V power adapter, 1 x Ender 3 adapter, 1 x Tube.

For technical questions, please contact: support@eazao.com.

If your FDM model is not Ender 3, you need to modify the printer’s firmware and upload it to the printer. Below we take Marlin firmware as an example to modify, other firmware can refer to this modification, mainly to modify the temperature setting and extruder resolution:

1. Modify the temperature sensor and set the temperature sensor model to 998.

#define TEMP_SENSOR_0 998
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_4 0
#define TEMP_SENSOR_BED 998
#define TEMP_SENSOR_CHAMBER 0

2. Turn off the temperature protection, that is, change the minimum temperature from 170 to 0.

#define PREVENT_COLD_EXTRUSION
#define EXTRUDE_MINTEMP 0

3. Change the Axis Steps Per Unit to 600.

#define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 400, 600 }

4. Add the M302 command in Start_gcode.

For details, see the software setting part in the Eazao Zero manual.

Start_gcode:
G21 ;metric values
G90 ;absolute positioning
M82 ;set extruder to absolute mode
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
G1 Z15.0 F1500 ;move the platform down 15mm
G92 E0 ;zero the extruded length
G1 F200 E3 ;extrude 3mm of feed stock
G92 E0 ;zero the extruded length again
M302
G1 F1500
M302 S0 ; always allow extrusion (disable checking)
M163 S0 P0.9 ; Set Mix Factor
M163 S1 P0.1 ; Set Mix Factor
M164 S0

Note: Be sure to change the temperature setting part in the slicing software to 0.

For a full set of upgrade tutorials, please refer to: FDM ceramic 3D printer upgrade kit tutorial

*** We have only personally upgraded Ender 3, other printers have not done experiments, but it is theoretically feasible and does not guarantee the success of the upgrade. If the modification fails, Eazao reserves the right to explain.

4 thoughts on “Eazao kit firmware tutorial for other printers

  1. Josue says:

    Hi!!
    I have the Ceramic 3D Printer Kit and a Creality ender Max.
    I just download the TH3D_Unified2_CrealityV4X firmware (https://www.th3dstudio.com/hc/downloads/unified-2-firmware/creality/creality-ender-3-max-firmware-v4-2-x-board/) to modify it with the parameters you set, I just can’t find all the ones mentioned in the tutorial.
    This is the code:

    //Ender 3/3 MAX/5 V42X Board Settings
    #if ENABLED(ENDER3_V422_BOARD) || ENABLED(ENDER5_V422_BOARD) || ENABLED(ENDER3_V427_BOARD) || ENABLED(ENDER5_V427_BOARD) || ENABLED(ENDER3_MAX_V422_BOARD) || ENABLED(ENDER3_MAX_V427_BOARD)
    //V42X with TMC Driver Sanity Checks
    #if (ENABLED(V422_TMC220X_DRIVERS) || ENABLED(ENDER3_V427_BOARD) || ENABLED(ENDER5_V427_BOARD) || ENABLED(ENDER3_MAX_V427_BOARD)) && ENABLED(LINEAR_ADVANCE)
    #error “Linear Advance does NOT work on the V4.2.X boards with the TMC drivers due to how Creality has them setup. Disable Linear Advance to continue.”
    #endif

    #if ENABLED(ENDER3_MAX_V422_BOARD) || ENABLED(ENDER3_MAX_V427_BOARD)
    #define MOUNTED_FILAMENT_SENSOR
    #endif

    #define SERIAL_PORT 1

    #define BAUDRATE 115200

    #define CR10_STOCKDISPLAY
    #define RET6_12864_LCD

    #if ENABLED(REVERSE_KNOB_DIRECTION)
    #define REVERSE_ENCODER_DIRECTION
    #endif

    #if ENABLED(ENDER3_V422_BOARD) || ENABLED(ENDER5_V422_BOARD) || ENABLED(ENDER3_MAX_V422_BOARD)
    #ifndef MOTHERBOARD
    #define MOTHERBOARD BOARD_CREALITY_V4
    #endif
    #else
    #ifndef MOTHERBOARD
    #define MOTHERBOARD BOARD_CREALITY_V427
    #endif
    #endif

    #if ENABLED(ENDER5_NEW_LEADSCREW)
    #define CREALITY_Z_STEPS 800
    #else
    #define CREALITY_Z_STEPS 400
    #endif

    #if ENABLED(CUSTOM_ESTEPS)
    #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, CREALITY_Z_STEPS, CUSTOM_ESTEPS_VALUE }
    #else
    #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, CREALITY_Z_STEPS, 95 }
    #endif

    #define DEFAULT_MAX_FEEDRATE { 200, 200, 15, 50 }
    #define DEFAULT_MAX_ACCELERATION { 1000, 1000, 500, 5000 }

    #define DEFAULT_ACCELERATION 500
    #define DEFAULT_RETRACT_ACCELERATION 500
    #define DEFAULT_TRAVEL_ACCELERATION 1000

    #define CLASSIC_JERK
    #if ENABLED(CLASSIC_JERK)
    #define DEFAULT_XJERK 7.0
    #define DEFAULT_YJERK 7.0
    #define DEFAULT_ZJERK 0.3
    #endif

    #define DEFAULT_EJERK 5.0

    #define SHOW_BOOTSCREEN

    #define EXTRUDERS 1

    #if ENABLED(ENDER5_V422_BOARD) || ENABLED(ENDER5_V427_BOARD)
    #define X_BED_SIZE 220
    #define Y_BED_SIZE 220
    #define Z_MAX_POS 300
    #elif ENABLED(ENDER3_MAX_V422_BOARD) || ENABLED(ENDER3_MAX_V427_BOARD)
    #define X_BED_SIZE 300
    #define Y_BED_SIZE 300
    #define Z_MAX_POS 340
    #else
    #if ENABLED(ENDER_XTENDER_400)
    #define X_BED_SIZE 400
    #define Y_BED_SIZE 400
    #define Z_MAX_POS 250
    #elif ENABLED(ENDER_XTENDER_300)
    #define X_BED_SIZE 300
    #define Y_BED_SIZE 300
    #define Z_MAX_POS 250
    #elif ENABLED(ENDER_XTENDER_400XL)
    #define X_BED_SIZE 400
    #define Y_BED_SIZE 400
    #define Z_MAX_POS 500
    #elif ENABLED(ENDER_XTENDER_XL)
    #define X_BED_SIZE 235
    #define Y_BED_SIZE 235
    #define Z_MAX_POS 500
    #else
    #define X_BED_SIZE 235
    #define Y_BED_SIZE 235
    #define Z_MAX_POS 250
    #endif
    #endif

    #if ENABLED(HOME_ADJUST)
    #define X_MIN_POS X_HOME_LOCATION
    #define Y_MIN_POS Y_HOME_LOCATION
    #else
    #define X_MIN_POS 0
    #define Y_MIN_POS 0
    #endif

    #if ENABLED(ENDER5_V422_BOARD) || ENABLED(ENDER5_V427_BOARD)
    #define USE_XMAX_PLUG
    #define USE_YMAX_PLUG
    #define USE_ZMIN_PLUG
    #else
    #define USE_XMIN_PLUG
    #define USE_YMIN_PLUG
    #define USE_ZMIN_PLUG
    #endif

    #if ENABLED(ENDER5_V422_BOARD) || ENABLED(ENDER5_V427_BOARD)
    #define X_HOME_DIR 1
    #define Y_HOME_DIR 1
    #define Z_HOME_DIR -1
    #else
    #define X_HOME_DIR -1
    #define Y_HOME_DIR -1
    #define Z_HOME_DIR -1
    #endif

    #if NONE(V6_HOTEND, TH3D_HOTEND_THERMISTOR, KNOWN_HOTEND_THERMISTOR)
    #define TEMP_SENSOR_0 1
    #else
    #if ENABLED(EZBOARD_PT100)
    #define TEMP_SENSOR_0 20
    #elif ENABLED(V6_HOTEND)
    #define TEMP_SENSOR_0 5
    #elif ENABLED(KNOWN_HOTEND_THERMISTOR)
    #define TEMP_SENSOR_0 KNOWN_HOTEND_THERMISTOR_VALUE
    #elif ENABLED(TH3D_HOTEND_THERMISTOR)
    #define TEMP_SENSOR_0 1
    #endif
    #endif

    #define TEMP_SENSOR_1 0
    #define TEMP_SENSOR_2 0
    #define TEMP_SENSOR_3 0
    #define TEMP_SENSOR_4 0
    #define TEMP_SENSOR_5 0
    #define TEMP_SENSOR_6 0
    #define TEMP_SENSOR_7 0

    #if NONE(TH3D_BED_THERMISTOR, KEENOVO_TEMPSENSOR, KNOWN_BED_THERMISTOR, AC_BED)
    #define TEMP_SENSOR_BED 1
    #else
    #if ENABLED(AC_BED)
    #define TEMP_SENSOR_BED 0
    #elif ENABLED(KNOWN_BED_THERMISTOR)
    #define TEMP_SENSOR_BED KNOWN_BED_THERMISTOR_VALUE
    #elif ENABLED(TH3D_BED_THERMISTOR)
    #define TEMP_SENSOR_BED 1
    #elif ENABLED(KEENOVO_TEMPSENSOR)
    #define TEMP_SENSOR_BED 11
    #endif
    #endif

    #define TEMP_SENSOR_PROBE 0
    #define TEMP_SENSOR_CHAMBER 0

    #define DEFAULT_Kp 28.72
    #define DEFAULT_Ki 2.62
    #define DEFAULT_Kd 78.81

    #define DEFAULT_bedKp 462.10
    #define DEFAULT_bedKi 85.47
    #define DEFAULT_bedKd 624.59

    #define ENDSTOPPULLUPS

    #define X_MIN_ENDSTOP_INVERTING false
    #define Y_MIN_ENDSTOP_INVERTING false
    #define Z_MIN_ENDSTOP_INVERTING false
    #define X_MAX_ENDSTOP_INVERTING false
    #define Y_MAX_ENDSTOP_INVERTING false
    #define Z_MAX_ENDSTOP_INVERTING false
    #define Z_MIN_PROBE_ENDSTOP_INVERTING false

    #if ENABLED(CREALITY_V42X_BLTOUCH_ON_5PIN)
    #define USE_PROBE_FOR_Z_HOMING
    #else
    #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
    #endif

    #if ENABLED(ENDER3_V427_BOARD) || ENABLED(ENDER5_V427_BOARD) || ENABLED(V422_TMC220X_DRIVERS) || ENABLED(ENDER3_MAX_V427_BOARD)
    #define X_DRIVER_TYPE TMC2208_STANDALONE
    #define Y_DRIVER_TYPE TMC2208_STANDALONE
    #define Z_DRIVER_TYPE TMC2208_STANDALONE
    #define E0_DRIVER_TYPE TMC2208_STANDALONE
    #elif ENABLED(ENDER3_MAX_V422_BOARD)
    #define X_DRIVER_TYPE TMC2208_STANDALONE
    #define Y_DRIVER_TYPE TMC2208_STANDALONE
    #define Z_DRIVER_TYPE A4988
    #define E0_DRIVER_TYPE A4988
    #else
    #define X_DRIVER_TYPE A4988
    #define Y_DRIVER_TYPE A4988
    #define Z_DRIVER_TYPE A4988
    #define E0_DRIVER_TYPE A4988
    #endif

    #define X_ENABLE_ON 0
    #define Y_ENABLE_ON 0
    #define Z_ENABLE_ON 0
    #define E_ENABLE_ON 0

    #define INVERT_X_DIR false
    #define INVERT_Y_DIR false

    #if ENABLED(ENDER5_V422_BOARD) || ENABLED(ENDER5_V427_BOARD)
    #define INVERT_Z_DIR false
    #else
    #define INVERT_Z_DIR true
    #endif

    #if ENABLED(REVERSE_E_MOTOR_DIRECTION)
    #define INVERT_E0_DIR true
    #else
    #define INVERT_E0_DIR false
    #endif

    #define INVERT_E1_DIR false
    #define INVERT_E2_DIR false
    #define INVERT_E3_DIR false
    #define INVERT_E4_DIR false
    #define INVERT_E5_DIR false
    #define INVERT_E6_DIR false
    #define INVERT_E7_DIR false

    #define ENCODER_PULSES_PER_STEP 4
    #define ENCODER_STEPS_PER_MENU_ITEM 1

    #if ENABLED(EZOUT_ENABLE)
    #define FILAMENT_RUNOUT_SENSOR
    #define SPEAKER_KILL
    #endif

    #if ENABLED(ENDER3_MAX_V422_BOARD) || ENABLED(ENDER3_MAX_V427_BOARD)
    #define FILAMENT_RUNOUT_SENSOR
    #endif

    #if ENABLED(FILAMENT_RUNOUT_SENSOR)
    #define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500.
    #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
    #define FIL_RUNOUT_STATE LOW // Pin state indicating that filament is NOT present.
    #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.
    //#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins.

    // Set one or more commands to execute on filament runout.
    // (After ‘M412 H’ Marlin will ask the host to handle the process.)
    #define FILAMENT_RUNOUT_SCRIPT “M600”

    // After a runout is detected, continue printing this length of filament
    // before executing the runout script. Useful for a sensor at the end of
    // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
    //#define FILAMENT_RUNOUT_DISTANCE_MM 25

    #ifdef FILAMENT_RUNOUT_DISTANCE_MM
    // Enable this option to use an encoder disc that toggles the runout pin
    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
    // large enough to avoid false positives.)
    //#define FILAMENT_MOTION_SENSOR
    #endif
    #endif

    #if ENABLED(EZNEO_220)
    #define RGB_LIGHTS
    #define NEOPIXEL_LED
    #if ENABLED(NEOPIXEL_LED)
    #define NEOPIXEL_TYPE NEO_GRB // NEO_GRBW / NEO_GRB – four/three channel driver type (defined in Adafruit_NeoPixel.h)
    #define NEOPIXEL_PIXELS 15 // Number of LEDs in the strip. (Longest strip when NEOPIXEL2_SEPARATE is disabled.)
    #define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change – LED by LED. Disable to change all LEDs at once.
    #define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255)
    #define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
    #endif

    /**
    * Printer Event LEDs
    *
    * During printing, the LEDs will reflect the printer status:
    *
    * – Gradually change from blue to violet as the heated bed gets to target temp
    * – Gradually change from violet to red as the hotend gets to temperature
    * – Change to white to illuminate work surface
    * – Change to green once print has finished
    * – Turn off after the print has finished and the user has pushed a button
    */
    #if ANY(BLINKM, RGB_LED, RGBW_LED, PCA9632, PCA9533, NEOPIXEL_LED)
    #define PRINTER_EVENT_LEDS
    #endif
    #endif

    #endif
    // End Ender 3/3 MAX/5 V42X Board Settings

    Can you support me by indicating where these parameters are modified?
    Thanks in advance.

    • Jony says:

      You can not modify the firmware first, just follow the tutorial to modify cura. If you need to modify the marlin firmware, please contact your machine manufacturer and let them provide you with the marlin firmware. The version you provided cannot be edited.

Leave a Reply

Your email address will not be published. Required fields are marked *