Ender 3 Max - Homing?

I have the Ender 3 Max, with the Creality dual-Z axis upgrade (two stepper motors version).
It seems that since I installed the upgrade, I am having problems with the Z height - It seems that every time I go to print, the Z axis homes at a different spot - sometimes the carriage is so high that the first layer won’t stick, and the next time, the nozzle will be dragging the bed.
I do a two-part manual bed levelling; first levelling it with paper, then doing an X or other bed levelling print, and do active adjustment from there.
Once I get a print started, everything prints well, but I would rather not level the bed every time I want to print!

Does anyone have any similar experience?


Hi Era99

I would think that maybe something is loose in the upgrade. Its a rare case for it to home in a different location every time. They are generally pretty predictable.

Has anything else on the printer been changed? Any other upgrades or changes? Did it work predictability before the duel screw upgrade?

Hi, Jason:

Thanks for the response.

It worked well prior to the upgrade, with the exception that the right side (without the lead screw). was a bit floppy.

The only other upgrade is the Micro-Swiss Direct Drive, (which works wonderfully).
Everything seems good, nothing feels loose, but I guess I’ll have to check again.

I was wondering about the motor current, since they didn’t mention it in the upgrade process. Would this need to be adjusted to take into account the two steppers?

I suppose that the Z home limit switch could cause an issue?

Hi Era

I generally won’t bother updating the Vref for the Z axis as its in use so very little in the grand print of things.

the Z motors are small and I believe the default Vref is .7 or .8 which is plenty

Thanks again, Jason:
I’ve been doing some troubleshooting.

Yesterday, with the bed “levelled” from the night before, I did a manual bed levelling. The front left corner was quite low (over two paper thicknesses). I manually moved the head to the right, and it hit the bed within 80mm of the home position.
Left rear, can’t get paper between the nozzle and the bed.

I realized that I could completely remove the second Z axis from the system by simply unplugging the stepper and removing the screws that hold the Z nut to the shaft.
This has resulted in a consistent homing level, though multiple bed-levelling patterns (squares, X)

It’s apparent that the two motors are not moving the same amount, or are missing steps. The right side motor moves freely, is solidly mounted, and the adapter between the motor and the shaft is tight.
Any thoughts?

So. When in doubt, disassemble everything and build again from scratch (Well, almost…)
Re-did the Z and X gantry adjustments, making sure they were perfect, no binding, no slop. Everything OK.

Checked the Vref for all motors:
E: 1.064V
Z: 0.883V
Y: 1.390V
X: 1.184V

Research online:
TH3D lists Creality’s defaults:
|X|1.10 - 1.20|
|Y|1.00 – 1.10|
|Z|1.15 – 1.20|
|E|1.35 – 1.40|

My Z stepper Vref is a little low, especially for two motors in parallel, which needs twice the current.
I set this to 1.60V.
Ran the Z axis up and down 300mm each way for 5 minutes - the motors were barely warm.

Also checked out the Teaching Tech website for values. He references a blog entry on the EEVblog website.
This shows the values for the Creality 4.2.2 board that I have…

More research:

The two Z steppers have no way of referencing each other, so each starts just wherever it is.

From Reddit - eschertech

Dual Z motors inevitably get out of sync. One reason is that when you power up the printer, each motor will jump to a multiple of 4 full steps that matches the current in the motor windings. The two motors may jump in opposite directions. Also, many users configure the slicer end GCode to disable the motors at the end of a print, which can lead to the motors changing position between prints. It’s better to have the firmware reduce motor currents automatically when the printer is idle, but not turn the motors off completely.

So mechanical levelling is necessary initially, but some other mechanism is needed to keep the motors in sync. One way is to use the Z probe to level them automatically. Another is to use separate endstop switches for the 2 motors. I’ve heard that Prusa solves it by stalling the motors against the mechanical max endstop.

From the looks of things, the two motors in parallel, two lead screws is the epitome of stupid ideas!

My current attempt to solve the issue is to cut two blocks of plywood, and use them to level the X gantry prior to initially homing the system.

My choices in future will be:

  1. Go back to the single Z lead screw.
  2. Get the kit that uses a belt to drive the second Z axis.
  3. McGyver the machine and the gcode so that it will find a reference spot for the Z axis screws between prints - possibly removing the M84 command at the end of a print…
  4. Add an extra stepper motor driver to the machine, use this as a driver for the second Z, and figure out how to recompile Marlin and use the G34 and M422 automatic Z axis alignment function…

Now, did I buy a 3D printer to 3d print stuff, or did I buy it as a source of perennial challenges? Hmmm…

Does anyone know of someone who has this dual motor-dual lead screw working?

I am redoing firmware now for the ender 5 plus using the G34, Auto bed leveling side to side.

May be something you may be able to use if your comfortable with firmware.

If you print a wide, tall skinny print and when complete see if the left side and the right side are the same hight. Just to confirm if the deg on both motors are the same.

Hi, Jason:
Firmware mods are something that I plan to do, but haven’t yet done.
I thought that the G34 would require a dual independent z drive? I haven’t looked into it yet.

Having some underextrusion issues with the printer, will try that test once I have it up and working again!

HI Era

I will have to confirm if you can do the mod I have done to the Max but yes you will need to have duel Z motors for it. I will fill you in on the change once I have the screen firmware done. I am actually going to release it to the public.

Straighten out the under extrusion and let me know how the rest of the testing goes.