Are you on a budget but still want to install Auto Bed Leveling on your Ender 3? Well we have the same thought going on here, and anytime we can DIY a project, we do. If you have ever seen the tutorials with the sensor and an octocoupler, that is exactly what we are doing here. The difference is that we use a Creality Glass Bed and most of the sensors we have tested don’t have a large enough sensing range. I opted to use the 18mm Capacitive sensor below that is very similar to the TH3D EZABL sensor, in fact we are using the TH3D mount in order to install this sensor. This is basically a DIY Budget Alternative to the TH3D EZABL kit.
NOTE: This is a project for someone who is DIY savvy, although it is basically just as easy as any of the Auto Bed Leveling kits, it may require some knowledge in firmware, and electronics. You will also have to modify the Octocoupler resistor if you have the 24V Ender 3.
What’s needed to install Auto Bed Leveling on an Ender 3 for cheap?
- 24v Capable Capacitive Sensor (12mm to use EZABL mounts) https://www.aliexpress.com/item/32844237591.html?spm=a2g0s.9042311.0.0.53b34c4dtO0x69 $4.99
- 1 Channel Optocoupler (12v will need modified for 24v) https://www.aliexpress.com/item/32923200042.html?spm=a2g0s.9042311.0.0.53b34c4dtO0x69 $0.89
- HeroMe Gen5 Base and Cooling System for your printer. We recommend upgrading to 5015 fan and single duct. https://www.thingiverse.com/thing:4460970
- HeroMe Gen5 EZABL Mount (Pick one from list under EZABL 18mm) & Spacer https://www.thingiverse.com/thing:4463378
- Optocoupler Case https://www.thingiverse.com/thing:2817153
- Firmware (Look on website for the proper firmware for your board, or ask on our forums; TH3D is easiest for stock boards and my custom firmware for SKR Mini E3 will work)
- Arduino Uno + Dupont Cables to burn boot loader on stock boards, see this post: https://print3d.world/how-to-burn-a-boot-loader-on-an-ender-5-and-upgrade-firmware/
- Soldering Iron
- 4.7k Ohm Resistor
- Wire for power and ground leads (20-22awg Silicone wire is recommended)
The two items above are the only purchases I had to make to install Auto Bed Leveling on my Ender 3. I think most people have wires laying around, or can get them fairly easy. I also used some 14ga silicone wire to supply power to the sensor, male jumper cables cut in half and soldered to two 22ga silicone wires for the Z Endstop wires. You will also need to print the TH3D 18mm sensor mount, which I have listed in the downloads and added to the bottom of the post. Some people choose to custom setup the Marlin-1.1.9 firmware, but the easiest Firmware to use is the TH3D Unified package, which can be found here: https://www.th3dstudio.com/knowledgebase/th3d-unified-firmware-package/.
ATTENTION: FOR 24V ENDER 3’S YOU WILL NEED TO MODIFY THE OCTOCOUPLER
The octocoupler listed above is rated for 12v systems, so in order for it to work with 24v systems we will need to modify the resistor at R1 with a 4.7k Ohm resistor. If you have the 12v Ender 3, you may use it as it is delivered.
(Courtesy of LetsPrint3D.net)
You can setup the TH3D firmware with only two changes to the configuration and even by following the EZABL installation articles, because this sensor is basically the same as theirs just much cheaper. Once you have all of your parts, you will need to start by printing the mount from below and the Octocoupler case also. While these are being printed you can start getting the wiring together. (Diagram courtesy of LetsPrint3D.net)
You will need to get the V+ and V- power from the PSU on the right side of the printer. It has a few screws to remove, and open the bottom cover to get to them. The screws to the left of the RED + BLACK wires that go out through the bottom of the cover will give you 24V DC to power your sensor with. I recommend crimping some spade terminals on the end of the wire that will attach to the PSU so they are secured in the screw clamps.
Once you have your Octocoupler wired up, I suggest using a Digital Multimeter (DMM) on the Sensor Output pins. I always take the Capacitive sensor and manually trigger it; Once it triggers you should see the light on the octocoupler light up, and the voltage on the sensor output pins go to 0v. When you pull the sensor away from trigger, it should increase voltage (but never exceed 5v) and switch back and forth as you re-trigger it. Do this a few times to verify you won’t fry the board.
After everything is verified working on the electronics side, and your mounts are done printing you can assemble the mount to the carriage and start to align your sensor. We use TH3D’s alignment method for the best accuracy and repetitive results; with this sensor we received a Standard Deviation of .008 (anything below .01 is good).
The next step you want to do is to check if the endstop is properly being recognized by your
board.
Make sure you have your Z endstop wire connected with the jumper wires.
DO NOT HOME YOUR Z UNTIL YOU VERIFY THAT THE FIRMWARE IS SEEING THE SENSOR CORRECTLY
Start by moving the Z up until the light on the sensor and the octocoupler turn off.
Next, connect to your printer over your preferred slicer (or Octoprint) and issue an M119 and
see if the Z_min is showing TRIGGERED or open.
If it shows open place your finger or an object under the sensor so the light comes ON and then
issue M119 again. If it shows TRIGGERED then proceed to setting your sensor sensitivity.
If it does not then reverse the 2 endstop wires.
Next you will need to adjust the sensitivity of the sensor, so you should set your nozzle and temps to the highest you will use while printing. You will run your Z axis all the way down until the nozzle is just touching the bed; Then use your MOVE AXIS option in the PREPARE menu of your printed LCD to move the axis up 2mm. This is the position you want the sensor to trigger, and if the LED is not lit up on the octocoupler and sensor, use a small flat head screwdriver to adjust the sensitivity screw on the sensor clockwise until it lights up.
Do NOT change the sensitivity if you are getting different heights between prints due to
temperature changes. This should be handled by the ZOffset and/or BabyStepping the Z
height. Under normal conditions at most you should only have to occasionally Babystep
about 0.1-0.2mm. If you are getting more than that please contact our support to go through
more advanced troubleshooting steps. Large babystep changes are usually related to a
physical machine issue if M48 is returning a consistent reading under 0.01mm.
Lastly, you will need to setup your Z Offset; Some people just do this on the LCD screen and choose to “Store Settings” after they have. You will usually have to babystep for the first layer on almost every print. See the section below from TH3D.
[Download not found] [Download not found]I HIGHLY recommend you watch the video as it is much easier to see what to do. Here is a video
on how to set the Z Offset: http://EZABLVideo.TH3DStudio.com
Now that we have the sensor installed and calibrated you need to set your Z Offset. This is the
distance the printer needs to move the head down to place it on the bed after the sensor
triggers.
To set your Z Offset heat the bed to your normal print temp and do a G28 to home the sensor.
Your EZABL™ sensor should be in the middle of the bed. Let it sit there for 5 minutes after the
bed has reached its target printer temperature. After homing the Z will show 5mm. This is NOT
included in the ZOffset. Move Z down 5mm before proceeding.
What you will do now is grab a sheet of standard paper and then move the nozzle down by
0.1mm until it just grabs the paper. Once you do that you can look at your printer LCD and note
the number that the Z shows. This will be a negative number. That is what your Z Offset is.
Thanks to TH3D and LetsPrint3D.net for doing most of the hard work, we just wanted to apply our own remix to the ABL scene! As always, have questions or problems leave us a comment and we will help you to the best of our ability!
I have a 24v ender , I’m not that comfortable with resistors I’m not even sure what to buy, cant I just power it with 12v source or use a step-down converter from the PSU . do you think it will affect the sensing range?
What are you talking about resistors? You buy a sensor that is able to use 24v as most are, and you convert the logic to 5v with the octocoupler.
Not sure if you will see this but I think they are referring to the part where you suggest swapping out a resister on the octocoupler to work with the ender 3 psu. I was also curious about using a buck converter but I don’t think it would work right. I can’t tell. I have some resistors but not the exact value. Awesome tutorial btw!
Hey Ben,
I see your post, and no it won’t work with a buck converter. It converts the signal on the octocoupler via light. It’s interesting how it works, but don’t use another converter after it; you will destroy the signal.
Also the case the you linked to is twice the size of the board that you linked to. The Stl is for the longer Octocoupler ,
Actually it still fit inside fine, there were some grooves and it covers it entirely.
hi! i’m trying to do the budget friendly ABL. i have bought the same octocoupler . followed the wiring posted, tested it using 12v PSU before i do it directly to my ender3.
result is when triggered both led on the sensor and octocoupler turns on and turns off when not triggered.
from your instruction “Once it triggers you should see the light on the octocoupler light up, and the voltage on the sensor output pins go to 0v. When you pull the sensor away from trigger, it should increase voltage (but never exceed 5v) ” .
where should i probe to check the voltage output? is it from the Z-end stop (-) and (+)?
tried doing it ut i don’t get any voltage when not triggered.
i hope you can help me out with this.
thank you so much
mandis
That is the correct sequence and you check it out of the signal wire of the sensor.
Any Chance to get a link to the parts you used? They seem to be gone from the article
Sure thing, I will look into fixing that, and I will post on the forum as well.
The links were there, in the What’s Needed list; but for some reason they weren’t clickable- I have fixed that!
Perfect! Thank you 🙂
Any Reason why you a) went with a capacitive probe as opposed to a inductive one (Like the LJ18A3-8-Z/BX)?
I don’t mean to step on the toes of the author who did a fantastic job describing the process, but I’ll be glad to answer the question from my own research/experience: The capacitive probe senses all materials (Glass. polypro, aluminium etc) while an inductive probe requires that there be a metal substrate below your non metallic plate. While some capacitive probes are subject to some inaccuracy due to humidity, most are generally well sealed for this reason and only experience minimal deviation. My son uses a PINDA probe which is inductive on his Prusa MK3s and it is crazy accurate. But, he can’t use a glass bed.
Hey, thanks for the comment! You are right that the capacitive probe senses all materials, but it requires you to set it up closer to the material for an accurate and consistent reading. Luckily with Auto Bed Leveling you don’t just depend on a single probe, you can choose to do it twice or even three times to ensure accuracy.
The inductive sensors I have tried work well, but you must have some layer of metal to have it pick up the material well enough. I work in an industrial setting and we use many different types of these capacitive and inductive sensors, most of the times they are only designed to work on metal parts though. PINDA probes are good and work for the Prusa; due to the spring steel bed sheets that aid in the pickup on the sensor.
I’m makin an smd version of the optocoupler board with jst connectors and screw terminals, just wondering is VCC used at all?
I am unsure on the pinouts, but of course you are using +24v from the printer. Usually I would call that VCC. I can look into the octocoupler more and give more details if you wish.