Auto-Level Mounts for Ender 3, CR-10, Tevo, etc. by Modmike 3d model
Warning. This content is not moderated and could be offensive.
m4
3dmdb logo
Thingiverse
Auto-Level Mounts for Ender 3, CR-10, Tevo, etc. by Modmike

Auto-Level Mounts for Ender 3, CR-10, Tevo, etc. by Modmike

by Thingiverse
Last crawled date: 3 years ago
New!
1) Added BL Touch mount V2.0
2) Added M8 inductive sensor mount - Big thanks to GroovyDrifter for inspiration!
2) Revised SN04 mount to use easier to find M3 20mm bolts
3) Added detailed instructions.
Notes
I have not personally tested the M8 and BL Touch mounts, let me know how they work for you please.
Sensor Mounts
These mounts allow you to add commonly available auto-level sensors to Creality printers such as the CR10, CR10 variants, Ender 2, Ender 3, and Tevo printers that use the stock stock Creality hot end / carriage combinations.
The mounts feature solid mounting points and a wire management clamp along the top to neatly secure and route sensor wires.
All designs are based on the Creality Ender 3 hot end & carriage configuration.
Sensor Selection
I like the SN04 sensors because they are light, robust, and inexpensive. I would avoid the heavier M8 style sensors because their heavier weight could negatively impact print quality, especially at higher speeds.
If you have a glass plate you should get a BL Touch. If you have a thin glass plate on an aluminum bed, an SN04 with an 8mm detection range would probably work.
Required mounting hardware:
SN04: 2X M3 20mm cap or pan head bolt, 2X M3 washers, & 2X M3 Nylock nuts, regular M3s will do in a pinch but will loosen with vibration
BL Touch: 2X M3 10mm cap or pan head bolt. 2X M3 Nylock nuts, 2X M3 washers to shim if necessary, regular M3 nuts will do in a pinch but will loosen with vibration
M8: 1X M3 10mm or 12mm cap or pan head bolt & 1X M3 Nylock nut, regular M3s will do in a pinch but will loosen with vibration.
Sensor performance
While some sensors can work on 5 volts, their minimum input voltage is usually 6V. Using only 5 volts degrades accuracy and shortens detection range, which is a problem if you are using a glass plate.
I highly recommend you power your sensor with 12V or 24V by directly connecting it to your controllers power input terminals. The Ender 3 has a 24V power supply, I am not sure about other Creality printers but they are typically 12V, which also works well.
Firmware
You will need to install a new version of Marlin to enable auto-level capability to your printer. It can be a chore becasue Creality did not install a boot loader. Persevere becasue there are many advantages such as:
1) Adding auto level cpability
2) Adding critical thermal runaway protection to prevent fires
3) Adding useful LCD menus such as bed corner leveling
4) Geting the latest open source version of Marlin and all it's
additional features
5) Most importantly, getting full control of your printer!
I recommend you install Marlin 2.0.x bug fix. Marlin version 1.19 will be the last version for the 1 series. You can download it by going to the following URL and clicking on the "Clone or Download" button, in the upper right hand corner of the page. Select "Download Zip" to download.
https://github.com/MarlinFirmware/Marlin/tree/bugfix-2.0.x
Version 2.0.x requires Platform IO, it does not compile with Arduino IDE. I know this is a real drag but as I said, 1.19 is the end of that branch. If you are ok with 1.19 and familiar with Arduino IDE, then by all means stick with that.
If you want to stay current, you will need to install Platform IO and Atom. Now c'mon, are you a maker or what?!
https://www.letscontrolit.com/wiki/index.php/Tutorial_Install_Platformio
It works great on Mac also! By the way, try to stay away from custom vendor versions provided. They may take up valuable memory you can't spare have trail behind the official version.
Here are a few great video tutorials. I prefer the USBAsp method but most people seem to prefer the Arduino method.
How to flash firmware with USBAsp:
https://www.youtube.com/watch?v=AQX_AEdXqt4
How to flash firmware with an Arduino board:
https://www.youtube.com/watch?v=QWwtbmg_AxQ
How to configure Marlin to fit in limited memory:
https://www.youtube.com/watch?v=2TrGeL8ZdGU&t=18s
Installation
If you are powering the sensor with anything more than 5V (and you really should be), you will need to reduce the sensors signal wire output voltage.
WARNING!
If you do not put a voltage divider or Schottky diode on the sensor's output wire, you WILL BLOW YOUR BOARD!
I initially tried a Voltage divider but they can be tricky to setup becasue most modern sensors already include a 10K pulldown resistor in their circuit. Worse still, they can heat up quite a bit, especially at 24V.
To simplify installation and better protect your controller board, I recommend using a commonly available 1N4148 30V (or more) Schottkey barrier diode. It will stop any current from flowing to your boards signal pin and destroying it. An added benefit is that most diodes fail in the open position, further protecting your board.
I ended up using a Bat85,113 becasue it's what I had on hand.
Wiring
What follows is for the SN04 and M8, the BL-Touch works using the servo pin. Please refer to it's instructions for wiring.
First, make sure you have the right wiring colors for your particular sensor. My color codes may not be the same as yours, although most of them seem similar.
Refer to the included schematic and make sure you have it handy to refer back to easily.
Strip the wires and connect as follows:
Vcc (typically brown) goes to the positive terminal of your power source, such as power supply.
Ground (typically blue, yes I know pretty weird and counter intuitive) goes to the ground (-) of your power source.
Signal (typically black, seriously? What the heck were they thinking?) goes to the diode side with the black stripe. The other end of the diode goes to the signal pin of your controllers Z end stop connector.
I highly recommend you solder the diode to the signal wire and crimp a dupont connector on the other end of the diode for security's sake. If the wire comes loose ,you could have a nice bed crash, don't ask me how I know!
Checking your work
Before connecting the signal wire to your controller, power up and check the amperage at the end of the diode going to the signal pin, it should be 0. If not, you wired it backwards or the diode is shorted.
Now set your multimeter to DC Volts and check the voltage at the signal pin. You might be surprised to see 24V or 12V (voltage will be equal to the power source you used to drive the sensor) coming out of the diode.
This is normal and expected. The diode stops current (amps) not voltage from flowing to the sensor pin, thereby perfectly protetcing your board.
The best way to figure out which of the 2 or 3 pins on your Z endstop is the signal pin, find the schematics. 3 pin connectors typically have the signal pin in the middle, as per typical Ramps boards.
If you can't find the conector, use a multi tester to test each pin. If you get 5V on a 2 pin connector then the other pin is signal. DO NOT connect to 5V.
Sensor offsets
You will need to set the probe's physical distance from the nozzle in Marlin so that it knows where the probe is. Set the X & Y offsets according to your probe.
Sensor #define SENSOR_LEFT #define SENSOR_Front
SN04 -40.6 -7.5
BL Touch -40.2 -11.5
M8 -40.2 -3.5
I would also enable safe homing at the centre of the bed to prevent head crashes.In Marlin:
define Z_SAFE_HOMING
The final and MOST CRITICAL step is to determine the Z offset. For some reason this step seems to confuse people the most. There are a multitude of ways to do this and some tutorials are overly complicated, or even incorrect. You do not need to heat the bed for the offset calculation.
The Z offset is the physical distance between the nozzle and the probes detection point. This is usally a negative number. I recommend you do not store this in firmware becasue it can change after a nozzle change, head crash, etc.
From the terminal of your choice, pronterface, S3D or whatever, connect to your board and send the following G-Codes to your printer:
1) M851 Z0 - Makes sure offset is clear
2) G28 - Home
3) G1 Z0 - to make sure head is at true 0
4) M211 S0 - Disable software endstops
5) From the LCD, go to prepare, move Z axis, .1mm
6) Use a piece of paper to adjust height by lowering head
(turn knob left)
7) When the proper height is achieved, read the number on the
display, we will use -.8 for this example. If your value is
higher than 1.2, lower your sensor a little and restart.
8) M851 Z-.8
9) M500 to save
10) M501 to load
11) M2111 S1 - Restore software endstops
12) Exit out of LCD menu back to first screen
Lets double check our work:
13) G28 - Home printer
14) G1 Z0
15) Now test your paper again.
You are done!

Tags