I have a BLTouch on my other Ender 3 and thought I would try the ultra cheap (free) ABL for Ender 3 on my other printer. Wow, it works great. It took a few tries to get the timing right. I used my Raspberry PI with Visual Bed Level and that combination makes for great prints.
If you happen to break off the little silver tab, do not worry. In the Marlin firmware, use this adjustment instead...
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]"
One last suggestion, I changed my start up GCODE just a little to include a "BEEP" and 30 second wait, before continuing...like this...
;Before print job starts
M117 Heating the bed ; message
M140 S60 ; start heating the bed
M104 S200 T0 ; start heating the nozzle PLA
;M104 S240 T0 ; start heating the nozzle PETG
M190 S60 ; wait until bed reaches 60
M109 S200 T0 ; wait for T0 to reach 200 PLA
;M109 S240 T0 ; wait for T0 to reach 240 PETG
M117 Bed Leveling Started ; message
G28 ; home
;G29 ; Leveling the bed
M420 S1 ; bed level state ON
G1 X110 Y20 F6000 Z10; Move to the front and center
M117 Remove Probe ; message
M300 ; Beep
G4 P30000 ; Wait 30 seconds
M117 Bed Leveling Done ; message
M117 Prime the Extruder ; message
G1 E15 F900; Puge Filament
M117 Ready to Print ; message
Good job stevohen !
COLOR ME 3D HAZE FILAMENT PETG
Translucent Purple Haze