Shipping Lead time: 4-7 weeks
Shipping Lead time: 4-7 weeks
Want to add a capacitive sensor to your new KAY3D CoreXY Conversion Kit Mk2 because your Ender 3's bed is not flat? Or perhaps you're just like us and absolutely hate leveling your bed.
Regardless of your reason, this is going to be a concise guide to help you install the capacitive sensor, a probing auto bed leveling sensor onto your CoreXY machine with the BigTreeTech BTT SKR Mini E3 v1.2 board.
This guide is split into 4 easy to digest sections to help you install a capacitive sensor.
If you much prefer a pre-compiled version for the fixed probe/ capacitive sensor instead, you can find the firmware.bin and source file in the firmware page for the BTT SKR Mini E3 v1.2 here.
This guide will also be based on a Vanilla Marlin install. If you are using KAY3D's Cheetah 5.0 firmware, this guide will not work. Follow the guide of Cheetah 5.0 here if you need to configure auto bed levelling features instead.
Section 1 - Prerequisites:
1) You need the BTT SKR Mini E3 v1.2 board from BigTreeTech. You can get it from either Amazon or Aliexpress. If you have the other boards, you can find capacitive sensor installation instructions on the other guides!
2) Of course, you will also need to have a NPN (normally open) 3-wires capacitive sensor. We recommend buying a decent one from Amazon. You can get a genuine one from Amazon here.
But if you're a risk taker and want to get a cheaper alternative, then we recommend one from Aliexpress here.
3) You will also need a mini PCB that acts as a octocoupler that sits between the 3D printer and the sensor. With a sensor that takes an input of 24v, you cannot have an output of 24V back to the board for a trigger signal. It's guarantee to blow the board. Therefore such a PCB is required. You can find them on Amazon, Aliexpress or purchase ready made auto bed leveling solutions.
4) A capacitive (18mm or 12mm) compatible mount. If you don't have a capacitive sensor mount, you can adopt the time trial and tested Hero Me mount. You can find the required mount and details here. There are also many other mounts that you can find on Thingiverse if you like.
Section 2 - Time for Marlin:
You also need to have a working firmware for your machine already. Please attempt to make a backup of your firmware if there are already modifications done to it.
Alternatively, if you wish to do a fresh install, you can choose your board and follow the instructions on how to install it. Full instructions are included in every different board's page.
Here are the codes that you need to change to in Configuration.h in Marlin.
The easiest way to find these codes is open your Marlin folder in Arduino IDE or VS Code etc and "Crtl + F" them on windows and "Cmd + F" if you're on Mac.
The italic words after // are comments/ explanation for the codes on the left.
You do not have to put them in your code.
For example, if the code that appears on your computer is "// #define ENDSTOPPULLUP_ZMIN_PROBE" but the required code is "#define ENDSTOPPULLUP_ZMIN_PROBE", you will remove the // lines before #define ENDSTOPPULLUP_ZMIN_PROBE and vice versa.
- - -
#define ENDSTOPPULLUP_ZMIN_PROBE
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
#define Z_MIN_ENDSTOP_INVERTING true //Applicable for NPN (normally open sensor). Value should be 'false' if you have a PNP (normally close sensor).
#define Z_MIN_PROBE_ENDSTOP_INVERTING true //Applicable for NPN (normally open sensor). Value should be 'false' if you have a PNP (normally close sensor).
#define FIX_MOUNTED_PROBE //This tells Marlin that your probe is unlike a BLtouch that probes. It's a fixed probe instead with no moving probes or components
#define NOZZLE_TO_PROBE_OFFSET { -49, -11, 0 } // only applicable if you use our hero me 18mm capacitor mount. You can find out more information here
#define MIN_PROBE_EDGE 10 // 10 is a good number. Watch out for your clips if you are using them to hold a printing surface to the heated bed
#define MULTIPLE_PROBING 2 // This allows the capacitive sensor to probe a second time to increase accuracy.
#define Z_MIN_PROBE_REPEATIBILTY_TEST // This gives you a new menu in Marlin. You can either send custom GCODE commands or you can use the menu option to start a repeatability test. Info -> Motion -> M48 Repeatability Test
#define PROBING_HEATERS_OFF // PWM signals from the heated bed may cause inaccurate probe readings. This switches off the heating during probing and heats back up after probing is done. Refer to below section for additional GCODE to be added in your start script if you decide to enable this option.
#define MIN_SOFTWARE_ENDSTOPS // This allows bed size limitations to be obeyed with reference to end stops. Prevents crashing of X carriage from crashing into front, rear, left & right of printer
//#define MIN_SOFTWARE_ENDSTOP_Z // This allows Z probe to go below negative when tuning for Z Probe Offset
#define AUTO_BED_LEVELING_BILINEAR // The type of bed leveling we suggest. You can try other methods if you like
#define GRID_MAX_POINTS_X 5 // Default's at 3. Creality's bed are too warped for us. We set it at 5 for best results
#define Z_SAFE_HOMING // This allows your printer to home in the middle of the build plate
#HOMING_FEEDRATE_Z (8*60) // This is a lot slower as compared to stock homing speeds in Z. Increase only if you check that Z probe results are not affected.
In Configuration_adv.h file,
#define BABYSTEP_ZPROBE_OFFSET // use this function to lower your Z when calibrating for Z Probe Offset
Once you make the changes, hit the compile button in VS code and wait for the compilation to be completed. Once done, navigate to your .pio file, locate firmware.bin file and place it in the root of your SD card. Once done, place the SD card in your printer but do not turn on your machine yet! We need to do some wiring configurations.
If you decide to enable #define PROBING_HEATERS_OFF, be sure to add the following GCODE after the G29 command:
M190 S[first_layer_bed_temperature] ; wait for bed temp
M109 S[first_layer_temperature] ; wait for extruder temp
... then your reset extruder/ purge line command etc.
Section 3 - Wiring for a NPN Capacitive Sensor & BTT SKR Mini E3 v1.2:
There are two parts to wiring a capacitive sensor:
1) Wired connections from the power supply and the capacitive sensor to the mini PCB. The PCB board usually contains mini electronics including but not limited to resistors, capacitors etc.
2) Completing the wiring by connecting the other wires from the sensor, the mini PCB and the board.
As the type of capacitive sensor as well as the number of mini PCBs available in the market range far and wide, we cannot include an all encompassing guide.
However, there's two wires that will be similar regardless of the type of NPN capacitive sensor or mini PCB you use.
From the left, the black and white wires are connected to your Z limit end stop. Usually, the black is ground and the white wire is 5V or less.
Connect the black wire to the ground output and the white one to the signal output of the Mini PCB. When connected correctly, your NPN sensor will send voltage to the end stop ports to tell your printer that something has been triggered.
Now that all the wires have been wired up, close up your controller's case, tighten the bolts and turn on your machine! If your LCD screen is blue and appears blank, don't worry. It should remain blank for the next few seconds. If your capacitive sensor's LED (it should have one) doesn't light up, place an object or simply use your hand place it near the probe. It should light up.
If your capacitive sensor does not light up at all, turn off your machine and double check the wires of the sensor that is connected to the mini PCB and if your black and white wires are connected correctly. Mistakes can happen so do double check!
If your capacitive sensor still does not work after re-checking your wires, you may have a faulty sensor. Please contact the manufacturer/ seller to have it replaced!
Section 4 - Fine Tuning Z Probe Offset
Now that your capacitive sensor works, the last thing we have to do is fine tune the Z Probe Offset and there is nothing better than tuning it with a live print. It's best to print something big with a brim. In Prusa Slicer, we've configured the following print. It's 0.2mm in height so the hotend would print the first box and then move to the 2nd, 3rd and so on and so forth.
You can download the .STL here if you would like to print the same. You can import this .STL into any slicer that you prefer. Cura, Prusa Slicer or even Simplify3D.
Before slicing, be sure you use a skirt first. Below image shows skirt settings in Prusa Slicer.
Slice the STL file with your desired settings and print it on your printer. While the printer is printing the skirt, you will adjust the Z Probe Offset.
You can do that by navigating to Configuration -> Probe Z offset -> Turn clockwise to move the nozzle higher and anti-clockwise to move the nozzle lower. Once the Nozzle is at the correct height for the skirt, click Back and scroll down -> Store Settings
Now your Z Probe Offset is stored in the board's EEPROM, you don't have to change your Z probe offset anymore unless you change filaments etc.
Remember, a PETG and PLA filament are different so do not use the same Z height for all your filaments!