Adding BL-Touch to a Hictop 3dp-17

Hello all,

tldr; Click here for the instructions

I have wanted to add a glass bed to my printer but have been held up because the standard z-axis proximity sensor for the Hictop series of printers is based on sensing the aluminum in the printer bed itself.  Glass is invisible to this sensor so the result is your nozzle crashing into your new glass bed risking catastrophe.

BL-touch seems to be the sensor that all of the cool kids are using to do their auto bed leveling.  The Bl-Touch actually has a little servo connected to a probe that touches the print bed and lets the system know where the “Real” Zero point is for the Z-axis. All in all the upgrade is not that difficult to do, the difficulty was in getting the wiring correct and then making the config file reflect those changes.  As with everything, there is always a chance you do something differently than I meant or that I am just full of shit.  either way, you make mods to your rig at your own peril.

Make it work!

The Hardware

BL-TouchThere are 2 sets of wires that come off of your BL-Touch, 3 wires (yellow, red, and brown) that run a servo to move and reset the probe, and 2 more wires (Black and White) that are for the switch that is closed when the probe is pushed.

I am not going to talk about how you splice into these wires because I am making the assumption that you know what you want to do in thatregard.  The important bit is where on the motherboard are you going to place the other end of these splices.

The D11 (Servo) Wiring

The Three wire set will plug into the D11 Socket (if you have one) this will drive the servo.  (Just an FYI, if you have the filament runout switch, you will have to deactivate it to use the socket.  More about how to get this back in a later post.)  Be sure to notice that the brown wire (Ground) is in the middle and the VC-5  (Red) is on the outside.  This is not the order of the wires in the connector.

The Z-min (Probe) Wiring

The 2 wire set will go into the Z-min connector, it may be marked Z-. It is a pretty straight forward connector I do not think wire order even matters on this other than it needs to be the Middle and the inner posts that are connected.

The Configuration

The last part of this is setting up the configuration.  It is the most difficult in that it is putzy, and it is the easiest because you just edit a few lines of code.  Basically you have to read through the config and make sure that everything BLTouch related is un-commented, and everything that is Fixed sensor is commented. Here is an example of a config file that was floating around I got from someone in my facebook group. Thanks Zach! Configuration.h You can use this as an example and follow along on your own config and then flash it and you should be all set.

The Offsets

XY Axes

First the X and Y Axis discussion, the Z-Axis will follow.

The most important and challenging part of altering the config about filling in the correct offsets so your printer knows where the BLTouch probe is at so it can properly sample your test bed for the auto meshing. If you miscalculate or fill out a value improperly, there is code that will stop your compile from happening.  The instructions are fairly well documented in the comments, but for those of you that are a little more visual learners here is the nuts and bolts of it.

Your Nozzle, Represented by the big blue “V” is at the point 0,0 in regard to the BLTouch probe you have attached.  You need to tell the firmware where your probe is using the nozzle as the reference point.

If your BL-Touch is in front of the nozzle the numbers are negative for the Y Axis, if behind they are positive.

If your BLTouch is to the left, then you are negative for the X and to the right would as well be positive.

Lets say that the BLTouch were towards the front and to the right, then the numbers would look something like this:
#define X_PROBE_OFFSET_FROM_EXTRUDER  20// X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER  -20// Y offset: -front +behind [the nozzle]

Max and Min Errors

The error checking discussed above has to do with the grid that your firmware will be testing to do its auto level procedures.  In General the firmware will want to test a grid like shown in the diagram.  If you have your probe configured as above 20 right and 20 forward, then it would stand to reason that you cannot test anywhere that the nozzle is closer than 20mm from the front  right part of the bed.  If you have not adjusted your boundaries in the config to reflect the “No Fly Zone” on your bed, then you will get errors when you try to compile.  This area of the config looks like this:


If this was our Config file, the  RIGHT_PROBE_BED_POSITION  would throw an error, it should be a number less than 200  (220-20)



The Z-Axis Offset

To be perfectly honest, I just got lucky on my settings for this.  I will tell you what I did, why i did it, and hopefully it will work for you.   I figured that I would try to set my BL-Touch up in such a way as there was no Z-Axis offset. and then I would adjust and tweak as needed.  I Installed it with some springs on m3 x 24mm screws so I could adjust it easily.  Then I set my nozzle to the width of a piece of paper and I set the depth of the probe to just touch the print bed.  I figured this was the usual .o4 offset and I went with that as my config setting.  I figured any other tweaking I could do in my slicing software.

I then did a G28 to establish “Home”  and I ran a G29 watching very carefully ready to flip the switch if needed.  It probed and sampled all around the bed as shown above.

I ran a Test Bed Print  and adjusted my slicer to -.1 and was good to go.

I hope these have helped you out, you can find me on Facebook or Twitter with the links above if you have any questions.

Related posts

4 Thoughts to “Adding BL-Touch to a Hictop 3dp-17”

  1. Nathaniel Berman

    Hi Tal,

    I am in the process of converting to a BL touch with a bowden e3d setup and am having some trouble getting the BL touch to work. I have the wires extended and I have plugged them into the correct ports on the motherboard however when I power the printer on I get a continuous red flashing from the BL touch which I’ve read means there is a problem with the wiring. I have the metal hictop version without the filament sensor so I am wondering if there is maybe some place in the software that I have to activate the D11 socket (there were already pins in place). I’d love to have your help with troubleshooting this (I’m no good with the software end) – I am running a custom Marlin RC6 version currently.

    1. admin

      I am sorry I have not been able to get back to you sooner. I have had to step away from the printing for a bit.

  2. Carlos

    The black and white wire are inverted. Black is GND.

  3. Carlos

    At least for my printer. (HicTop 3DP12)

Leave a Comment