How to upgrade your CR10 v3 to SKR E3 Turbo

I just finished getting my CR10 v3 upgraded to an SKR E3 Turbo board. I was seeing some funny things happening with the stock board, so I decided to change out the board and upgrade at the same time. Only upgrade my printer has is a BLTouch from Creality. I don’t know what their idea of color coding the wires were, but luckily I checked before trusting that.
The wiring was a bit confusing, but here is what I did.

All of the Heater for Bed, Thermistors, Stepper Motor, and Limit switches fit right in with no change.

The SKR has 2 Power connectors. I used the first one as Power IN. and the one next to the HB screw connector as Power OUT. BE VERY CAREFUL OF POLARITY HERE.

Here is the rest

For the display, Plug only one cable between the Display connector on the board to the EXP3 connector on the Display.

For the Hot end Heater:
Cut the connector off, Tint the wires and Screw them into HE0 observing polarity. Just so you don’t go through the same hassle as me, those green terminals pull straight out of the board, making it easy to attach the wires and then pop it back on.

For the Stepper Motor cooling fan:
Plugs into Fan2

For Case cooling fan (back of case):
Cut off connector, Tint wires, and put them in Power OUT.

Parts Fan is the single wire fan connector (labeled kFan) and it plugs straight into Fan0

HE Fan (labeled Fan) and it Plugs into Fan1 ( for this to work requires a firmware change. I will talk about that in the next part of this install. )

The Filament runout plugs into Fil-Det (E0-Stop in some of the diagrams)

and now the BLTouch wires…

You will need a 4 wire connector that fits in the Z-probe connector (Yes 4 wire) This can be one you crimp or if you have the proper 5 pin connector that will work also, you will however only be using 4 of the wires. I used a flat black connector, spliced the wires, and then held it in the socket with a touch of hot glue.
Now the wires

Find the D11 wire, it is attached to another 3 pin connector called +zlimit. If you follow all four wires down… they are all attached to the same ribbon cable. The way I did this was leave the D11 connector on, and cut the +zlimit connector. D11 will be the reference wire and will be cut only after the other 3 are soldered.
Strip and tint the 3 +zlimit wires.

The wires are as follows… in this order on the ribbon cable:

D11 (Servo0)
Zsignal
Ground
5 Volts

The Z-Probe connector on the board is:

Ground don’t use
5 Volts use
D11 (servo0) use
Ground use
zsignal use

Splice your 3 wires to your connector making sure they match up, then cut, tint, and splice the D11 wire to complete the new connector and plug it on the board.

Hope this helps on the HW side. I will try and write up the firmware changes, but since I was already using my own firmware, that was working fine at the time… I will just add the changes compared to a stock CR10v3 configuration files from Marlin.

3 Likes

Thank you. I always love it when people post detailed build experiences so the next people following suit have an easier time of it.

2 Likes

As Promised, I will try and explain the changes I made to the firmware. I am going to try and keep it simple… Just the settings you need to get a SKR E3 Turbo working with CR-10 V2/3 with a BLTouch. Check out Google if you have never compiled software for your printer, there are many good videos. I am assuming you have a good knowledge of the firmware and only need the stuff to get the board working.
I will be using github updates for this. Since color does not appear to be available here… I am only putting the line after it is changed, but it will include the line number. I will be using the newest main branch for this example, and the Configuration files for Creality CR10 V2.

Let’s get started. First copy over the current version of Marlin 2 and the corresponding examples files. Copy all the example files from Creality/CR10v2 to the main Marlin directory.
At this point you have the setup for a Non-BLTouch CR10 v2/3 with bowden extruder and original motherboard.

The files you will need to change are:
configuration.h
configuration_adv.h
pins_BTT_SKR_E3_TURBO.h
platformio.ini

PLATFORMIO.ini
21 default_envs = LPC1769

pins_BTT_SKR_E3_TURBO.h
50 #define Z_STOP_PIN P1_22

configuration.h
115 #define SERIAL_PORT -1
121 #define SERIAL_PORT_2 0
139 #define MOTHERBOARD BOARD_BTT_SKR_E3_TURBO
471 #define HEATER_0_MAXTEMP 275
580 #define EXTRUDE_MAXLENGTH 600
664 #define Z_MIN_ENDSTOP_INVERTING false //(CR10V2_BLTOUCH) Set to true to invert the logic of the endstop.
667 #define Z_MAX_ENDSTOP_INVERTING false //(CR10V2_BLTOUCH) Set to true to invert the logic of the endstop.
668 #define Z_MIN_PROBE_ENDSTOP_INVERTING false //(CR10V2_BLTOUCH) Set to true to invert the logic of the probe.
686 #define X_DRIVER_TYPE TMC2209
687 #define Y_DRIVER_TYPE TMC2209
688 #define Z_DRIVER_TYPE TMC2209
694 #define E0_DRIVER_TYPE TMC2209
749 #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 409.8 }
756 #define DEFAULT_MAX_FEEDRATE { 750, 750, 20, 75 }
871 //#if ENABLED(CR10V2_BLTOUCH)
872 //#define Z_STOP_PIN 19 // Source DWIN2
873 //#endif
1102 #define INVERT_X_DIR true
1103 #define INVERT_Y_DIR true
1104 #define INVERT_Z_DIR false
1124 #define Z_HOMING_HEIGHT 10 // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, …
1127 #define Z_AFTER_HOMING 10 // (mm) Height to move to after homing Z
1302 #define GRID_MAX_POINTS_X 4
1395 #define MANUAL_X_HOME_POS X_MIN_POS -1
1396 #define MANUAL_Y_HOME_POS Y_MIN_POS -1
1838 #define SPEAKER
2011 //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
2097 #define CR10_STOCKDISPLAY

A Few Notes:
Some of these are specific to my printer, and you may need to re-adjust
471, 580, 756, 1124, 1127, 1395, and 1396 are my settings feel free to set anything you like
749 is with a direct drive extruder… If you have Single drive Bowden, ignore But I still recommend you do an extruder length test and adjustment.
1302 I found 25 probes was a bit much… dropped it to 16

configuration_adv.h
376 #define HOTEND_IDLE_TIMEOUT
378 #define HOTEND_IDLE_TIMEOUT_SEC (10*60) // (seconds) Time without extruder movement to trigger protection
379 #define HOTEND_IDLE_MIN_TRIGGER 100 // (°C) Minimum temperature to enable hotend protection
479 #define E0_AUTO_FAN_PIN FAN1_PIN
1621 #define BABYSTEP_MULTIPLICATOR_Z 10 // (steps or mm) Steps or millimeter distance for each Z babystep
2595 #define TMC_DEBUG

A Few Notes:
Only lines 479 and 2595 are necessary rest are optional.
The Currents for the Steppers are default… BE VERY CAREFUL HERE. Check video’s on how to set this.

Let me know if I missed anything.
Steve

1 Like

I did some current testing, and here is what I have mine set to:

X, Y, and extruder are set to 730
Z is set to 850 (based on the dual Z motors)

After 30 Minutes, I am able to keep my finger on the motor. Measuring it shows about 45C, well below the max of 80-100C

Never set this blindly though… Check often on your first print.

Thanks Steve



Hello, I am having some trouble connecting the bl touch it does a self test when the printer powers on but after that you can’t control it , the way I have it connected now is G-V-S-EMPTY-D11 should I swap D11 with S ?

I will need to look at this again… It has been 2 years and mine is still working fine… But memory is not! :slight_smile:
I will try and check this afternoon… More than likely, if you followed what I wrote above, it is the firmware.

sts41

What board do you have?

It’s ok thank you I had to swap D11 with S cable from z limit+ now it’s working.

I followed your guide to install skr i get a sanity check error
#error “BLTOUCH requires Z_MIN_PROBE_ENDSTOP_INVERTING set to false.”
and #error “Please select only one LCD controller option.”
not sure what I’m missing here any advice?

So I checked my settings and here is what I have:
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // Set to true to invert the logic of the probe.
You can try switching it to true and see how the probe reacts.

For the screen (If you are using the original/Stock screen like I am):
#define CR10_STOCKDISPLAY
All other screens must be disabled with // in front of them.

sts41

thanks ill give it try