Category Archives: 3D Printing

Makerbot Replicator 2X BTT SKR 1.4 Turbo

THIS POST IS A WORK IN PROGRESS

Last year I swapped the original mightyboard and botstep drivers from my replicator 2x over to a modern 32 bit board the bigtreetech SKR 1.4 turbo with 2.4″ TFT and converted it to a bowden setup.

Several people asked how so I’m going to attempt to write it it up. I will continue to add to this as I get time.

This is the basic process you need to follow if you want to do it like I have:
– remove mightyboard c/w Botsteps
– remove LCD and mount
– remove original stepper motor wiring and replaced with generic ones.
– cut connectors off the endstops and re-crimp JST connectors on instead.
– fit 24vdc PSU under the bed
– fit BTT SKR in place of mightyboard with 5 x drivers (I used TMC2208s in standalone mode)
– add TFT24 mount and LCD
– add extract fan to base
– add thermistor to bed in place of the Makerbot one.
– cut remaining connectors and changed to JST.
– swap the the thermocouples for M3 thermistors (alternatively you can buy a thermocouple board for the SKR)
– add mosfet for hotend fan control
– edit and compile marlin firmware.
Optional steps I undertook:
– Converted to Bowden setup by changing the extruders for E3D Titan extruders and the Hotends for an E3D V6 Chimera hotend.
– changed the LED strip over to NeoPixel.
– made new lid.

Parts list:
– JST Connector kit and Crimp tool.
– 4 x 1m and 1 x 0.25M HX2.54 NEMA stepper cables (4 pin to 6 pin).
– 24vdc switchmode Power Supply.
– BTT TFT24.
– BTT SKR 1.4 Turbo c/w 5 x drivers (I used TMC2208s in standalone mode)
– Some wires.
– Assorted heatshrink.
– Clear acrylic for Lid.
– Some more wires.
Printed Parts I designed:
– BTT TFT24 Mount for replicator 2X https://www.thingiverse.com/thing:4552223
– Mightyboard rev h SKR 1.4 adapter https://www.thingiverse.com/thing:4700179
– BLtouch mount https://www.thingiverse.com/thing:4258034
– E3D Titan Mount for Replicator 2X https://www.thingiverse.com/thing:4463398
– E3D Chimera Mount for Replicator 2X https://www.thingiverse.com/thing:4699838
– Lid cover parts https://www.thingiverse.com/thing:4463425
– Octoprint Pi Bracket (Not finished)
I would recommend that you have the following tools handy:
– Soldering iron & Solder
– wire cutters
– JST Crimpers
– Screwdrivers
– Allen keys

JST Connectors and crimping:
You will use allot of JST connectors if using the SKR turbo, it is really important that you practice crimping these and ensure you crimp the connectors well, I’m using a cheap ratchet crimper and its pretty rubbish but with practice I’ve managed to crimp the cables pretty well with them.

My conversion process explained:
First job is one of the easiest parts of the process, remove all connectors from the the Mightyboard then pull it c/w Botsteps from the standoffs in the base, remove the front door and front panel then remove the LCD and mount.

Now you can remove the original stepper motor looms and replace them with generic ones, I used 4 x 1m and 1 x 0.25M for the Z motor.

At this point you can mount your PSU if you are using an internal one, I chose to screw mine through the base under the bed with 4 X M3 screws.

You can also mount the BTT TFT24 in the printed case now, this screws into the original mounting holes. Be sure to get the EXT connectors and the 5 pin one in the right order, I cut the black wires and crimped a JST connector on the smaller one to ensure that it couldn’t be reversed.

I mounted the BTT main board using standoffs drilled through the bed base but I have subsequently designed an adaptor that you can screw the BTT onto which then clips onto the original standoffs.

Once the new motherboard and TFT is mounted you can finish the wiring, you’ll need to cut the connectors off the Endstops and from the bottom of the extruder/hotend looms.


The Hotend heater cables can be wired directly into the board however the BTT SKR cannot read thermocouples without an additional board so I would swap them for M3 thermistors, you’ll need to crimp JSTs on the thermistor cables (Don’t worry about the polarity).

For the endstops you only need one ground as these are joined on the PCB so just connect the 5v to VCC, Gnd to Gnd and sig to the signal pin.

As the BTT SKR Turbo can only control one fan, I added a Mosfet for the extruder fans (covered in another post here) I also added an extract fan to the base to pull warm air away from the motherboard and PSU paralleled to the output of the mosfet.

I found once completed that the bed thermistor read very low, I think this is because of its placement within the silicone heat mat.
I added a new 100K thermistor in the heat bed with a bit of thermal compound and aluminium tape to hold it onto the back of the bed surface, this now reads very accurately.

Firmware:
Firstly I am not going to upload my complete firmware as its irrelevant unless you have literally the same setup as me plus If you can’t handle editing code and compiling it you shouldn’t be doing this conversion.

Marlin isn’t complicated and I’m not going into how to compile it but I will help with some useful snippets from mine.

Configuration.h

//Original Hotend Offsets

// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
// For the other hotends it is their distance from the extruder 0 hotend.
#define HOTEND_OFFSET_X { 0.0, 34.6 } // (mm) relative X-offset for each nozzle
#define HOTEND_OFFSET_Y { 0.0, 0.00 }  // (mm) relative Y-offset for each nozzle
#define HOTEND_OFFSET_Z { 0.0, 0.00 }  // (mm) relative Z-offset for each nozzle

//===========================================================================
//============================== Endstop Settings ===========================
//===========================================================================

// @section homing

// Specify here all the endstop connectors that are connected to any endstop or probe.
// Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
//#define USE_XMIN_PLUG
#define USE_YMAX_PLUG
#define USE_ZMIN_PLUG
#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG

// Enable pullup for all endstops to prevent a floating state
#define ENDSTOPPULLUPS
#if DISABLED(ENDSTOPPULLUPS)
  // Disable ENDSTOPPULLUPS to set pullups individually
  //#define ENDSTOPPULLUP_XMAX
  //#define ENDSTOPPULLUP_YMAX
  //#define ENDSTOPPULLUP_ZMAX
  //#define ENDSTOPPULLUP_XMIN
  //#define ENDSTOPPULLUP_YMIN
  //#define ENDSTOPPULLUP_ZMIN
  #define ENDSTOPPULLUP_ZMIN_PROBE
#endif

// Enable pulldown for all endstops to prevent a floating state
//#define ENDSTOPPULLDOWNS
#if DISABLED(ENDSTOPPULLDOWNS)
  // Disable ENDSTOPPULLDOWNS to set pulldowns individually
  //#define ENDSTOPPULLDOWN_XMAX
  //#define ENDSTOPPULLDOWN_YMAX
  //#define ENDSTOPPULLDOWN_ZMAX
  //#define ENDSTOPPULLDOWN_XMIN
  //#define ENDSTOPPULLDOWN_YMIN
  //#define ENDSTOPPULLDOWN_ZMIN
  //#define ENDSTOPPULLDOWN_ZMIN_PROBE
#endif

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING true // Set to true to invert the logic of the probe.

// @section machine

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true

// @section homing

// Direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR -1

// @section machine

// The size of the print bed
#define X_BED_SIZE 235
#define Y_BED_SIZE 150

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS 235
#define Y_MAX_POS 150
#define Z_MAX_POS 150
Configuration_adv.h

#define E0_AUTO_FAN_PIN P1_00

That is kind of it for the basics, I’ll try to add any more information as I think of it but there should be enough here to get you through a conversion, I’ll try and write up my bowden conversion soon.

Have fun.

Still to write up:
– make new lid https://www.thingiverse.com/thing:4463425
– changed the extruders for E3D Titan extruders https://www.thingiverse.com/thing:4463398
– changed the Hotends for E3D V6 Chimera hotend https://www.thingiverse.com/thing:4699838
– changed the LED strip over to NeoPixel

Adding an additional fan on BTT SKR 1.4 Turbo using Marlin

When I built my Replicator 2X using a BTT SKR 1.4 Turbo I was disappointed to learn that only one of the three fans is controllable.

Makerbot Replicator 2X with BTT SKR

I really wanted an automatic extruder fan and with an external MOSFET it’s a really simple thing to setup.

DF Robot MOSFET

All you need to do is connect a MOSFET to a spare pin (I chose the power detect plug).

Using a DFRobot GRAVITY MOSFET (other brands are available) I connected the red to 5v, black to GND and green to pin 1.00

Pwr Detect plug

I connected the fan to the output of the mosfet using the output from fan1 for the VIN but you could obviously use your PSU aswell (Make sure this is the correct voltage for the fan!!)

In configuration.adv I changed the extruder fan pin to “P1_00” from “-1” compiled Marlin, uploaded it and bingo!

Automatic fan on extruder 1!

Really simple and well worth it!