# AnyCubic D (aka Predator) - Z-zeroing and first layer issues

Long story short, my wife and I are now the proud owners of an AnyCubic D, also known as the Predator. This is not our first 3D printer, but it is our first "delta" design, with the circular build plate and the extruder suspended by stepper-controlled tie rods (as opposed to the IMO more intuitive Cartesian designs like the MakerBot R2X and Ender 3 Pro we already have).

Got it all put together last night and ran all the basic setups including an auto bed leveling. This feature is both a blessing and a curse. It's a blessing because the actual leveling is a matter of fitting the probe, hitting a button and walking away as it maps the build plate, and the results in terms of a consistent extrusion thickness around the plate are excellent each and every time.

It's a curse because the printer depends on auto-leveling due to the build plate being bolted directly to the base; with no manual adjustment possible, probing is the only form of leveling you can do, and that leveling is dependent on an accurate "zeroing" of the extruder above the center of the plate, which has to be done using the steppers to bring the extruder down from "home" to the typical paper-thin clearance over the plate surface.

Thus the problem; the zeroing procedure has a minimum adjustment of 0.1mm. Getting the clearance just right for a solid first layer requires at least another order of magnitude finer adjustment. For now, I have it "good enough" to stick the first layer onto the plate, but the resulting prints show pretty classic plate clearance issues:

You can see the lines of the bottom layer aren't connecting horizontally, and the extrusions are thin and tubular, which are the textbook symptoms of excessive build plate clearance (not enough "squish" of the filament between extruder and plate). It's close, but this is a game of just tens of microns, and the printer simply does not give me that level of control; one more step down at 0.1mm and I hit the plate. The manual says you can babystep the Z offset at 0.04mm while actually running a print, but I have run several (including the leveling test GCode included on the printer's SD card) and have never seen that option enabled in the leveling menu.

I was wondering if there were any AnyCubic D/Predator owners with insight into how they really dial in the proper zero height on these printers. I do have Cura's features to work with; theoretically I could send a relative-positioned G0 Z-0.04 F100 command from its remote control panel as the last step down in zero height adjustment (assuming the printer is listening to USB input while running the leveling procedure), or I could put a similar command in the start Gcode followed by a G92 Z0 which will re-zero the extruder height at the new level (assuming the printer accepts a relative move below its known zero; Marlin 1.1.0 actively prevents that, but indications are the AnyCubic firmware is proprietary, so who knows). I could also leave the extruder height as-is and bump Cura's first layer flow rate setting in the material profile, to push more filament into the taller space on the first layer and so get more squish.

However, none of these strike me as something I should have to do to dial in a printer, given that extruder clearance is a problem trivially solved on either of the other printers, and these fairly kludgy fixes would have to be repeated every time the bed was re-leveled (such as after any disassembly for maintenance or any move to a new location, including one beyond USB cable distance of the slicing computer).

• This works on a Cartesian, I don't know if it works for a Delta: You could try to send a M211 G-code to disable the Z min endstop, it will then move below zero level, e.g. M211 Z0 S0.
– 0scar
Jan 8, 2020 at 20:16
• @0scar Not sure whether M211 is applicable on a delta, because Z_MIN_POS is pretty much the only software endstop that could possibly be constant. All others are interdependent due to the circular build plate; the only true rule is sqrt(X^2+Y^2) <= (plate radius), and even that only applies up to the hardware endstops of the shuttles, above which the valid build volume becomes conical. Jan 8, 2020 at 21:11
• Following up, did some research on these commands, 211 is valid. It looks like the Gcode I'll want is G0 X0 Y0 Z0, M211, G91, G0 z-0.04 (or whatever), M428, M500. I get to try it in about an hour. Jan 8, 2020 at 23:40

I recently corrected a similar problem on a Robo3D R1+ printer. It is described as the z-offset setting.

An entry in the Thingiverse forum appears to reference this problem as well. The sensor provides reference information to the board, but the compensation is not always as it should be.

For the Robo, the command sequence was M565 Z0.7 in this specific instance, followed by M500 to store the value.

I'm not certain this is the answer for the Predator as the above is specific to the Robo3d.

An answer in this SE suggests that one can use M206 Zxx followed by the M500 storage command.

Further research regarding the z-offset for your particular board is warranted.

• The Predator seems to work well with Marlin codes, so I'll give M206 a try. Should be something that can go in the print start config, as I'm not lowering the "true" zero for each print, just telling the printer it should treat a fixed distance below that as if it were zero. Jan 8, 2020 at 22:52
• I think the first code should be M665. M565 doesn't exist in Marlin, and in RepRap it's a code for changing the leveling probe's offset which I don't want to mess with. Jan 9, 2020 at 14:38
• @KeithS, the code used on the Robo3d was indeed M565 and per this link:community.robo3d.com/index.php?threads/z-offset-issue.18268 is the recommended one for that printer. The RepRap wiki does show that it's not supported in Marlin. Answer edited. Jan 9, 2020 at 17:36

The owners manual tells how to micro adjust the z while it is printing the 1st layer. See page 23. I did this and it works perfectly.

May I suggest as far as pushing the Z below 0 on a printer that won't allow it, just reset the Z a second time? In other words to set it 0.1mm lower when it's already at Z=0:

G92 Z5

G0 Z4.9

G92 Z0