OctoDash
OctoDash copied to clipboard
Add basic multi-extruder support
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.




Planned features:
- Temperature control for additional tools
- Tool selection when selecting file to print
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.
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!
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!
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.
Just waiting on review from @UnchartedBull. :)
@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
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:
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.
+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.
https://github.com/OctoPrint/OctoPrint/issues/5018
Here is my PR for OctoPrint: It adds another endpoint for the toolhead heater, leveraging "current_extruder" https://github.com/OctoPrint/OctoPrint/pull/5022
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