Because the aluminum heated Print Bed plate is not flat (out as much as .012"/.305mm when heated up to temperature),
the EZABL maps the surface of the heated Print Bed and moves the Z axis up and down to maintain the
(.004" / 0.1mm paper thickness) distance between the Filament Hotend Bowden Extruder and the heated Print Bed.

3D Printed the EZABL Stock Sensor Mount
First time using "SUPPORT" in the Cura 3.1.0 slicer software
and first time using the eSUN WOOD (brown) filament,
which is a little less brittle than the eSUN PLA+ (blue).

Last edited by bob195558 on Sun Mar 11, 2018 1:05 pm, edited 2 times in total.

Flashing Bootloader and New TH3D Firmware to CR10 Melzi Control Board.
I removed the CR10 Melzi Control Board from its control box and using an Arduino UNO Board
to flash the new Bootloader to the CR10 Melzi Control Board.
For wiring instructions I used the TH3D youtube video: (https://www.youtube.com/watch?time_cont ... 7RDXtKjrCI).

Bob B.

Last edited by bob195558 on Fri Feb 16, 2018 6:19 pm, edited 2 times in total.

1) Download this Creality CR10 Firmware Folded Pack "TH3D_UnifiedFirmware_U1.R1.1"
find here: (https://www.th3dstudio.com/knowledgebase/).
Unzip and place this folder on your desktop.Note: You will see a newer version of the TH3D Unified Firmware like: TH3D_UFW_U1.R1.4
Use the newest TH3D Unified Firmware version.

2) Open sub-folder "Windows Arduino" and click on "arduino.exe" to open the Arduino program.
And/or you can also click on the "OpenFirmwareWindows.bat" which is a shortcut to opening the Arduino program.

Last edited by bob195558 on Sun Mar 11, 2018 1:05 pm, edited 3 times in total.

With Arduino open, find/make sure you have USB connection to the UNO board,
go to: Tools / Port: "COM6(Arduino Uno)". (my pc was using COM6 for the UNO board).
Note: you may see something different like this: "COM6(Arduino/Genuino Uno)"

Last edited by bob195558 on Fri Feb 23, 2018 5:00 pm, edited 2 times in total.

9) Next select: Upload
You will see lights flashing in their proper sequence of uploading sketch to the UNO board.
Note you may see an error message after compiling and uploading.
See error message below which I disregarded.
===========================================================================Sketch uses 4676 bytes (3%) of program storage space. Maximum is 130048 bytes.
Global variables use 483 bytes (2%) of dynamic memory,
leaving 15901 bytes for local variables.
Maximum is 16384 bytes.

avrdude: Expected signature for ATmega1284P is 1E 97 05
Double check chip, or use -F to override this check.
Wrong microcontroller found.
Did you select the right board from the Tools > Board menu?
============================================================================

7g

Last edited by bob195558 on Sat Mar 10, 2018 3:08 pm, edited 9 times in total.

15) Next: go and select: Tools / Burn Bootloader
You will see lights flashing in there proper sequence on the UNO board
and the Bootloader will be burned to the CR10 Melzi Control Board.

16) Next: disconnect the USB and the Jumper Wires connecting the UNO board with the CR10 Melzi Control Board.

17) Next: reconnect the LCD display cable back to the CR10 Melzi Control Board.

b1

18) Next: connect the USB cable from CR10 Melzi Control Board to the PC
which will power the LCD display and it should now have a Blank Blue Screen. The Bootloader is now Flashed to your CR10 Melzi Control Board
and you can now flash the new TH3D Marlin (TH3DUF.ino) firmware to it through the USB connection.

19) Next view: TH3D Unified Firmware Setup Guide - Stock, EZABL, EZOut and More!
Youtube video here: (https://www.youtube.com/watch?v=B2ODwmiMNhc).
View the whole video first, before pressing the "Upload" button, so that you have all the "uncomment" (removed: // )
options selected that you will need.
If you need to add other options after you have Upload the firmware,
make the uncomment you need and Upload the new firmware again.

20) Next: go to the PC Arduino program and check that you now have a different
USB COM port connection like this: Tools / Port: / COM7
(you may have a different COM port from what I have).
(my Win7 found the needed USB Driver: FT232R USB UART).

22) Next: Select the tab named: Configuration.h
Begin at the top reading the instructions as you progress down.
This TH3D Marlin firmware has selections for several 3D Printers.
You only need to make selections that pertain to your CR10 Printer
(or for the 3D Printer that you have).
To make a proper selection (option) you remove the 2 // marks
which is called uncomment.
Each different 3D Printer has its own section and near the bottom there is a
section called "TH3D EXTRAS" where you may want to select more options.

24) Next: In TH3D EXTRAS I did change the "#define EZABL_POINTS 4"
to "#define EZABL_POINTS 5" because the un-flatness of my Print Bed.

25) Next: Pressing the Upload button and firmware will start compiling the firmware
before it Uploads to your CR10 Melzi Control Board.
Arduino will let you know when it is done uploading.

The CR10 LED display screen when powered up should show "TH3D EZABL Ready"

TH3D EZABL Ready

This completes flashing the new TH3D Unified Firmware to you CR10 Printer.

======================================================================================26)Note: before you reinstall your CR10 Melzi Control Board back into your CR10 Control Box
move the Jumper back so to be powered by the CR10 Control Box power supply.

Last edited by bob195558 on Mon Mar 12, 2018 11:41 pm, edited 3 times in total.

2) 3D Print the EZABL OEM Mount found in the folder on your Desktop: TH3D_UnifiedFirmware_U1.R1.1/Mounts/CR-10 and CR-10S/EZABL OEM Mount/Stock18mmMountCR10.stl
(If you have made the EZABL OEM Mount already skip this step, more info see the next step below.)

2 mm between EZABL Sensor and Nozzle

3) Install the EZABL OEM Mount and the EZABL Sensor, setting a distance of 2mm in height
(up and down) between the EZABL Sensor and the Nozzle.

EZABL Sensor 2mm between Nozzle_b

Note: You can use the Large Wrench that came with your CR10 3D Printer to help set
the distance between EZABL Sensor and Nozzle, as it is close to 2mm thick.

.

Last edited by bob195558 on Wed Feb 28, 2018 3:10 am, edited 8 times in total.

4) Next: With the AC power disconnected from the CR10 Control Box, remove the bottom access panel
and strip one end of the gray length of wire provided with the kit.
Feed this wire in with the other cable wires into the back of the CR10 Control Box.

6)Next: reinstall the bottom access panel to the CR10 Control Box
and with the other end of the length of Gray Wire, strip the other end
and connect it to the Left Side of the TH3D EZABL Small Black Module Box.Red Wire connects to the top terminal and the Black Wire connects to the bottom terminal.

12 volt power to TH3D EZABL Small Black Module Box

I mounted the TH3D EZABL Small Black Module Box to the back/top of the CR10 Control Box.

Last edited by bob195558 on Wed Feb 28, 2018 2:22 am, edited 3 times in total.

7) I use a (2S) 3 Pin JST-XH Extension Connector 250mm long
and cut off the male end and pulled out the center Pin/wire
and placed a black un-shrunk heat-shrink over the Red and Black wires.Next: Right Side of the TH3D EZABL Small Black Module Box,
connect the Red wire to the top terminal
and the Black Wire connects to the bottom terminal.

(2S) 3 Pin JST-XH Extension Cable Modded to connect to Z Stop Cable.

Plug the the Left Side TH3D EZABL Small Black Module Box wire into the 3 Pin Z Stop Cable.
(Note 1: Do Not Use the Z-Stop Micro Switch, it is not needed anymore.)

Note 2: Before powering up your CR10 3D Printer, review that you
have your wire connections proper, so to avoid any magic-smoke.

(Hindsight: this TH3D EZABL Small Black Module Box maybe installed inside of the CR10 Control Box
with only the EZABL module cable entering the back of the CR10 Control Box.
This would make a cleaner installation. For now I will leave it the way it is, maybe change it later.)

Last edited by bob195558 on Wed Feb 28, 2018 2:22 am, edited 1 time in total.

8) Next: Test your EZABL Sensor that it is detecting properly.
Power Up your CR10 3D Printer and using your finger slow move it up toward
the bottom of the EZABL Sensor and when your finger comes close enough,
you will see the 1st LED on the top of the EZABL Sensor and a 2nd LED in the TH3D
EZABL Small Black Module Box LIGHTS UP at the same time, indicating detection.

LED Lights when making detection.

Last edited by bob195558 on Wed Feb 28, 2018 3:11 am, edited 1 time in total.

9) Next:
(a) Pre Heat Printer Bed using "Preheat PLA"
(b) Disable Stepper Motors
(c) Remove your filament
(d) You can by hand, turn the Z-Axis down to where the Nozzle is a paper thickness (.004" / 0.1mm) away from the Heated Print Bed surface.
You need to feel a very light drag on the paper to have the proper pager gap.
(e) Next: you may need to adjust the Sensitivity of the EZABL Sensor.
This can done by turning the very small brass Adjuster Screw on top of the EZABL Sensor.
Turning Clockwise to increase the sensitivity distance and Counterclockwise to decrease the sensitivity distance
between Heated Print Bed and the EZABL Sensor.Adjust the Sensitivity so that the LED Light just comes ON when Nozzle is at the proper distance between Print Bed and the EZABL Sensor.
Move the Z axis up and then back down until the LED Sensor Light just comes ON at the same time you have the proper paper gap
between Nozzle and Heated Print Bed.
Do this several times until you are confident it is repeating correctly every time.

These new Slicer gcodes will operate the Auto Bed Leveling (ABL) mapping routine after
the Auto Home procedure has completed.
(Auto Home: X axis home, Y axis home and Z axis homed to the center of the Printing Bed).
Always leave your EZABL Sensor homed before you start a new print.
This will help to keep the EZABL Sensor temperature consistent for every print and will help to
keep everything at the proper temperature before it runs through the ABL mapping routine.

Copy the new TH3D Starting Gcodes and Paste them over the old Starting Gcodes, (replacing them).
Will look like the photo above when done.

11) Next: I did a test 3D Print using the USB connection between Slicer Cura and the CR10 3D Printer.
I printed on Glass with Print Bed temperatures at 65 C and Nozzle Printing temperatures at 215 C.
(a) Preheat Printer Bed and Nozzle using "Preheat PLA"

Preheat PLA

(b) "Auto Home"
(c) Next: Start Printing
(d) When the Print Bed and Nozzle are up to proper temperatures the EZABL map's the surface of the heated Print Bed.
(e) When done, Print Head moves to the front left corner, extrudes a mess of filament and then begins the 3D Print.

Z Offset BabyStepping Feature
Z Offset BabyStepping Feature, is used to quickly adjust the gap between the Nozzle and the heated Print Bed
(paper thickness of .004" / 0.1mm).
Z BabyStepping Feature can be done on-the-fly, while you are printing.
To use BabyStepping, Press the Menu Button 2 times (pause a little between pressing).
BabyStepping moves the Z-axis about 0.1 to 0.2mm for each Babystep.
When you see your filament gap is to high or to low when your print begins,
you make Z BabyStep adjustments to correct the (Nozzle / Print-Bed) gap.
Turning the menu knob to the left will bring the nozzle closer to the Print-Bed (in real time)
and turning menu knob to the right moves the nozzle further away from Print-Bed.
Your new Z offset will be saved by Not exiting the BabyStep Menu Screen until all of the first print layer has been completed.
If you Exit the Babystep Menu Screen (by pressing menu knob) before all of the first layer has completed printing,
the new Z Offset will return back to its original setting.

What is P.I.D. Tuning?
P. I. D. (Proportional Integral Derivative) is the system the printers use for holding a set temperature.
This system controls how fast the printer reaches the set temperature and how well it holds that temperature once it gets there.
Without having P.I.D. Tuning, numerous problems can arise.

Getting Started with P.I.D. Auto Tuning
You will need the Unified Firmware flashed to your CR10 Printer Control Box: (https://www.th3dstudio.com/knowledge-ba ... -firmware/).
It is helpful to use the GcodeSender Pronterface to view the PID Tuning progress and to send some gcode commands like: M503 Find the GcodeSender Pronterface here: (https://www.th3dstudio.com/knowledge-ba ... onterface/)
or you can find it in your TH3D firmware download package.
USB connecting Pronterface to your CR10 Printer go to the upper left hand corner
and select the Com Port for your 3D Printer, next set the Baudrate to 115200
and then select Connect.

Steps I used to run P.I.D. Auto Tuning1) Go to: Control / Temperature / PID Autotune

2) Turn the selector knob to make this setting to be: 240
(which is used for the Stock CR10 Hotend). Note: If you have an All Metal Hotend installed, then make this setting to be 250.

3) Next when you press the selector knob, this will start the P.I.D. Auto Tuning.

4) Then back-out of these menus to the home "Info Screen" by selecting the up-arrows.

5) The TH3D P.I.D. Auto Tuning process will go through 10 cycles of heating up to 225c and cooling down
and after will apply the new PID Tuning values automatically.

6) Next you will need to save the new PID Tuning Values, go to: Control and selecting "Store Settings"
This will save the New PID Values to the CR10 printer EEPROM.

7) Next go to the GcodeSender Pronterface and in the lower right hand corner
enter the gcode command: M503
This will verify by showing that the New PID Values have been saved to your CR10 printer's EEPROM.

Last edited by bob195558 on Mon Mar 12, 2018 11:45 pm, edited 2 times in total.

2) Go to the TH3D Firmware Folded Pack and open sub-folder "Windows Arduino" and click on "arduino.exe" to open the Arduino program.
You can also click on the "OpenFirmwareWindows.bat" which is a shortcut to opening the Arduino program.

3) With the Arduino program open, USB connect your PC to your CR10 3D Printer and power up your CR10 3D Printer.

4) Next go to: Files / Examples / 11.ArduinoISP / ArduinoISP
This opens a new Sketch (ArduinoISP) which you will now use.

9) Next go to: File / Open /
and then find the TH3D Unified Firmware version like: TH3D_UFW_U1.R1.4
and open it.
Next open the folder: Firmware / TH3DUF / TH3DUF.inoSelect: "TH3DUF.ino" and OPEN

10) This opens a new Sketch (TH3DUF) which you will now use.
Click on the tab named: Configuration.h
Sketch: (TH3DUF - Configuration.h)

11) Reading the instructions as you progress down, you will make selections that you need for your CR10 3D Printer.
To make a selection remove the two hash marks // in front of each option that you choose.
Removing the two hash marks is called uncomment.

13) Next I moved down to
==============TH3D EXTRAS
==============
Because of the un-flatness of my Print Bed, I change the: #define EZABL_POINTS 4 to:
#define EZABL_POINTS 5.

14) Next I uncomment:
// If you want to keep your heaters ON during probing uncomment the below line. We do NOT recommend doing this on AC beds.
(uncomment //): #define HEATERS_ON_DURING_PROBING

15) Next by selecting the Upload button, the firmware will begin Compiling before it Uploads to your CR10 Melzi Control Board.
Arduino will let you know when Uploading is done. You then should have successfully flashed the new TH3D Unified Firmware.

16) After this you may need to reset your Z offset and want to run the P.I.D. Auto Tuning Hotend Temperature procedure again.