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

Spoolman intergration - Request Filaments IDs #2955

Open
TexZeTech opened this issue Dec 1, 2023 · 12 comments · May be fixed by #4771
Open

Spoolman intergration - Request Filaments IDs #2955

TexZeTech opened this issue Dec 1, 2023 · 12 comments · May be fixed by #4771

Comments

@TexZeTech
Copy link

Which printers will be beneficial to this feature
Spoolman works independently but also has Klipper integration, it looks like someone is making a plugin for OctoPrint

Describe the solution you'd like
I would like to have a way to pull filaments from the Spoolman instance/db and list them under filament settings in a separate tab.

Or on print, if Spoolman has an IP entry have a second section under the "upload" & "Upload & Print" with a group label around those buttons with "choose filament & Upload." & "Choose filament then Upload & Print."

If you select choose filament it would then pop up a dialog that would list brands/spool/color/material etc. Mainsail does it well.

image
image

Describe alternatives you've considered
I could probably make a filament name and go by that but I would rather just have all my spools entered into a db and pull from that. However, this would be aggravating from the ID standpoint.

Additional context
https://moonraker.readthedocs.io/en/latest/configuration/#spoolman
https://www.teamfdm.com/forums/topic/2212-spoolman-filament-management
https://donkie.github.io/Spoolman/
https://github.com/Donkie/Spoolman

@Eldenroot
Copy link
Contributor

Wow, this could be really nice also for other vendors and printers...

@alexmoras
Copy link

I think in the first instance, we ignore the "Spools" part of Spoolman. Loading / unloading the spools can be done through Mainsail / Klipper for the time being. It would be nice to do this through Orca but not necessary straight off.

Instead, we focus on just pulling the Filaments from the Spoolman API and using it as a single-source-of-truth for OrcaSlicer. I guess, when the Filaments are properly loaded in to Orca for the purposes of slicing the model, we can then look at loading Spools specific to the Filament we have sliced with.

@Ocraftyone
Copy link
Contributor

It would be really awesome to also be able to use a klipper macro to select the filament on color switch

@reapola
Copy link

reapola commented Dec 23, 2023

would love this sort of integration which could potentially fed through to an MMU

@newtop95
Copy link

As a short-term solution I think it would help if a new id field would be implemented in the filament settings, where one could manually enter a filament/spool id. This id could be used via start gcode or even filament start gcode and could for example be passed to the SET_ACTIVE_SPOOL macro in klipper.

@mysugarape
Copy link

mysugarape commented Jan 28, 2024

As a short-term solution I think it would help if a new id field would be implemented in the filament settings, where one could manually enter a filament/spool id. This id could be used via start gcode or even filament start gcode and could for example be passed to the SET_ACTIVE_SPOOL macro in klipper.

Great feature request ... as dirty workaround ... open the filament settings in orca ... switch to gcode tab and add ...

SET_ACTIVE_SPOOL ID=#

Unload the spool add in End macro:
CLEAR_ACTIVE_SPOOL

(replace # with ID of filament ID in spoolman)

it will load the spool after the start macro is done ... and unloads it if the print is done ... works like a charm :)

Downside: u need a filament for each color, if u like to track it 100% ... If u use a purge line ... this amount is not tracked ... because it runs after the start macro ...

But a simple ID Field in the Filament settings, which could be exported as Placeholder would be great ... and solved the problem with untracked amounts during purging ... (but in real no one cares about this amount ... :) )

@EdwardChamberlain
Copy link

It would be extremely useful for this to "consume" filament in spoolman when a print is sent to a printer even if it is as simple as a popup on the print page. This would let us (roughly) track 3rd party filaments on 3rd party printers.

I dont think an ID in the filament settings would work because I (and I assume most) have multiple spools under a single profile - having to create a new spool every time I run out of filament would be a pain.

@TexZeTech
Copy link
Author

It would be extremely useful for this to "consume" filament in spoolman when a print is sent to a printer even if it is as simple as a popup on the print page. This would let us (roughly) track 3rd party filaments on 3rd party printers.

That is a not bad idea and should also be suggested in the https://github.com/Donkie/Spoolman git.

I dont think an ID in the filament settings would work because I (and I assume most) have multiple spools under a single profile - having to create a new spool every time I run out of filament would be a pain.

If you read my idea it gets the db list from Spoolman and lets you select it and there you could select it on an individual filament selection on OrcaSlicer. Or at least that's how I envision it.

Describe the solution you'd like I would like to have a way to pull filaments from the Spoolman instance/db and list them under filament settings in a separate tab.

Or on print, if Spoolman has an IP entry have a second section under the "upload" & "Upload & Print" with a group label around those buttons with "choose filament & Upload." & "Choose filament then Upload & Print."

If you select choose filament it would then pop up a dialog that would list brands/spool/color/material etc. Mainsail does it well.

Ya.... that's what the individual qr codes and by extension ids are for..... It's also meant to track current stock of spools owned.

@EdwardChamberlain
Copy link

That is a not bad idea and should also be suggested in the https://github.com/Donkie/Spoolman git.

Spoolman already provide an API endpoint for "using" filament: https://donkie.github.io/Spoolman/#tag/spool/operation/Use_spool_filament_spool__spool_id__use_put

Orca just needs to hook up to this when it sends a job to the printer.

@TexZeTech
Copy link
Author

That is a not bad idea and should also be suggested in the https://github.com/Donkie/Spoolman git.

Spoolman already provide an API endpoint for "using" filament: https://donkie.github.io/Spoolman/#tag/spool/operation/Use_spool_filament_spool__spool_id__use_put

Orca just needs to hook up to this when it sends a job to the printer.

Show me where I can click a single button to consume filament on their interface?

I know I can go into an individual spool and add/subtract filament.

@sntlewis
Copy link

I would like to have Orca (and other slicers) programmatically set the Spool ID. I use the Spoolman "SET_ACTIVE_SPOOL_ID" in the filament settings overrides in Orca. Closest I've gotten to a solution. Also "CLEAR_ACTIVE_SPOOL" in the filament end g-code. This requires me to set the starting filament every time I start a new job. I only run one instance so....

Requires me to manually map the filament in Orca to a Spool in Spoolman which could be very cumbersome if lots of spools involved.

Also Spoolman has a three level database (vendor, filament, spool). From the Spoolman side makes setting up a new spool of filament as simple as "clone" but complicates the Slicer side.

@Ocraftyone
Copy link
Contributor

I have been working on a full spoolman implementation and the basics are ready to go. I'll create a pull request soon and link it here to get more feedback.

@Ocraftyone Ocraftyone linked a pull request Mar 29, 2024 that will close this issue
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants