# BLTouch type sensor Z not compensating

I have a BLTouch clone (3DTouch) on my printer (Artillery Sidewinder X1). I installed it on the printer ages ago and has been working fine since. Recently, I did a BTT smart filament sensor upgrade.

I updated and edited both the Marlin firmware and the MKS TFT28 screen firmware to get it to work with the smart filament sensor. The filament sensor runs through the screen not the motherboard so it is enabled in screen firmware instead.

The sensor works fine and every other part of the printer is fine as well, except that after the BLTouch does a G29 (I have it do that before every print in my start G-code, followed by an M500), It will not adjust the Z-axis to compensate for the unevenness of the bed. I can see the Z motors not move and I cannot feel the lead screws rotate in my hand if I touch my hand against them.

I have been through several other forums, videos, etc. on the internet but none of them have the same problem as me and/or their solutions do not fix the problems.

I have also tried flashing the display with the original firmware, which did not work so I guess is that I have something wrong with the firmware. I have checked and double-checked my firmware but maybe there is something I missed or do not know about that could be causing my problem.

Firmware can be found here.

I have tried running the original firmware with changes only made to enable the BLTouch. The Z-axis does still not compensate.

I have also replaced the mainboard. I don’t know if that could affect the operation or not.

Recently, I needed to print a part so I put the default Marlin firmware using the Artillery SWX1 example in Marlin's collection of examples with modifications made only to work with the BLTouch. I can post this copy of the firmware but it is probably identical to the GitHub repo below. This way I could just print with no Z compensation, however, now whenever I try to home the printer or do a G29, the BLTouch doesn't deploy and it will crash into the bed. I posted an unlisted video on YouTube demonstrating the issue here. Also note that in the video, I attempt to move the Z-axis by 1 mm, but instead, the stepper motors spin at full speed and the gantry comes zooming towards the bed.

I tried flashing the firmware yet again and for some reason, the BLTouch worked. it could home is and to a probing routine. I have been using the printer without the compensation and it works fine but it is really bizarre that this is happening. I know it is unlikely to solve the problem, but I am thinking of purchasing a replacement BLTouch. They are only 20 bucks to replace and I did accidental slightly bend the plastic probe before the Z stopped compensating. So is it possible the BLTouch is cactus?

So recently, I noticed when running a G29 T through Octoprint or Pronterface, etc. that the printer will return a set of numbers for each probing point. Does this indicate that the BLTouch has taken the measurements but the printer will not use them to compensate the bed?

I have tried all the answers below.

• Does anybody have an idea of what is wrong? Do I need to add more information? If so please let me know what I should add. May 28 at 6:09
• Is the board exactly the same board (type, brand) you replaced the original with? I hope you are aware of the original 1.1.9 Marlin based firmware at github.com/artillery3d/sidewinder-x1-firmware?
– 0scar
Jun 4 at 10:19
• No, the original was MKS Gen L v1.0 , the new one was an MKS Gen L v2.1 . Jun 4 at 22:02
• Please try when the new sensor arrived and write a proper answer, you can even accept it after 48 hours. Then you can remove your last edit and incorporate that into the answer.
– 0scar
Jun 26 at 11:48

I am not the best with firmware modifications or anything like that, but you could try running your printer through OctoPrint and do the bed leveling through that and maybe that might fix the problem that you are facing.

• OctoPrint is an interface to the printer controller board, if the board/firmware doesn't work, this won't work either.
– 0scar
Jun 2 at 21:19

I have the exact same printer and had the same issue using the same probe. What fixed it for me was adding a M420 S1 after G29.

• That should already be active if you look at the G29 G-code sources. But, worth a try I have seen this also on a very old Marlin version happening.
– 0scar
Jun 6 at 7:37

So I discovered that the fade height must have been set to something really off.

I didn't know this at the time so I thought I should set the fade height to the default 10 mm just to make sure nothing was wrong and tested it. The printer now levels and compensates perfectly!

• Thanks for coming back and provide an answer. It appears that not setting the fading height in firmware recently causes these problems indeed, see e.g. this question.
– 0scar
Aug 15 at 17:33
• It's not that the fade height was not set in the firmware, it was set to something really low making the printer not compensate because the unleveled bed is out of the fade height range but I get what you mean. M420 Z[fade height] fixed it. Aug 15 at 21:01

There is something not correct in your configuration file.

You mention the use of an upgraded controller board from an MKS GEN L to a MKS GEN L v2.1.

...the original was MKS Gen L v1.0 , the new one was an MKS Gen L v2.1...

This change of hardware is not effectively present in your configuration.h file, it currently states the use of the old board:

// Choose the name from boards.h that matches your setup
#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_MKS_GEN_L
#endif


You should have used the board constant called BOARD_MKS_GEN_L_V21.

I honestly don't know if this could fix your problem, but at least all correct pins are then loaded and could help you start searching for the problem.