# Zero First Layer Issues - FIXED

**URL:** <https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051>\
**Category:** Sovol Zero\
**Created:** [June 12, 2025, 1:22pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051 "2025-06-12T13:22:59Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Liberty4Ever](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/liberty4ever/32/3265_2.png) [@Liberty4Ever](https://forum.sovol3d.com/u/Liberty4Ever)\
**Post date:** [June 12, 2025, 1:22pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/1 "2025-06-12T13:22:59Z")

</div>

My Zero has been plagued with intermittent first layer issues. Most of the time it’s good but approximately 10% of the time it prints too high with little to no bed adhesion and the print fails. This issue was discussed as part of the “Z-Offset is not saved” thread, where cardoc made a very useful observation. After cleaning the nozzle, it’s parked at 30,30 while it cools, leaving a tiny plastic blob on the bed.

> [@Z-Offset is not saved](https://forum.sovol3d.com/t/z-offset-is-not-saved/7862/45):
>
> The randomness is not random at all. If there is plastic on the nozzle tip the Z0 result will be wrong. Trying to chase that by changing the Z offset gets 1 print done but sets up for failure on the next. The only “work around” I can figure out is watch it like a hawk. Any filament ooze… abort and restart.

Here’s what the Zero does before printing:

Move to X=96 Y=76 Z=5  
Bed pre-heating  
Home X & Y  
CLEAN\_NOZZLE macro  
Move to X=96 Y=76 Z=5  
Preheat nozzle to 200 C  
Nozzle cleaning on silicone scrubber  
X=30, Y=30, Z touching bed to prevent nozzle ooze  
Cool nozzle to 130 C  
Move to X=76 Y=76  
Nozzle contact probe build plate a few times to determine Z offset in middle of bed  
X=96 Y=76 (Eddy to X=76 Y=76)  
Get Eddy reading of the same Z offset spot (calibrate Eddy to nozzle touch)  
Eddy probe scan to produce bed mesh  
Home X and Y  
X=0 Y=0 Z=0.30  
Pre-heat nozzle

The previous manual Z offset in Mainsail is cleared by the bed probing. The Zero isn’t interested in the user’s Z offset because it has fully automated that process for a “perfect first layer”.

On other Klipper printers, I set the Z offset to the proper value and then save the configuration, and Mainsail then reports a Z offset of 0.00 but that’s after internally resetting to my desired Z offset. The Zero’s Save restarts Klipper but apparently is not saving the Z offset or that value is reset during the automated Z offset at the start of each print.

Even weirder, sometimes my Zero has very good bed adhesion with a Z offset of 0.00, and sometimes it has weak bed adhesion with a Z offset of -0.075, with all other factors the same on subsequent prints. It feels as if something is occasionally and randomly adjusting the Z offset internal to the Zero, with no way for me to see the true Z height for the first layer. The Zero mostly works, but occasionally it doesn’t, for no reason that I could understand.

When all of this is under my manual control, I could adjust the Z height with a sheet of paper as a shim and set it. With the Zero, it seems that the intermittent problem occurs between the bed probing and start of the print. **I now believe, based on the Zero’s behavior, that the Z offset is overwritten by the bed probing (just before bed mesh scanning) and occasionally a small bit of nozzle ooze results in the 130 C nozzle contacting the build plate at a higher elevation, causing the Z offset to be too high, resulting in poor bed adhesion.**

When I first watched my new Zero doing the pre-print operations, I thought I would have designed it to slowly scrub the 200 C nozzle on the silicone pad while cooling it to 130 C to constantly wipe off any ooze until the nozzle was too cold to ooze, to prevent exactly this problem of nozzle ooze resulting in a too-high contact Z offset. Pressing the nozzle against the bed while cooling in an attempt to prevent nozzle ooze is leaving little bits of plastic that can be picked up later to result in a too-high Z offset calibration. Be sure to scrape clean the X=30 Y=30 spot before every print.

I tried an experiment to simulate a worst case nozzle blob when doing the contact probing at X=76 Y=76. While it was doing that probing, I slid four sheets of paper between the nozzle and the build plate, with a thickness of 0.45 mm. As expected, the subsequent first layer printed way too high. That’s the left half of this image. The right side was printed by reprinting the same file and not shimming the nozzle while the Zero was contact probing the build plate.

 ![Z_OffsetTouch-LeftImageForced450uTooHigh-20250610](https://canada1.discourse-cdn.com/flex030/uploads/sovolforum/original/2X/8/86c43fc8118f53f38ddaff4f71654d2930f36878.jpeg)

**Conclusion:** It would be great to take Z offset control away from the user and have the printer contact probe the build plate, then calibrate the nozzle contact with the Eddy probe, and then use the Eddy probe to create a bed mesh before each print, but only if every step of that process is accurate and repeatable. Occasionally picking up a tiny leftover piece of plastic that causes the nozzle contact probing to be higher than the actual nozzle results in a Z offset that’s too high and a failed first layer. The problem isn’t that the user input Z offset isn’t saved. That’s deliberate. The problem is that the nozzle isn’t always scrupulously clean when the Zero recalibrates its Z offset automatically at the start of each print. When it works, it works great. It’ll even automatically compensate for swapping to a different nozzle, which is very convenient. But like all fully automated processes, when it doesn’t work there is little the user can do other than watch to see if the first layer is too high and manually adjust the Z offset or restart the print. If the nozzle cleaning can’t be 100% effective, I’d prefer to be able to save a good Z offset and use that each time with a new Eddy bed mesh rather than relying on the automated nozzle contact Z offset before each print that may or may not work properly. Hopefully, a future update will change the CLEAN\_NOZZLE macro, but until then, I edited that macro to do what I initially thought the Zero should do - cool the nozzle as it’s being cleaned and NOT touch the build plate afterward. Here is the CLEAN\_NOZZLE macro I’m now using. Every line that I added or edited has a comment. The macro could be cleaner but I wanted to leave it as close to the original so it’d be easy to understand my changes and easy to revert to the original.

[gcode\_macro CLEAN\_NOZZLE]  
gcode:  
BED\_MESH\_CLEAR  
{% if printer.toolhead.homed\_axes != “xyz” %}  
G28  
{% endif %}  
M109 S200  
G90  
G1 X30 Y30 F9000  
G4 P100  
M400  
RUN\_PROBE\_VIR\_CONTACT  
G91  
G1 Z2  
G90  
G1 X-9.2 Y0  
G91  
G1 Z-2.4  
G90  
M106 S255 ; Start cooling nozzle  
M104 S130 ; Nozzle setpoint of 130 C, but don’t wait for it  
G1 Y45 F350 ; Slow clean nozzle while waiting for nozzle to cool - was F2400  
G1 X-8.2 Y10  
G1 Y45  
G1 X-8.2 Y10  
G1 Y38  
G1 X-9.2 Y12  
G1 Y38  
G1 X-9.2 Y12  
G1 Y33  
G1 X-8.2 Y14  
G1 Y33  
G1 X-8.2 Y14  
G1 Y28  
G1 X-9.2 Y16  
G1 Y28 F2400 ; Fast clean at the end to dislodge any remaining booger  
G1 X-9.2 Y16  
G1 Z3  
G1 X30 Y30 F9000  
G4 P300  
M400  
; RUN\_PROBE\_VIR\_CONTACT No longer need to press nozzle into build plate  
M106 S255  
M109 S130  
M106 S0  
G1 Z5

If you try this alternate CLEAN\_NOZZLE macro, be sure to save your entire Klipper configuration so you can restore it in case anything goes wrong, and of course, I take no responsibility for any harm that may be caused if something goes wrong.

I’ve been using the revised CLEAN\_NOZZLE macro and so far I have no random intermittent first layer issues, the nozzle is cool and clean, and the little blob of plastic is no longer being deposited at X=30 Y=30.

I printed eleven different parts which I wouldn’t have been able to do without a first layer failure. Then I printed 21 consecutive “perfect first layer” 150x150 mm test sheets, with three each of seven different materials.

 ![Zero-21ConsecutiveFirstLayerTestSheets-20250612](https://canada1.discourse-cdn.com/flex030/uploads/sovolforum/original/2X/f/f483f360c0a276c52bdd6534b24384082e7a7f04.jpeg)

From top to bottom:

ABS-CF - eSun, dark red  
ABS - MakeShaper, orange  
PET-CF - Siraya, black  
Rapid PETG - Elegoo, white  
Rapid PLA+ - Elegoo, black  
TPU-LW - eSun, black  
TPU - 3DBest, black

All were solid uniform sheets with no thick or thin spots despite the front of my Zero bed drooping 0.3 mm. The only adjustments for each material was the bed temperature and the nozzle temperature in the middle of the manufacturer’s recommended values as appropriate for each material. The extrusion rate was 1.0 for all test prints. The carbon fiber test prints had a rougher top surface but the unfilled ABS, PETG and PLA were the promised “perfect first layer” - smooth on top and bottom.

Caveats: I used a Microswiss 0.6 mm CM2 nozzle with a hardened steel insert for all of the test prints and I printed 150x150 mm test sheets that are 0.32 mm thick. I usually print a 0.25 mm first layer with a 0.4 mm nozzle so I scaled up the thickness of the first layer for the 0.6 mm nozzle and to better accommodate the carbon fiber materials. I print all first layers at 30 mm/s, around 5 mm^3/sec volumetric flow. I’m not printing speed Benchy boats so there is no need to rush that critical first layer.

There is no more nozzle ooze with the new nozzle cleaning macro but it’s important to use tweezers to remove the post print nozzle ooze and remove previous nozzle cleaning debris from the silicone nozzle scrubbing pad before each print to start with a clean build area. I failed to clean the silicone scrubbing pad in the earlier test prints and it flicked some black material onto the build plate that is visible on a couple of the orange and white test prints.

---

<div class="post-metadata">

**Author:** ![Lion](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/lion/32/5586_2.png) [@Lion](https://forum.sovol3d.com/u/Lion)\
**Post date:** [June 12, 2025, 2:07pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/2 "2025-06-12T14:07:59Z")

</div>

@sovol3d

Can you implement this is a future update..??

---

<div class="post-metadata">

**Author:** ![Vergo](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/vergo/32/3396_2.png) [@Vergo](https://forum.sovol3d.com/u/Vergo)\
**Post date:** [June 12, 2025, 3:00pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/3 "2025-06-12T15:00:50Z")

</div>

> [@Liberty4Ever](#):
>
> I’d prefer to be able to save a good Z offset and use that each time with a new Eddy bed mesh rather than relying on the automated nozzle contact Z offset before each print that may or may not work properly.

As explained in this post linked below, that’s not possible because of the lack of a separate Z height reference point which isn’t measured with the tip of the nozzle:

> [@Z-Offset is not saved](https://forum.sovol3d.com/t/z-offset-is-not-saved/7862/49):
>
> Probably the easier to understand (or longer) way of explaining the issue would go something like this: During print start calibration, the printer tries to figure out at what height the nozzle is currently in relation to the bed as it doesn’t have this information from the previous print or any other sensor. For X and Y, that’s done with the end stop switches that are at the end of the rails and those can be heard clicking during the X and Y calibration process. However, there’s no end stop sw…

---

<div class="post-metadata">

**Author:** ![Lion](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/lion/32/5586_2.png) [@Lion](https://forum.sovol3d.com/u/Lion)\
**Post date:** [June 25, 2025, 11:19am UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/4 "2025-06-25T11:19:23Z")

</div>

I’ve been talking to Sovol about this the last few days, but I couldn’t find this thread.  
I sent them a video & pics.

I sent them this thread this morning, so let me ask a question to see if I’m clear on your Macro.  
It no longer leaves the blob/ooze on the plate..but leaves it on the wiper..??

When Sovol reads this later, I’d like it to be 100% clear on what we are trying to do.

Thanks.

---

<div class="post-metadata">

**Author:** ![Vergo](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/vergo/32/3396_2.png) [@Vergo](https://forum.sovol3d.com/u/Vergo)\
**Post date:** [June 25, 2025, 7:26pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/5 "2025-06-25T19:26:14Z")

</div>

> [@Lion](#):
>
> It no longer leaves the blob/ooze on the plate..but leaves it on the wiper..??

No, it doesn’t work because the “before” and “after” nozzle wiping bed touch spots are the same X30 Y30. If something was deposited on the plate during the initial touch then the following touch has a high likelyhood of collecting that blob and the messing up the Z offset.

I’ve changed my macro to do the initial heating above X25 Y8, first plate touch at X30 Y8 and after wiping bed touch and cooldown at X35 Y12. Otherwise it’s the same as provided by Sovol. That’s enough to make the calibration far more consistent than it’s by default. It also avoids collecting anything after wiping since the locations aren’t the same and don’t align either. Avoiding those aligning is also important since I’ve seen some filaments leaving a thin string between the initial touch spot and the wiper. You don’t want the cooldown to happen on top of that string either.

---

<div class="post-metadata">

**Author:** ![Lion](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/lion/32/5586_2.png) [@Lion](https://forum.sovol3d.com/u/Lion)\
**Post date:** [June 25, 2025, 8:55pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/6 "2025-06-25T20:55:04Z")

</div>

Sovol Techs are saying this is a non-issue, I’m trying to tell them that it is.  
I would like them to make some kind of update to fix this.

I pointed them to this thread, so any more input would be appreciated.

---

<div class="post-metadata">

**Author:** ![cardoc](https://avatars.discourse-cdn.com/v4/letter/c/ec9cab/32.png) [@cardoc](https://forum.sovol3d.com/u/cardoc)\
**Post date:** [June 25, 2025, 9:04pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/7 "2025-06-25T21:04:18Z")

</div>

> [@Lion](#):
>
> so any more input would be appreciated.

This thread is a continuation of

> [@Z-Offset is not saved](https://forum.sovol3d.com/t/z-offset-is-not-saved/7862):
>
> While the eddie current sensor is real good, I cannot get a perfect first layer on the full bed surface, unless I adjust Z-Offset. Doing so, my first layer is absolutely top notch, on all 150x150mm. But whatever I do, either via Mainsail (Klipper WebUI) by clicking on the SAVE and SAVE\_CONFIG buttons, or via the small display of the Zero via End-Save Z-Offset, doesn’t get stored in the EEPROM / doesn’t survive a power cycle or a reboot. Is there any other way to save the Z-Offset in EEPROM, so…

AND

> [@Where can I get the older config with the pressure sensor?](https://forum.sovol3d.com/t/where-can-i-get-the-older-config-with-the-pressure-sensor/7975):
>
> Hi, Love my Zero so far, but I would like to see how the pressure sensor was used. I can only find the latest firmware and software for the Zero. Does anyone know where I can find the previous versions of the Zero software ?

AND

> [@Pressure based VS eddy NG type tap to zero](https://forum.sovol3d.com/t/pressure-based-vs-eddy-ng-type-tap-to-zero/7808):
>
> I’m going to spin this off of the existing thread Sovol has changed their tap to zero method to no longer use the pressure sensor. In fact the latest printer.cfg doesn’t even define the pins for the pressure sensor. The eddy is now defined as 2 different probes: [probe\_eddy\_current eddy] sensor\_type: ldc1612 z\_offset: 3.5 i2c\_mcu: extruder\_mcu i2c\_bus: i2c2 x\_offset: -19.8 y\_offset: -0.75 vir\_contact\_speed: 3.0 [z\_offset\_calibration] non\_contact\_probe: probe\_eddy\_current eddy contact\_probe…

Also read back through the Zero channel at the Sovol Discord. Many folks trying to improve the nozzle clean routine.

---

<div class="post-metadata">

**Author:** ![Liberty4Ever](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/liberty4ever/32/3265_2.png) [@Liberty4Ever](https://forum.sovol3d.com/u/Liberty4Ever)\
**Post date:** [June 27, 2025, 4:46pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/8 "2025-06-27T16:46:32Z")

</div>

My changes to the Sovol Zero nozzle clean macro heat the nozzle to melt the plastic that’s in the nozzle and on the outside of the nozzle, then starts scrubbing the nozzle on the siicone wiper as the nozzle is cooled to 130 C, below the filament melt temperature. Any plastic on the outside of the nozzle is wiped into the silicone wiper pad. Any filament inside the nozzle that oozes out is wiped into the silicone wiper pad. When the wiping is finished, the nozzle is clean and it is too cool to ooze any more filament, so it stays clean. That eliminates any need to park the hot nozzle at 30,30,0 to try to prevent it from oozing as it cools, which then leaves a small divot of plastic on the build plate that can stick to the nozzle and cause it to touch probe the bed at a too high elevation, resulting in the Z offset being too high approximately 10% of the time.

Before I rewrote the nozzle cleaning macro, I was having random first layer adhesion issues approximately 10% of the time, although sometimes it would happen a few times in a row. After changing the nozzle cleaning macro, the nozzle always probes the Z offset with a clean nozzle and the Zero always has a perfect first layer.

I’m not on Facebook or Discord, so I don’t know what people are doing over there, but I’m not surprised that they’re messing with the nozzle cleaning macro, because despite what Sovol may claim, this was a problem for me. When I first watched the Zero preparing to print, it seemed goofy to me that it would clean the nozzle then allow filament to ooze from the nozzle after cleaning it. I assumed it must not be a problem in practice or Sovol wouldn’t have released the Zero with this print preparation process, but it was in fact a problem… not all the time, but approximately 10% of the time. The first layer needs to work every time. Now it does.

Compared to my SV08, it’s a joy to watch the Zero lay down a perfect first layer, every time. R3men shipped the carbon fiber print bed for my SV08 today. On the Sovol live stream a couple of days ago, Ben said that Sovol is “very close” to releasing the Eddy probe upgrade for the SV08. I am **SO** looking forward to a perfect 350x350 mm first layer on my SV08 soon. I’ve missed that printer. It’s such a great printer otherwise that it’ll be worth spending $400 to upgrade my $500 SV08. Sovol needs to release a $700 SV08 Ace with a very flat bed and Eddy probe, to upgrade it to the standards of the Zero and SV08 Max.

---

<div class="post-metadata">

**Author:** ![HandyDoodads](https://avatars.discourse-cdn.com/v4/letter/h/43a26b/32.png) [@HandyDoodads](https://forum.sovol3d.com/u/HandyDoodads)\
**Post date:** [July 9, 2025, 5:20pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/9 "2025-07-09T17:20:33Z")

</div>

I tried [Liberty4Ever](https://forum.sovol3d.com/u/Liberty4Ever)’s CLEAN\_NOZZLE macro but then my nozzle wipes too high over the silicone scrubber to clean it. Perhaps the issue is with RUN\_PROBE\_VIR\_CONTACT? Is this a macro? I can’t find it and could use tips in investigating what it is doing.

---

<div class="post-metadata">

**Author:** ![Liberty4Ever](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/liberty4ever/32/3265_2.png) [@Liberty4Ever](https://forum.sovol3d.com/u/Liberty4Ever)\
**Post date:** [July 9, 2025, 5:59pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/10 "2025-07-09T17:59:39Z")

</div>

Did it wipe properly with the original CLEAN\_NOZZLE macro? The changes made to the macro to cool the nozzle while scrubbing it and then not touching the build plate should not have altered the X, Y, or Z locations for the silicone scrubbing wiper pad, although the timing of the original scrubbing was slowed to correspond to the 200 C to 130 C cooling.

---

<div class="post-metadata">

**Author:** ![Liberty4Ever](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/liberty4ever/32/3265_2.png) [@Liberty4Ever](https://forum.sovol3d.com/u/Liberty4Ever)\
**Post date:** [July 9, 2025, 6:05pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/11 "2025-07-09T18:05:44Z")

</div>

I’m using the new CLEAN\_NOZZLE macro to run production for my online business. I just watched more closely as the nozzle is cleaned. Half of the nozzle is buried in the silicone wiper pad as it scrubs in the Y direction.

---

<div class="post-metadata">

**Author:** ![HandyDoodads](https://avatars.discourse-cdn.com/v4/letter/h/43a26b/32.png) [@HandyDoodads](https://forum.sovol3d.com/u/HandyDoodads)\
**Post date:** [July 9, 2025, 6:52pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/12 "2025-07-09T18:52:48Z")

</div>

> [@Liberty4Ever](#):
>
> Did it wipe properly with the original CLEAN\_NOZZLE macro?

Yes, the original macro wipes through the pad and the new macro wipes a bit above the pad. I’m guessing it is due to the different bed probing functions although I wanted to know what they are doing before attempting further experiments. Where the new macro says RUN\_PROBE\_VIR\_CONTACT my original macro says RUN\_PROBE\_PRESSURE. Was this a change you made or is it due to a revision by Sovool?

---

<div class="post-metadata">

**Author:** ![Vergo](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/vergo/32/3396_2.png) [@Vergo](https://forum.sovol3d.com/u/Vergo)\
**Post date:** [July 10, 2025, 1:38am UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/13 "2025-07-10T01:38:56Z")

</div>

> [@HandyDoodads](#):
>
> Was this a change you made or is it due to a revision by Sovool?

You most likely have 1.3.7 or 1.3.8 firmware or a partially failed upgrade if your macro uses RUN\_PROBE\_PRESSURE. Starting from 1.4.0, RUN\_PROBE\_VIR\_CONTACT is being used and the pressure sensor is no longer active.

---

<div class="post-metadata">

**Author:** ![Liberty4Ever](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/liberty4ever/32/3265_2.png) [@Liberty4Ever](https://forum.sovol3d.com/u/Liberty4Ever)\
**Post date:** [July 10, 2025, 2:17am UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/14 "2025-07-10T02:17:18Z")

</div>

As I mentioned in my previous post, I didn’t change anything other than when the nozzle is cooled (so it cools as it’s wiping), the slowed nozzle cleaning to allow time for the nozzle to cool as it’s cleaning, and not pressing the nozzle into the bed after cooling because it doesn’t need to do that in a partially successful attempt to prevent nozzle oozing. I didn’t change anything related to bed probing and all of the motion is the same except for not pressing the nozzle into the bed. The lines I changed in the macro are all commented to show which lines changed. It’s not that many.

As Vergo said, you probably had a different CLEAN\_NOZZLE macro. My Zero is updated to the latest code from Sovol. Maybe you have an older CLEAN\_NOZZLE macro? Maybe see if you have the latest firmware update, and if not, then upgrade and then try the new CLEAN\_NOZZLE macro?

---

<div class="post-metadata">

**Author:** ![HandyDoodads](https://avatars.discourse-cdn.com/v4/letter/h/43a26b/32.png) [@HandyDoodads](https://forum.sovol3d.com/u/HandyDoodads)\
**Post date:** [July 11, 2025, 10:30pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/15 "2025-07-11T22:30:05Z")

</div>

> [@Liberty4Ever](#):
>
> Maybe see if you have the latest firmware update, and if not, then upgrade and then try the new CLEAN\_NOZZLE macro?

Yes, I have the older firmware and have yet to do any updates. After a careful review of the two macros I failed to see any reason not to use your macro with my original probing function. Happily it seems to work well. After numerous tests I appear to finally be getting very consistent 1st layers. I made one other change to the macro which was to move the probing location from 30,30 to 5,5 as it sometimes leaves a small blob when probing and I prefer it is more out of the way and did not otherwise see a difference in results.

Now my only issue is I did the testing with the tool head cover removed for better visibility and after putting it back on the part cooling fan no longer works. I did not see any obvious sign of damage to either the wires or the connectors. I think I can salvage compatible connectors from a junk box to let me start testing and hopefully get this sorted out. [I’m such a dummy. Despite having successfully momentarily disconnected the fan a few times, this time I left it unplugged overnight and then today reconnected it with certainty to the wrong unused fan port. All is good on the correct port…]

---

<div class="post-metadata">

**Author:** ![Jirvan76](https://avatars.discourse-cdn.com/v4/letter/j/3ab097/32.png) [@Jirvan76](https://forum.sovol3d.com/u/Jirvan76)\
**Post date:** [July 13, 2025, 11:33pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/16 "2025-07-13T23:33:32Z")

</div>

Sovol Techs are saying this is a non-issue, I’m trying to tell them that it is.

This is a issue, I almost boxed the dang printer up and sent it back because of this “non issue”

If I wanted a project printer I’d buy one. I bought this so I wouldn’t have these issues. I’m starting to think I should have just built a Voron instead. But I didn’t want to build another so soon. I just finished a 2.4. and have a Trident 50% completed. I didn’t want another project just yet. But, it seems I have one anyway.

---

<div class="post-metadata">

**Author:** ![Liberty4Ever](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/liberty4ever/32/3265_2.png) [@Liberty4Ever](https://forum.sovol3d.com/u/Liberty4Ever)\
**Post date:** [July 13, 2025, 11:56pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/17 "2025-07-13T23:56:02Z")

</div>

> [@Jirvan76](#):
>
> I didn’t want another project just yet. But, it seems I have one anyway.

Ask me about my SV08. 😀

I don’t mind some tinkering. Truth be told, I enjoy it. I built my first two printers from the Orbot Hadron open source project… the OG Voron, because there were no consumer 3D printers then. I no longer want that much fun, but a few optimizations are enough to feed my inner geek.

Still, I think this is a simple optimization that Sovol should do so we don’t need to do it and those not inclined to do it benefit. It’s greatly improved my overall satisfaction with the little Zero, which is now my favorite printer and getting better all the time with a few geek tweaks.

---

<div class="post-metadata">

**Author:** ![chan.twisticles](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.sovol3d.com/chan.twisticles/32/4152_2.png) [@chan.twisticles](https://forum.sovol3d.com/u/chan.twisticles)\
**Post date:** [September 3, 2025, 7:32am UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/18 "2025-09-03T07:32:13Z")

</div>

So…I am having the opposite problem. My Zero suddenly started printing too close to the bed, having previously been spot-on with great first layers.

I’ve tried probe and bed mesh calibrations several times with no joy. The only thing that allows me to print at the moment is manually baby-stepping away from the bed.

Nozzle is clean etc etc, so I’m a bit stumped as to why this is happening and what the fix would be.

---

<div class="post-metadata">

**Author:** ![sebastianha](https://avatars.discourse-cdn.com/v4/letter/s/c68b51/32.png) [@sebastianha](https://forum.sovol3d.com/u/sebastianha)\
**Post date:** [September 3, 2025, 3:55pm UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/19 "2025-09-03T15:55:52Z")

</div>

You can persist the baby steps in OrcaSlicer as GCODE. This is what I have done because the nozzle was too high.

Of course this only fixes the symptom and not the original problem.

---

<div class="post-metadata">

**Author:** ![sebastianha](https://avatars.discourse-cdn.com/v4/letter/s/c68b51/32.png) [@sebastianha](https://forum.sovol3d.com/u/sebastianha)\
**Post date:** [September 20, 2025, 11:59am UTC](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051/20 "2025-09-20T11:59:24Z")

</div>

I don’t think this is true. The pressure sensor is still being used. I just rammed my nozzle into the bed because I changed something in the CLEAN\_NOZZLE macro. If the nozzle is not at X30 Y30 before RUN\_PROBE\_VIR\_CONTACT then it fails.

[Next page](https://forum.sovol3d.com/t/zero-first-layer-issues-fixed/8051.md?page=2)
