Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add basic multi-extruder support #3256

Open
wants to merge 13 commits into
base: main
Choose a base branch
from

Conversation

queengooborg
Copy link

@queengooborg queengooborg commented Oct 22, 2022

This PR resolves #779 by adding some rudimentary multi-extruder support, adding display of the temperatures of additional tools, as well as adding multi-tool support to the filament selection menu.

182595315-949fa713-45df-4d8c-a9f4-20f893800558

182815470-7a1a98e0-5d87-4247-9796-0444b66103b0

Screen Shot 2022-10-22 at 01 23 19

Screen Shot 2022-10-22 at 02 12 57

Planned features:

  • Temperature control for additional tools
  • Tool selection when selecting file to print

@stale
Copy link

stale bot commented Nov 12, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale Stale issue label Nov 12, 2022
@ssenrah
Copy link

ssenrah commented Dec 20, 2022

This looks outstanding for multi-material printing! I use virtual extruders on my machine and change the filament by hand, and right now I have to set the materials in a sidebar on Octoprint using Spool Manager. I would love to be able to swap all the materials via Octodash as that's my primary way of interacting with my printer. If you need anyone to test your new features, I will happily volunteer!

@stale stale bot removed the stale Stale issue label Dec 20, 2022
@queengooborg
Copy link
Author

Thanks @ssenrah! Testing would be great as I know I can't think of everything -- additionally, if you have suggestions for related features (or ways I can improve the existing ones), I'd love to hear them!

@stale
Copy link

stale bot commented Jan 7, 2023

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale Stale issue label Jan 7, 2023
@queengooborg
Copy link
Author

Just waiting on review from @UnchartedBull. :)

@ssenrah
Copy link

ssenrah commented Jan 8, 2023

@queengooborg How can I install your version of OctoDash for testing? I downloaded and installed the main branch using the automatic download/install method via the command line, and am not sure how to get your specific branch

@stale stale bot removed the stale Stale issue label Jan 23, 2023
@UnchartedBull UnchartedBull added the enhancement New feature or request label Jan 26, 2023
@bokodimate
Copy link

Hello @queengooborg .
Thank you for this. I was able to install and test your modifications.

There is a few things I noticed:

  • On the main screen I can't choose the hotend I want to set the temperature. It will always set tool 0.
    I did some modifications and came up with this:
    image
    Now I have the tool0 on the left and tool1 on the right. It will know which one I pressed and will set that tool.
    For this I've changed the css to this:
    printer-status.component.scss
    grid-template-rows: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
    Instead of 1 row and 3 columns, I have now 2 rows and 2 columns. I had to duplicate printer-status__hotend class div for this in the printer-status.component.html.
    I've added (click)="showQuickControlHotend(0)" and (click)="showQuickControlHotend(1)" to those divs

For this I've added a selectedHotend variable which I set at the showQuickControlHotend function. See the following:
printer-status.component.ts

public selectedHotend: number;

public showQuickControlHotend(value: number): void {
    this.selectedHotend = value;
    this.view = QuickControlView.HOTEND;
    this.showQuickControl();
  }

private setTemperatureHotend(): void {
    this.printerService.setTemperatureHotend(this.hotendTarget, this.selectedHotend);
    this.hideQuickControl();
  }

Now it will know which hotend I want to set.

  • At filament change when I choose the tool, it will set the temperature fine but I won't set that tool to be the active tool.
    So if I press tool1, it will heat up, but Tool0 stays the active tool and it would want to retract Tool0.
    My solution:
    in the choose-tool.component.ts setTool function I've added this line:
    this.printerService.executeGCode("T" + tool);
    This way it will change the active tool.

  • While printing if I go to the adjust menu, I can't adjust the hotend's temperature. You forgot to modify the print-control.component.html because temperatureHotend changed to temperatureHotends[] in the ts file.
    I've no solution for this yet.

@morphias2004
Copy link

morphias2004 commented May 22, 2024

+1

This is so much more relevant now with the Prusa XL and other tool changers in the works.

I have been working on this with a friend and he now has an open request for OctoPrint that is directly related to this.

OctoPrint/OctoPrint#5018

@ccatlett1984
Copy link

Here is my PR for OctoPrint:
It adds another endpoint for the toolhead heater, leveraging "current_extruder"
OctoPrint/OctoPrint#5022

@ccatlett1984
Copy link

Here is my PR for OctoPrint: It adds another endpoint for the toolhead heater, leveraging "current_extruder" OctoPrint/OctoPrint#5022

PR has been merged, will be in v1.11.0 of OctoPrint

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Dual Extruder
6 participants