Page MenuHomeAleph Objects Inc

Nozzle Selection: Remember previous setting
Closed, ResolvedPublic


If you are running a print from a USB drive and use CuraLE to connect to the machine during a filament run-out on toolhead 2, it sometimes switches to toolhead 1 when connecting. If you then resume the print, it will continue running where it left off in the toolhead 2 code using toolhead 1. Had this happen once when connecting fresh, and once when just opening console while connected after having been in the prepare section of Cura while the print was running.

Event Timeline

samantha created this task.Oct 31 2018, 9:48 AM
samantha created this object with edit policy "LulzBot Hardware Products (Project)".
karrad added a subscriber: marcio.Oct 31 2018, 10:17 AM

@marcio Does 2.0 behave differently than the 1.1.x branches? I believe marlin resets when connecting via USB, and not quite sure how the filament run out sensor pauses/saves location

It looks like the archim board no longer resets marlin when connecting, will check for a T0 command from cura when first connecting

FYI, the commands used for pause and resume with the filament detection are M24 and M25, respectively. I have tested and confirmed that sending a T0 or T1 command from Cura during that pause will indeed switch tool heads. I have also tested a little on this exact issue, and found:

Connecting/disconnecting/opening console does NOT do it
Switching from Prepare to Monitor while connected DOES do it
Disconnecting, switching to Prepare, switching to Monitor, opening console, connecting, and then closing console DOES do it
Disconnecting, opening console, connecting, closing console does NOT do it

So, it seems as though a T0 command is sent when activating Prepare, not on connect. But, it only seems to do so when the console history is empty or empty prior to the fresh connection. Switching to Prepare seems to clear that history.

I don't think cura should send a T0. I'm sure the intent was to make sure the correct nozzle was selected at the start of the print, but the T0 should be added to the start GCODE instead.

DaniAO added a subscriber: DaniAO.Feb 26 2019, 11:42 AM

@samantha and @marcio -being that that last update was in Nov and we have had serveral updates to firmware and Cura, do you know if this is still a problem?

@DaniAO @samantha @marcio I attempted to re-create this on my desk using QuiverAlpha7 with .102 FW and Cura 3.6.5. In short it causes the printer to restart.

Steps used to create issue.

  1. Start print via USB. Make sure there is no filament in E2 and run the calibration print.
  2. Once the machine enters the controlled failure state, plug in the serial port and attempt to connect via Cura.
  3. Observe.

This is the error log that Cura provided:

2019-03-25 13:17:35,372 - DEBUG - [(139986437115520)-MainThread] USBPrinting.USBPrinterOutputDevice._log [54]: Attempting to connect to printer with serial /dev/ttyACM0 on baud rate 250000
Exception in thread Thread-46:
Traceback (most recent call last):
File "/home/aleph/Projects/build-master/build/inst/lib/python3.5/site-packages/serial/", line 523, in write
 n = os.write(self.fd, d)
OSError: [Errno 5] Input/output error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/aleph/Projects/build-master/build/inst/lib/python3.5/", line 914, in _bootstrap_inner
File "/home/aleph/Projects/build-master/build/inst/lib/python3.5/", line 862, in run
  self._target(*self._args, **self._kwargs)
File "/home/aleph/Projects/build-master/build/dist/plugins/plugins/USBPrinting/", line 715, in _connect_func
File "/home/aleph/Projects/build-master/build/inst/lib/python3.5/site-packages/serial/", line 554, in write
  raise SerialException('write failed: {}'.format(v))
serial.serialutil.SerialException: write failed: [Errno 5] Input/output error
karrad added a comment.Jun 3 2019, 3:13 PM

@EricNugent Is this still an issue? We have not heard new reports for ~6mo

@karrad I believe there might be confusion. I did not make this ticket originally, that was authored by @samantha. On March 25th I attempted to re-create the issue which gave me a different error. I have not had the chance to re-attempt since then. Have you been able to re-create the issue?

@karrad I tested just now by setting to toolhead 2, connecting to the machine, switching to prepare, and then switching back to monitor. The issue was still present. Firmware, Cura 3.6.9.

karrad renamed this task from cura changing toolheads during runout to Nozzle Selection: Remember previous setting.Jun 4 2019, 8:20 AM
karrad changed the edit policy from "LulzBot Hardware Products (Project)" to "Cura LulzBot Edition (Project)".
karrad added a project: Cura LulzBot Edition.
karrad reassigned this task from karrad to TKostennov.Jun 4 2019, 8:24 AM
karrad moved this task from Backlog to Next Release (3.6) on the Cura LulzBot Edition board.
karrad added subscribers: TKostennov, karrad.

@TKostennov We need to update the monitor menu to remember the previous nozzle selection as we did manual controls in T3377

to duplicate:
1.) Load TAZ Pro Machine and Connect
2.) select extruder 2 from monitor screen
3.) switch back to prepare screen
4.) Switch back to monitor screen

Actual results:
Extruder 1 is now selected

Desired results:
Extruder 2 selected

@TKostennov Can we get an update on this ticket?

@karrad. Sorry for delaying with that. We can't implement fix in same way as in T3377, due to some application structure features. I keep searching for a good solution.

Understandable, thanks for the update @TKostennov

@karrad Done. Now all values in manual control section saves between stages. You can check it in T4329 branch.

karrad added a subscriber: alexei.

@TKostennov This one looks good on my end, thanks for the fix!

@alexei This one is good for review and merge

alexei triaged this task as Normal priority.Jun 21 2019, 10:28 AM
alexei closed this task as Resolved.Jun 21 2019, 10:33 AM

Merged to master.