# Filament Runout fails to resume

**URL:** <https://forum.sovol3d.com/t/filament-runout-fails-to-resume/9241>\
**Category:** Sovol SV04 IDEX\
**Created:** [December 19, 2025, 2:18am UTC](https://forum.sovol3d.com/t/filament-runout-fails-to-resume/9241 "2025-12-19T02:18:50Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![aPpYe](https://avatars.discourse-cdn.com/v4/letter/a/b5a626/32.png) [@aPpYe](https://forum.sovol3d.com/u/aPpYe)\
**Post date:** [December 19, 2025, 2:18am UTC](https://forum.sovol3d.com/t/filament-runout-fails-to-resume/9241/1 "2025-12-19T02:18:50Z")

</div>

I am having an issue with failed heating after a filament runout. The detection works as expected, as the printer parks, retracts the filament and prompts me. However, when I insert new filament and hit “resume,” the hotends do not reheat. They continue to cool despite the displayed target temperatures.

If I then try to set the temperature manually, I get get a “Heating Failed” error with a yellow triangle, prompting a power cycle and some hardware checks. After power cycling, the printer offers to resume, which I tap on, but the interface says “Resuming” at the top with a progress bar at 100% and only a “Finish Print” button available.

This is consistent, even if I respond immediately. In one test, the hotend had only cooled from 245°C to 230°C when I resumed, but it still wouldn’t reheat. The printer seems to enter a state where heating is disabled post-runout, and an unrecoverable print.

I am hoping this is a configuration issue. In case it is relevant, I am running Bjoern’s latest firmware and I print exclusively in “dual mode,” even if I am only using one extruder. Below is my machine start gcode. Please let me know if there is any further information needed.

MY START GCODE:

> ;Home all axes  
> G28
> 
> ;Post-runout extrusion length  
> M412 D31
> 
> ;Start with correct extruder.  
> T{initial\_tool}
> 
> ;SET the CORRECT bed temperature.  
> {if is\_extruder\_used[0] && is\_extruder\_used[1]}  
> {if first\_layer\_bed\_temperature[1] \> first\_layer\_bed\_temperature[0]}  
> M140 S{first\_layer\_bed\_temperature[1]}  
> {else}  
> M140 S{first\_layer\_bed\_temperature[0]}  
> {endif}  
> {else}  
> M140 S{first\_layer\_bed\_temperature[initial\_tool]}  
> {endif}
> 
> ;Start initial hotend.  
> M104 S{idle\_temperature[initial\_tool]}
> 
> ;Start the second hotend, if both are being used.  
> {if is\_extruder\_used[0] && is\_extruder\_used[1]}  
> {if initial\_tool == 0}  
> M104 S{idle\_temperature[1]} T1  
> {else}  
> M104 S{idle\_temperature[0]} T0  
> {endif}  
> {endif}
> 
> ;Raise Z, then disable X steppers to gain access to nozzles for wiping.  
> G1 Z250  
> G28 X  
> M84 X
> 
> ;Wait for initial hotend.  
> M109 S{idle\_temperature[initial\_tool]}
> 
> ;WAIT for the CORRECT bed temperature.  
> {if is\_extruder\_used[0] && is\_extruder\_used[1]}  
> {if first\_layer\_bed\_temperature[1] \> first\_layer\_bed\_temperature[0]}  
> M190 S{first\_layer\_bed\_temperature[1]}  
> {else}  
> M190 S{first\_layer\_bed\_temperature[0]}  
> {endif}  
> {else}  
> M190 S{first\_layer\_bed\_temperature[initial\_tool]}  
> {endif}
> 
> ;Wait SEVEN MINUTES for thermal soak.  
> G4 S420
> 
> ;Avoid two extruder crashes and perform Z Steppers Auto-Alignment.  
> G28 X  
> G34  
> G28 X
> 
> ;Create and load mesh.  
> G29  
> M420 S1 Z7
> 
> ;Start with correct extruder. Again.  
> T{initial\_tool}
> 
> ;Wait for first layer temperature.  
> M109 S[first\_layer\_temperature]
> 
> ;Move Z Axis up.  
> G1 Z4.0 F3000
> 
> ;Reset Extruder.  
> G92 E0
> 
> ;Set E to Relative Positioning.  
> M83
> 
> ;Initial priming line.  
> {if initial\_tool==0}  
> G1 X-1.7 Y10.322 F7200  
> G1 Z.2 F1200  
> G1 F1020  
> G1 X-1.7 Y292.081 E10.11636  
> G1 X-1.762 Y292.728 E.02334  
> G1 X-1.923 Y293.286 E.02085  
> G1 X-2.245 Y293.933 E.02595  
> G1 X-2.672 Y294.487 E.02511  
> G1 X-2.867 Y294.891 E.01611  
> G1 X-2.878 Y295.297 E.01458  
> G1 X-2.768 Y295.563 E.01033  
> G1 X-2.563 Y295.768 E.01041  
> G1 X-2.295 Y295.879 E.01042  
> G1 X-2.005 Y295.878 E.01041  
> G1 X-1.737 Y295.768 E.0104  
> G1 X-1.532 Y295.563 E.01041  
> G1 X-1.42 Y295.291 E.01056  
> G1 X-1.4 Y295.145 E.00529  
> G1 X-1.4 Y10.227 E10.22979  
> G1 X-1.488 Y9.509 E.02597  
> G1 X-1.72 Y8.83 E.02576  
> G1 X-2.09 Y8.215 E.02577  
> G1 X-2.631 Y7.627 E.02869  
> G1 X-2.866 Y7.24 E.01626  
> G1 X-2.87 Y6.812 E.01537  
> G1 X-2.732 Y6.494 E.01245  
> G1 X-2.483 Y6.252 E.01247  
> G1 X-2.16 Y6.124 E.01247  
> G1 X-1.813 Y6.13 E.01246  
> G1 X-1.494 Y6.268 E.01248  
> G1 X-1.252 Y6.517 E.01247  
> G1 X-1.125 Y6.833 E.01223  
> G1 X-1.1 Y7.009 E.00638  
> G1 X-1.1 Y295.9 E10.37243  
> G1 F5760  
> G1 X-1.152 Y271.268 E-3.9  
> {else}  
> G1 X303.7 Y10.322 F7200  
> G1 Z.2 F1200  
> G1 F1020  
> G1 X303.7 Y292.081 E10.11636  
> G1 X303.762 Y292.728 E.02334  
> G1 X303.923 Y293.286 E.02085  
> G1 X304.245 Y293.933 E.02595  
> G1 X304.672 Y294.487 E.02511  
> G1 X304.867 Y294.891 E.01611  
> G1 X304.878 Y295.297 E.01458  
> G1 X304.768 Y295.563 E.01033  
> G1 X304.563 Y295.768 E.01041  
> G1 X304.295 Y295.879 E.01042  
> G1 X304.005 Y295.878 E.01041  
> G1 X303.737 Y295.768 E.0104  
> G1 X303.532 Y295.563 E.01041  
> G1 X303.42 Y295.291 E.01056  
> G1 X303.4 Y295.145 E.00529  
> G1 X303.4 Y10.227 E10.22979  
> G1 X303.488 Y9.509 E.02597  
> G1 X303.72 Y8.83 E.02576  
> G1 X304.09 Y8.215 E.02577  
> G1 X304.631 Y7.627 E.02869  
> G1 X304.866 Y7.24 E.01626  
> G1 X304.87 Y6.812 E.01537  
> G1 X304.732 Y6.494 E.01245  
> G1 X304.483 Y6.252 E.01247  
> G1 X304.16 Y6.124 E.01247  
> G1 X303.813 Y6.13 E.01246  
> G1 X303.494 Y6.268 E.01248  
> G1 X303.252 Y6.517 E.01247  
> G1 X303.125 Y6.833 E.01223  
> G1 X303.1 Y7.009 E.00638  
> G1 X303.1 Y295.9 E10.37243  
> G1 F5760  
> G1 X303.152 Y271.268 E-3.9  
> {endif}
> 
> G92 E0 ;Reset Extruder  
> G1 Z2.0 F3000 ;Move Z Axis up

… Also, it does not seem to be honoring M412 D31, which supposedly makes it print an additional 31mm of filament once the switch is activated. Perhaps this is not supported by the firmware?

---

<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:** [December 19, 2025, 2:51am UTC](https://forum.sovol3d.com/t/filament-runout-fails-to-resume/9241/2 "2025-12-19T02:51:26Z")

</div>

@Bjoern

Is the the start Gcode from a sliced file or is all that in the Slicer..??

---

<div class="post-metadata">

**Author:** ![aPpYe](https://avatars.discourse-cdn.com/v4/letter/a/b5a626/32.png) [@aPpYe](https://forum.sovol3d.com/u/aPpYe)\
**Post date:** [December 19, 2025, 5:27am UTC](https://forum.sovol3d.com/t/filament-runout-fails-to-resume/9241/3 "2025-12-19T05:27:08Z")

</div>

all in the slicer. I created my own primer line that exists outside of the print area.

---

<div class="post-metadata">

**Author:** ![Bjoern](https://avatars.discourse-cdn.com/v4/letter/b/46a35a/32.png) [@Bjoern](https://forum.sovol3d.com/u/Bjoern)\
**Post date:** [December 19, 2025, 1:11pm UTC](https://forum.sovol3d.com/t/filament-runout-fails-to-resume/9241/4 "2025-12-19T13:11:35Z")

</div>

Hi aPpYe,  
the problem is known & already on the to-do-list. The cause lies in the combination of filament run-out handling in both Sovol’s display driver class and the native Marlin firmware.  
Your observation concerning M412 Dxx concerns the same problem.  
Currently I can’t say when I’ll find the time to solve this issue…  
/R  
Björn

---

<div class="post-metadata">

**Author:** ![aPpYe](https://avatars.discourse-cdn.com/v4/letter/a/b5a626/32.png) [@aPpYe](https://forum.sovol3d.com/u/aPpYe)\
**Post date:** [December 19, 2025, 5:17pm UTC](https://forum.sovol3d.com/t/filament-runout-fails-to-resume/9241/5 "2025-12-19T17:17:19Z")

</div>

Oh dang. Okay. Are you no longer working on this firmware? Was this broken in some recent version of your firmware or has it always been broken? Do we know if there is any kind of workaround? Perhaps through pronsole/pronterface?

I also noticed that since I installed my sprite extruders the tramming function is messed up unless I reenter firmware defaults for M851 (XYZ Probe Offset). I figured I needed to change the nozzle is in a different position than the firmware expects, though I am guessing this is unrelated to my resume issue.

Thanks for your time.

---

<div class="post-metadata">

**Author:** ![Bjoern](https://avatars.discourse-cdn.com/v4/letter/b/46a35a/32.png) [@Bjoern](https://forum.sovol3d.com/u/Bjoern)\
**Post date:** [December 19, 2025, 6:32pm UTC](https://forum.sovol3d.com/t/filament-runout-fails-to-resume/9241/6 "2025-12-19T18:32:52Z")

</div>

Hi again,

> [@aPpYe](#):
>
> Are you no longer working on this firmware?

I’m still using my SV04 and will continue to fix bugs in the firmware. I have had a lot of other things to do lately, so I had to adjust my priorities. I’m currently looking forward to two weeks with low-ops, but I can’t promise that I’ll find time for analysis and bug fixes this year.

> [@aPpYe](#):
>
> Was this broken in some recent version of your firmware or has it always been broken?

Run-out sensor handling and pausing always have been problematic in the SV04 firmware, hence Marlin’s ADVANCED\_PAUSE\_FEATURE is active in all my firmware versions.

> [@aPpYe](#):
>
> Do we know if there is any kind of workaround? Perhaps through pronsole/pronterface?

The safest workaround is unplugging the run-out sensors & ensuring to have enough filament loaded.

> [@aPpYe](#):
>
> I also noticed that since I installed my sprite extruders the tramming function is messed up unless I reenter firmware defaults for M851 (XYZ Probe Offset). I figured I needed to change the nozzle is in a different position than the firmware expects, though I am guessing this is unrelated to my resume issue.

Correct, this is not related to the other issue - it might help to adjust the nozzle positions mechanically IOT fit it into the default Z probe offset range of +/- 20mm.

/R  
Björn

---

<div class="post-metadata">

**Author:** ![Bjoern](https://avatars.discourse-cdn.com/v4/letter/b/46a35a/32.png) [@Bjoern](https://forum.sovol3d.com/u/Bjoern)\
**Post date:** [January 16, 2026, 5:02am UTC](https://forum.sovol3d.com/t/filament-runout-fails-to-resume/9241/7 "2026-01-16T05:02:10Z")

</div>

Hi again,  
I fixed the filament runout loop & added information screens iot assist the filament change process. There also a new debugging function that can be switched on in the extra settings.  
The new firmware release v1.15.7 is [available on GitHub](https://github.com/Bjoern70/SV04-IDEX-3D-Printer-Mainboard-Source-code/releases/tag/v1.15.7).  
It will need a matching display software v.1.15.7 [that is available here](https://github.com/Bjoern70/SV04-Touchscreen/releases/tag/v1.15.7).  
Note: The EEPROM needs to be reset directly after firmware installation due to changes in its structure (Settings-\>Set hotend offsets → Initialize EEPROM → Yes).  
Therefore ensure to have written down all offsets & PID parameters before installing the new firmware.  
/R  
Björn

---

<div class="post-metadata">

**Author:** ![urbnsr](https://avatars.discourse-cdn.com/v4/letter/u/df788c/32.png) [@urbnsr](https://forum.sovol3d.com/u/urbnsr)\
**Post date:** [January 16, 2026, 10:23am UTC](https://forum.sovol3d.com/t/filament-runout-fails-to-resume/9241/8 "2026-01-16T10:23:12Z")

</div>

Thank you, Björn. Your work is very much appreciated!

Paul

---

<div class="post-metadata">

**Author:** ![Ahtrea](https://avatars.discourse-cdn.com/v4/letter/a/ea5d25/32.png) [@Ahtrea](https://forum.sovol3d.com/u/Ahtrea)\
**Post date:** [February 6, 2026, 9:42am UTC](https://forum.sovol3d.com/t/filament-runout-fails-to-resume/9241/9 "2026-02-06T09:42:15Z")

</div>

Thanks for keeping this firmware alive, Björn. I saw the OP mentioned they installed Sprite extruders. Is v1.15.7 generally safe for a stock SV04 as well, or is it tuned specifically for those mods? I’d love to get my filament sensor working properly again[.](https://nullxbrawl.com/)

---

<div class="post-metadata">

**Author:** ![Bjoern](https://avatars.discourse-cdn.com/v4/letter/b/46a35a/32.png) [@Bjoern](https://forum.sovol3d.com/u/Bjoern)\
**Post date:** [February 6, 2026, 2:16pm UTC](https://forum.sovol3d.com/t/filament-runout-fails-to-resume/9241/10 "2026-02-06T14:16:13Z")

</div>

Hello Ahtrea,  
my firmware supports stock SV04 printers as well, however, it also allows nozzle temperature settings above 260°C that pose a potential hazard to the printer and the installation site. The software highlights temperatures 260°C in with a red background to warn the user.  
/R  
Björn

---

<div class="post-metadata">

**Author:** ![ander1](https://avatars.discourse-cdn.com/v4/letter/a/bb73d2/32.png) [@ander1](https://forum.sovol3d.com/u/ander1)\
**Post date:** [February 13, 2026, 9:49am UTC](https://forum.sovol3d.com/t/filament-runout-fails-to-resume/9241/11 "2026-02-13T09:49:42Z")

</div>

Since it’s not “Sprite-only” firmware, v1.15.7 works on a vanilla Sovol SV04. The runout fix and resume handling modifications are in core logic (ADVANCED\_PAUSE\_FEATURE flow + loop fix), not extruder geometry.

Remember to reset EEPROM after flashing with this release since the structure changes. Skip it and chase ghosts believing the filament sensor is damaged.

Write down M851, hotend offsets, PID, initialize EEPROM, then re-enter them clean.

The \>260°C unlock is present, so don’t regard it as standard safety rails. It allows reckless cooking.

for filament runout resume—this is the first version that fixes the loop problem. worth the premium if it’s biting.
