Sovol SV04 not printing when selecting extruder 2

I'm using a Sovol SV04 (machine firmware V1.1.0, display firmware V2.0). The machine has two separate extruders and hotends. From here on, I'll refer to an extruder/hotend combo as just an "extruder". The Octoprint version I'm running is V1.8.7 via a Docker container under Fedora 38.

I used Cura and (via Octoprint) have successfully printed a calibration cube using both extruders when in "Dual Mode" and both extruders, so both extruders DO work.

Problem 1: Using the "Single Mode 02" Cura printer model (selecting only the second extruder) AND ensuring I'm in "Single Mode, Nozzle 2" on the printer, after I send the file to Octoprint, the printer homes and heats up the correct nozzle. However, Octoprint shows BOTH nozzles being set to the same temperature. The LCD on the printer itself correctly shows only nozzle 2 being heated. I did notice that at the very beginning of the print process, the first nozzle shows as "Off" in Octoprint and THEN gets set to the same temperature as the second nozzle. I'd expect it to stay "Off".

Problem 2: The print never begins. I've watched the log and I see nothing relating to it waiting for anything specific, it just never starts.

Problem 3: Aborting such a "stuck" print via the "Cancel" button leaves Octoprint in a perpetual "Cancelling" state. It never turns off the nozzles, never homes the printer, nothing. It just sits there forever. The only way to truly abort the print is to turn off the printer and disconnect the USB cable. Octoprint notices that and disconnects. Reconnecting the USB cable and telling Octoprint to reconnect brings the printer back to "Operational" status.

Update to problem 3: I noticed that if I manually go to the printer and tell the second nozzle to cool down, Octoprint brings the printer back to "Operational" state.

So, any ideas? I can bump up the level on the logs or enable more if you want or need more information.


Enable serial logging and share the logs

I will do so. The funny thing is I retried this print with serial logging enabled and....Lo and behold! The print started! It's a large print, so I'm including a truncated log. I don't know why it decided to print THIS time when all other attempts failed.

Octoprint still shows both extruders at 200C yet the printer shows extruder 0 at ambient (26C) with 0C setpoint and extruder 1 at 200C and a setpoint of 200C. That's what I expect and I expected Octoprint to show the same. However, looking at the log, I see these status lines:

2023-05-10 23:08:28,890 - Recv: T0:203.23 /200.00 B:60.00 /60.00 T0:24.45 /0.00 T1:203.23 /200.00 @:0 B@:40 @0:0 @1:0

So it appears that the printer is reporting T0 twice and T1 once. The first T0 is what T1 is set for, the second one is reality. So this erroneous temperature reporting is a bug in the firmware of the SV04 and not Octoprint's problem. Weird. Or perhaps, the Sovol is reporting the first temp as the "active" extruder and bed temperature, and the second T0 (and the only T1) as the actual temperatures. Sovol's docs are, uhm, moot on the point.

As to why the print actually worked when it failed the previous 10 times I've tried it...I'm stumped. (100.4 KB)