Connecting BLTOUCH to KFB2.0

A quick tutorial on how to connect a BLTOUCH to KFB2.0. The reason this is slightly different from other boards is because KFB2.0 is missing dedicated Servo pins.

In order to figure this out I ordered a genuine BLTOUCH from Amazon, so if you’re using a clone, this should probably still work but no guarantees.

The BLTOUCH consists of 2 sets of wires. The end stop wires and the servo wires.

The end stop wires will go into the regular end stop connectors but for the servo wires we need to use an alternative to get around the missing servo pins

There are many parts required to wire up a KFB2.0 but for this instructable you will need at least

BLTOUCH Amazon $37.98 (no extended wires, get extended if you need them)

KFB2.0 Amazon $19.57

For this setup we’re going to use/abuse the Z-Max end stop connector to run the servo on the BLTOUCH

Z-Min is used as the actual end stop

The picture says it all. Connect all 5 wires from your BLTOUCH according to the image with the Servo wires being handled by the Z-Max connector.

In the software setup we’ll redirect the pins

A few changes have to be made to enable the BLTOUCH and redirect the pins

In Configuration.h

Pick the MKS_GEN_L board for the KFB2.0

#ifndef MOTHERBOARD<br>  #define MOTHERBOARD BOARD_MKS_GEN_L
#endif

Practically all of the following settings are a matter of uncommenting/commenting your code by adding/removing // (adding these will disable code)

For this setup it is assumed you will be using the Z-Min for the Z endstop

#define USE_XMIN_PLUG<br>#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG

define your ENDSTOPPULLUPs, make sure it uses ENDSTOPPULLUP_ZMIN_PROBE

#define ENDSTOPPULLUPS<br>#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

for my BLTOUCH installation I have the inversion set to false

#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe.

let the system know it uses the probe for Z-min

#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

turn on BLTOUCH

#define BLTOUCH
#if ENABLED(BLTOUCH)
  #define BLTOUCH_DELAY 100   // (ms) Enable and increase if needed
#endif

The following setting are going to depend on where you have mounted your BLTOUCH. Measure the distance from your BLTOUCH pin to your extruder. These values make sure you remain on top of your bed when auto leveling. The values below may (and probably won’t) match your setup

#define X_PROBE_OFFSET_FROM_EXTRUDER 48  // X offset: -left  +right  [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER -2  // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0   // Z offset: -below +above  [the nozzle]

set probe speed

#define XY_PROBE_SPEED 8000

IF you want the probe to do a double touch (or more)

#define MULTIPLE_PROBING 2

The following setting will position your extruder prior to during and after probing

#define Z_CLEARANCE_DEPLOY_PROBE   15 // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_BETWEEN_PROBES  10 // Z Clearance between probe points
#define Z_CLEARANCE_MULTI_PROBE     5 // Z Clearance between multiple probes
//#define Z_AFTER_PROBING           5 // Z position after probing is done

Make the system aware of at least this servo

#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command
#define SERVO_DELAY { 300 }

If you are going to use the BLTOUCH for Auto Bed Leveling set the next values

#define AUTO_BED_LEVELING_BILINEAR

Since the KFB 2.0 does not have its dedicated Servo pins we using the X-Max plug to power the servo that is inside the BLTOUCH.

For this we need to tell the Marlin firmware to redirect some pins.

It is assumed you have selected BOARD_MKS_GEN_L in the configuration.h

open the file pins_MKS_GEN_L.h

in it add the following Make sure you add this AFTER the line #include “pins_RAMPS.h”:

#include "pins_RAMPS.h"
//redirect the servo pin to the X-Max plug
#define SERVO0_PIN 19

If you want to test the pins with g-code m43 you’ll need to enable #define PINS_DEBUGGING in configuration_adv.h

#define PINS_DEBUGGING

Once you’ve uploaded the updated Marlin FW to the board you can test the BLTOUCH.

If your firmware is setup for Safe Z-homing (meaning you can’t home z before having homed X or Y) you either need to turn this feature off in the firmware

in configuration.h comment out Z_SAFE_HOMING

//#define Z_SAFE_HOMING

or have your X and Y end stops connected.

First test is to see what happens with you turn on/power up your board. In this setup the BLTOUCH lights up when powering on and does two servo action. The probe pin comes out twice and retracts

As far as lights is concerned I see the orange light and a small purple led on. (not quite clear in the photo)

connect to the board with something like PronterFace or OCtoPrint and send it g-code m43 (if you’ve enabled PINS_DEBUGGING in the last step)

Check to see if pin 19 is indeed set to SERVO0_pin

Next check out this video for testing the BLTOUCH setup

If this was useful to you in anyway, please consider supporting me through Patreon  or making a small donation here.

3D Printer 24 Volt Upgrade

The Core XY I built and have been gradually upgrading is a beast but it still runs on 12 volts. It runs on a plain RAMPS 1.4 recently upgraded with TMC2130 stepper drivers.

It’s possible to upgrade a RAMPS 1.4 to 24 Volt but it seems easier to go with a 24 Volt board off the shelf. In my case a KFB2.0 (very close relative to the MKS GEN L).

Why upgrade? Well, from all I’ve read, it provides more torque to the stepper motors and it also seems that TMC2130 don’t run well in spreadcycle with 12Volt. Supposedly, the Spreadcycle should get a bit more quiet with 24 Volt.

What will change

Power Switching Unit

Obviously the existing 12 Volt Power switch will be replaced with a 24 Volt one. $19.98 on Amazon: https://amzn.to/2JevH8i Other than the Sticker on the outside stating 24V/15A instead of 12Volt/30A, there is remarkable little difference between the two units (both outside and inside).

Once I ordered the 24Volt power switching unit and hooked it up, I noticed the cooling fan came on immediately. That’s annoying as I want my 3D printer to be quiet in Idle mode.

24 Volt heating cartridge

The heating cartridge inside my hot-end is rated for 12 Volt. It needs to be replaced with a 24 Volt Cartridge. From what I’ve read, on keeping a 12, Volt cartridge, it’s simply not worth the risk. Apparently, the power provided to the 12 Volt Cartridge would quadruple and thus could cause melting the entire heat block. There’s tricks that can be done with PWM sent to the heater but again it’s not worth the risk.

I own a genuine E3D Titan Extruder with E3D hot-end, so I ordered mine directly at e3d-online.com. There are plenty of knock-off on Amazon at $8.99 https://amzn.to/2sDa1s0 (I payed about the same ordering from e3d-online).

Heated Bed

My CoreXY printer runs a 110 Volt heated bed controlled though an SSR so there’s no issue upgrading to 24 Volt (See my instructable on this at instructables.com). The SSR input can handle 3-36 volt.

That said many of the MK2B beds can handle both 12 volt and 24 Volt. It’s just a matter of how to connect the wires.

Cooling Fans

The fan in the power unit is kinda loud so I wanted to replace that right away. I’m a huge fan of the Noctua 40mm cooling fans (their practically noiseless) (Amazon $13.95 https://amzn.to/2HsZdS8).

So I’m replacing all my fans with Noctua Fans. I have 2 80mm fans; one that cools the electronics compartment and one that sits about me stepper which provides for active cooling of my TMC2130 stepper drivers (amazon $15.95 https://amzn.to/2JpABLS).

Then there is the 60mm cooling fan that sits inside the power switching unit so I ordered a 60mm one (Amazon $14.95 https://amzn.to/2Jl49Ke).  Small problem with this fan is that it only comes in 60x25mm. It will not fit inside the power unit. Instead it will be mounted on top. Frankly, I was a bit disappointed at how, it is not as quiet as the 40mm ones. Little more measuring showed more than 12 Volt was passed through the fan. It works but looses it’s quiet quality. I’ll need to figure out something to remedy this.

The Board

My CoreXY has been chugging along on a knockoff RAMPS 1.4 controller board. Technically nothing wrong with it and there are ways of modifying the RAMPS 1.4 to handle 24 Volt but, for my printer I decided to replace the RAMPS with a KFB2.0. It’s a cheap alternative that is ready to take on 24 Volt and can even do a little more (Amazon $19.59 https://amzn.to/2M2Q7io).

The nice thing about the KFB 2.0 (or the very similar MKS GEN L) is that there only one pin difference with the RAMPS 1.4 (additional Pin 7 Output). Most of my Marlin configuration can remain the same.

Steppers

The voltage of stepper is entirely controlled by the drivers and therefor don’t need any change. One of the reasons I am moving to 24 volt is because there’s supposed to be more torque on the motors and with the TMC2130 driver’s it’s supposed to get quieter in Spread Cycle mode.

For this upgrade I replaced my Z-axis stepper motor as it was still a 0.4A (from my original build). I’m replacing it with a 1.7A (just because I have one lying around). Amazon $45.99 https://amzn.to/2JBBOms (5 Pack) .

Too much power

As soon as I clicked “Buy Now” button for the 24 Volt Power unit, it dawned on me that there’s a bunch of 12 Volt stuff left on the Printer.

You may have already figured it out when reading about the fan replacements. What I had overseen was the Noctua cooling fan, the parts cooling fan and my LED lighting. All 12 Volt.

Noctua does not sell 24 volt fans (smaller ones that is) but once you go Noctua, you don’t go back. As a matter of fact in this upgrade, I’ve doubled down on more Noctua(s).

There are a few options with the 24 Volt power and 12 volt fans. The case-cooling fan and hot-end cooling fan could be wired in series. Googling that immediately show an article not to do that.

Instead of trying things in series I’m going to use Step down LM2956 Buck converter (Amazon $7.99 https://amzn.to/2M0QppP).

I thought I would need for for the following:

  • Case cooling fans/controller fan
  • Hot-end cooling fan
  • Parts cooling fan
  • LED lights

One thing I noticed about connecting the parts cooling fan was that when I would send a command like M106 S127 I would expect to see a lower voltage but when I connected the LM2955 Buck converter, the output remained constant at 24 volt.  Someone please explain this to me.

So for the parts cooling fan which is controlled (variably) by the software, I altered the software to not exceed PWM 127 and divide any PWM to the cooling fan by 2 (not entirely 12 Volt but close enough).

Wiring

What you see here (above) is the original wiring. It’s a mess. As part of this upgrade I’m going to pay close attention to wiring and make it all look a bit cleaner.

For the wire management I purchased mini zip ties that allow me to bundle the wires together (and through the board everything is mounted on). Amazon $6.48 https://amzn.to/2HpMrDI

The before picture is above. Below is the new wiring

The old RAMPS 1.4 board uses Dupont connectors. The KFB2.0 does not. It uses JST-XHP 2.54 connectors. This meant a lot of the wires required new crimping.

The JST connectors were all 2/3/4 pin connectors. The following set will do: Amazon $9.87 https://amzn.to/2kRWUyY 

If you don’t have one yet, you’ll need a Crimping Tool. I personally use one like these:

Amazon $22.99 https://amzn.to/2sN1fXE

Conclusion

Upgrading to 12 Volt is one of those upgrades that really doesn’t add anything visually to printer. Torque should be higher so technically I can print at higher speeds. Speed and 3D printer in my opinion shouldn’t be used in the same sentence though. I’d rather wait a little longer, than have to deal with bad prints.

The printer is up and running again and it’s operation seems pretty much the same as before.

Certainly the exercise of wiring the printer properly makes things look much better. The CoreXY comes with a drawers style electronics case and no longer looks like the kitchen nick-nack messy drawer. None of this is related to the 24 Volt upgrade.

Would I do it again? Not sure. I’ve always felt my Corvette printer was running on a pinto engine. But, like many things in life you want; once you get them it’s meh.

I’ll keep you posted on whether the upgrade was worth it. In the meantime don’t forget to subscribe and if you like what you read consider supporting me through Patreon at https://www.patreon.com/Core3d_tech

Wiring the KFB2.0 3D Printer Controller board

The KFB2.0 3D printer controller board

I’m on my 3rd KFB2.0 now (for 3 different printers) and I like these little boards. For the price you pay for them, you really can’t go wrong with them. I found these on Amazon.com for less than $20.

It has everything on it, the RAMPS 1.4 has with the Arduino chip integrated on the board but it’s only a third of the height of a full RAMPS with Shield and LCD adapter attached.

Some other advantages over the RAMPS 1.4:

  • It can take 24V
  • There are two continuous voltage outputs 5Volt and 12Volt
  • It has the ICSP pins which allow you to go with TMC2130 without jumping through hoops for competing pins
  • It has a 4th controllable 12Volt output, which frankly I haven’t figured out yet.

It uses all JST-XHP 2.54 connectors which I think hold a bit better than the loose RAMPS 1.4 connections but it does mean you may have to do some crimping of your own.

The only major downside: It has NO Documentation, at all. I figured out most of it and tried to put it all together here.

It wasn’t overly difficult. It mimics the RAMPS 1.4 and all pin outputs are the same.

Getting Started

In the wiring setup described below I use the following parts. I am an Amazon Affiliate so you would support me by clicking and buying through these links.

I have used the KFB2.0 board on 2 of my printers. The C3Dt c and the low budget (build on a Netgear Case) Cantilever and am pleased with the way it operates.

The KFB2.0: $18.59 https://amzn.to/2G7xQB8

Here’s a list of all the items I have attached to the KFB2.0

Nema 17 1.7A (5 pack) $48.99 https://amzn.to/2pGlEwO

Mk8 Extruder:

V6 Hotend (12V): $18.99 https://amzn.to/2GfIt0U

For end stop control you can go with two different options:

Stepper Cables: $8.59 https://amzn.to/2I56yHY (JSP HX2.54, which fit the KFB2.0)

12V/30Amp Power supply 19.98: https://amzn.to/2pGXlPD

Heated Bed $31.99 https://amzn.to/2IU6NHp  (optional but I will explain the wiring)

Thermistors $8.99 https://amzn.to/2pG01vW

LCD 12864 $14.99 https://amzn.to/2IU7LU3

Stepper Drivers $10.99 https://amzn.to/2I3eCZS

Fans. I’m a huge fan of the Noctua Fans. They are a bit pricier but worth the SUPER quiet:

(If you want to go with the TMC2130, I recommend getting the real deal from trinamic through Filastruder.com). Cheaper knockoffs are available here. They tend to be not that much cheaper and there some bad reviews out there.

Putting the first pieces together

Like the RAMPS 1.4, the KFB2.0 takes the pluggable stepper drivers that run the stepper motors. The cheap option is to go with the a4988 drivers or the totally awesome TMC2130 (not affiliated, but my upgrade instructions can be found here).

If you go with the a4988 driver you first need to insert the 3 jumpers in each of the diver bays.

In the image above I’ve added the pin descriptions around the middle bay. These pins need to correspond with the pins on your driver circuit board (generally found at the bottom of the board

Insert all stepper drivers and make sure all pins went in on both sides (It’s easy to miss).  Once insert it would look something like this (for the a4988 drivers).

(don’t rely on the orientation of the pot meters in this image. TMC2130 and DRV8825 point the other direction. Look at the pin descriptions on the board and driver and orient accordingly).

Wiring the KFB2.0

Do not attach your board to any backing prior to wiring as all the useful information is found on the back of the board. Beyond that wiring is pretty straight forward. The KFB has the exact same pin outputs as the RAMP 1.4 and as a matter of fact, you select the RAMPS 1.4 board in Marlin when configuring the software.

The above image pretty much show all the different connections you might be making.

Your power source (either 12 Volt or 24 Volt) is attached to the XS 12-24V pins. Polarity is very important here, so make sure Positive and Negative and connected properly (there’s a + and – next to the inputs).

Connecting the Fans

As I mentioned earlier, the KFB2.0 has two continuous outputs for a possible fan. This fan would come on the moment you power up the board. It generally connects to the hot-end fan cooling the heat sink above your hot-end.

Polarity matters and fans should be connected accordingly. They generally come with one black and one red wire. Red = + , Black = –

I personally like the Noctua fans. They’re a bit pricey but it’s worth any every penny due to their quiet operation. The Heat sink fan comes on when you turn on your printer and may still on long after your print is done. With these quiet fans I can’t tell the printer is on by sound.

If you are planning on auto bed leveling, you’ll need the 12Volt output for that. In that case, I would recommend the 5 volt Noctua, leaving the 12Volt for other purposes.

Connecting the Heaters

This board has three outputs for heaters.

  • Hot Bed (Heated Bed)
  • Heater0 (primary extruder)
  • Heater1 (second extruder)

-The Hot bed and Heater0 outputs speak for themselves. Hot bed connects to a heated bed (if you use one); Heater0 connects to the hot-end for your first extruder. They don’t care about polarity but make sure you use wire of proper gauge (14-16) as these carry a lot of Amps.

Heater1 is not as straight forward. If you have double extruders you would expect to connect the second one to this channel. This is not the case (and the only flaw I’ve found on this board to date).  Output for the second extruder is sent to the  Fan  channel (not HEATER1). This is a problem if you choose to have dual extruder with a parts fan (then again you may end up needing more fans). I have not been able to get this to work (most of us won’t need it). I’ve tried tracing its pins back to the board but even after doing so I could not get it powered up.

Connecting the Thermistors

For each of the heated elements you use (beds and extruders) you’ll need to connect the thermistors for temperature feedback. 

Generally your hot-end is shipped with heating cartridge and thermistor but for heated beds this is not always the case. You can buy them loose at Amazon for $8.99 (5-pack).

In most cases you’ll be dealing with a hot-end and heated bed in which case you connect to the TEMP0 (hot-end 1) and TEMP-BED (the bed).

Note: any preliminary testing of your electronics requires at least one thermistor connected to the TEMP0 (without software changes). It’s always handy to have a spare thermistor lying around for such cases.

Connecting the end stops

Most 3D printers only need to have the min end stops attached. Reading the min stop along with specifying the dimensions of your printer will keep your axis within the allowed boundaries. For this setup we’ll connect the min end-stops only.

There’s a variety of end stops available ranging from the simple Micro switches to the wired up Makerbot style switches to optical and inducer type end stops. For this setup we’ll look at the simply micro switches and the Makerbot style end stops.

Given that price range is very similar (you can get micro switched for pennies but they tend to come in packs of 25), the only reason you would choose one of the other is the size. The Makerbot comes pre-wired with a little circuit board but you’ll have to account for more room required.

MakerBot style End Stops

The pre-wired Makerbot style end stops have 3 wires from them. Red, Black and Green.

You may have to crimp your own wires to use a JST-XHP 2.54 3 pin connector on both ends (out of the box they come with the plain pin connectors).

Make sure the Red wire is connected to the vcc pin. Connecting them the other way around will fry your board.

Micro switches

If you choose the micro switch, it’s my experience wiring is a bit easier; you only need two wires.

Solder the wires to the two outside pins of the Micro switch and connect them to the GND and Signal pin on the ramps. These are the two pins towards the outside of the board (GND and Signal)

 

Since in this configuration the connection is open you will have to flip the configuration in the Marlin software to reverse the signal.

Connecting the LCD

NOTE: Several reviewers for the KFB2.0 complained about LCD connectors soldered on backwards. This requires to cut of the notches from their cables. I ‘m not dismissing this, but I’ve used 3 boards and have not found this to be a problem. I’ve seen similar complaints using different board and wonder if this could be a wiring mixup issue.

The LCD connects to the two EXP1 and EXP2 connectors on the board via the 2 flat cables that most likely came with your LCD unit. You’re LCD board will have the corresponding EXP1 and EXP2 on the back.

 

Conclusion

I think that covers it. The main downside of the KFB2.0 board is it’s utter lack of specs and documentation. They probably thought they would get away with it because it is so similar to the RAMPS 1.4 (with all the same pin outputs).

What I like about the board is the fact is build much more compact than the RAMPS 1.4 and in fact does act the same.

Some other advantages are an easier means of using the TMC2130 stepper drivers, 12-24volt range ad the 5 and 12volt fan outputs.

I hope this instructional post will mitigate some of the lack of documentation.

If you like what you see here or more importantly if you’ve used some of the designs/instructions I’ve shared via multiple platforms, please consider supporting me via Patreon.com. A few extra dollars a month from enough patrons would certainly help.

Become my Patron at https://www.patreon.com/Core3d_tech

Thank you!!