Creality CR-10 gets Makerbase MKS Robin E3 V1.1 motherboard

First post 29 juli 2023, work in progress...
On this page I have collected my experience with replacing the motherboard of my Creality CR-10 with an MKS Robin E3 V1.1.
My CR-10 is a basic, 12Volt version. I bought the Makerbase version but you could also go for a Big Tree Tech version, both have a repository on GitHub. Compiler issues were reported with the MKS Robin when using NeoPixel but currently, with Marlin 2.1.2.1, it compiles without any problem (see below, not tested yet).
The complete Makerbase repository, based on Marlin 2.0.6.1, is at https://github.com/makerbase-mks/MKS-Robin-E3-E3D/tree/master , is 180 Mb and can be downloaded as a zip (dropdown button "Code"). Check the Wiki at https://github.com/makerbase-mks/MKS-Robin-E3-E3D/wiki


Ad by Google.


The box with Robin E3 V1.1 and 3D Touch.


Assuming you know how to build Marlin with VcCode/PlatformIo https://marlinfw.org/docs/basics/install.html or see https://github.com/makerbase-mks/MKS-Robin-E3-E3D/wiki/Marlin_firmware

  1. There are many videos on youtube about this board but, as always, TeachingTech is the clearest and completest at
    MKS Robin E3 vs BTT SKR E3 Turbo - Complete mainboard upgrade guide and
    his instructions at https://teachingtechyt.github.io/calibration.html.

  2. (Optional) Trying to build "Marlin-2.0.6.1_for_ender3_TMC2209" from the Makerbase repository which goes... bad

    ....
    Building in release mode
    RuntimeError: deque mutated during iteration:
    File "C:\Users\ZeKitez\.platformio\penv\lib\site-packages\platformio\builder\main.py", line 182:
    env.SConscript(env.GetExtraScripts("post"), exports="env")
    File "C:\Users\ZeKitez\.platformio\packages\tool-scons\scons-local-4.5.2\SCons\Script\SConscript.py", line 598:
    return _SConscript(self.fs, *files, **subst_kw)
    File "C:\Users\ZeKitez\.platformio\packages\tool-scons\scons-local-4.5.2\SCons\Script\SConscript.py", line 285:
    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
    File "E:\CloudStation\CloudStation\MakerBase_MKS_Robin_E3_V1.1_CR10\Marlin-2.0.6.1_for_ender3_TMC2209\buildroot\share\PlatformIO\scripts\mks_robin_e3.py", line 5:
    for define in env['CPPDEFINES']:
    ========================= [FAILED] Took 19.61 seconds =========================

    Solution by Impressive-Nebula274: https://www.reddit.com/r/MarlinFirmware/comments/13esg80/using_vscode_to_build_marlin_211_for_a_time_now/
    Modifying (add ".copy()" ) the file that you receive error "for define in env['CPPDEFINES']" from. In my case, it was "mks_robin_e3.py"
    + Original line 5: for define in env['CPPDEFINES']:
    + Modifyed line 5: for define in env['CPPDEFINES'].copy():

    Save and then build again:

    ....
    ========================================= [SUCCESS] Took 57.29 seconds =================================

    Environment Status Duration
    ------------- -------- ------------
    mks_robin_e3 SUCCESS 00:00:57.291
    ========================================= 1 succeeded in 00:00:57.291 ===================================

  3. Before installing new firmware: List existing values by sending M503 to the printer and SAVE the listed values in a file !!!
    So you know the current values for axis steps per unit, max feedrate, etc.

  4. Always after installing new hardware/firmware (minimal):
    - Calibrate Extruder, see https://teachingtechyt.github.io/calibration.html#esteps
    - Calibrate X Y Z, see https://teachingtechyt.github.io/calibration.html#xyzsteps
    - optional: more settings to calibrate, just see TeachingTech's pages.

  5. Marlin 2.1.2.1 for MKS Robin E3 with config CR10 V3
    Download https://marlinfw.org/meta/download/ the zip and the Configuration for the CR-10. I used config https://github.com/MarlinFirmware/Configurations/tree/release-2.1.2.1/config/examples/Creality/CR-10%20V3 and then changed:

    platformio.ini :
       default_envs = mks_robin_e3

    Configuration.h :
       #define MOTHERBOARD BOARD_MKS_ROBIN_E3_V1_1
       #define SERIAL_PORT 1
       #define SERIAL_PORT_2
       #define BAUDRATE_2 250000
       #define X_DRIVER_TYPE TMC2209
       #define Y_DRIVER_TYPE TMC2209
       #define Z_DRIVER_TYPE TMC2209
       #define E0_DRIVER_TYPE TMC2209
       #define HEATER_0_MAXTEMP 285
       #define BED_MAXTEMP 110
       #define DEFAULT_Kp 19.89 // value after PID tuning
       #define DEFAULT_Ki 1.41 // value after PID tuning
       #define DEFAULT_Kd 70.01 // value after PID tuning
       #define DEFAULT_AXIS_STEPS_PER_UNIT { 80.00, 80.00, 400.00, 98.50 } // 98.50 value after extruder calibration
       #define DEFAULT_MAX_FEEDRATE { 500, 500, 15, 25 }
       #define MAX_FEEDRATE_EDIT_VALUES { 200, 200, 15, 25 } // ...or, set your own edit limits
       #define DEFAULT_MAX_ACCELERATION { 500, 500, 100, 5000 }
       #define DEFAULT_ZJERK 2.7
       #define INVERT_E0_DIR false
       #define HEATER_0_MAXTEMP 285
       #define BED_MAXTEMP 110
       #define Z_AFTER_HOMING 10 // Uncommented
       // #define FIL_RUNOUT_PIN 2 // Not present
       // #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
       #define CR10_STOCKDISPLAY
       #define NEOPIXEL_PIN PA2

    Configuration_adv.h :
       #define STEALTHCHOP_E
       #define CHOPPER_TIMING CHOPPER_DEFAULT_12V // All axes (override below)
       // #define CHOPPER_TIMING CHOPPER_DEFAULT_24V // My CR10 is 12V
       // #define SQUARE_WAVE_STEPPING // maybe I should enable it... ?

  6. Install board and software, test the display, test the movements of all axis, test the extruder and start calibrating...

  7. Sensorless homing X and Y

  8. 3D Touch

  9. NeoPixel
    With Marlin 2.1.2.1 enabling NeoPixel compiled with out ANY problems. Just uncomment in Configuration.h
    #define NEOPIXEL_LED and set #define NEOPIXEL_PIN PA2 .

Ad by Google.

My Creality or Home